《微机高级C语言调试技巧》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:翟彬译
  • 出 版 社:北京希望电脑公司
  • 出版年份:1991
  • ISBN:
  • 页数:265 页
图书介绍:

第一章 程序调试基础 1

程序查错和科学方法 1

程序调试的过程 2

阶段一:测试 2

阶段二:固定 2

阶段三:局部化 3

阶段四:改正 3

邻近(proximity)原理 4

结论 7

C语言历史和特点 8

第二章 C语言及C程序的测试 8

C程序的测试 10

错误辨识 10

不同错误的衡量尺度 13

独立性的错误 14

查错前的准备 15

测试步骤 15

如何执行测试 15

搜寻与验证 25

结论 26

编译程序和单元 27

第三章 编译期间的错误 27

语法错误:给程序员的一些的忠告 29

集中焦点在有用的错误信息 30

使用Lint软件分析语法 39

把预处理器(preprocessor)当成独立程序 43

了解C语言语法(Syntax) 44

使用人工分解 44

使用语法引导编辑器 45

结论 45

控制流追踪 46

第四章 传统的错误追踪方法 46

方法化的结构语句不是魔术 52

结构函数 52

数据流追踪 53

选择变量 54

使用快照(Snapshots) 54

追踪局部变量 56

结论 61

第五章 调试设施的管理 62

控制追踪输出 62

暂时性开关 64

固件改变 64

设置控制变量 64

里程站计算法 65

函数连续法 66

微因子(Granularity) 69

实用性的变通 70

给读者 71

管理源程序 71

结论 73

第六章 C语言调试难点 74

强类型(Strong typc)与错误寻找 74

灵活性与错误寻找 76

结构差异的一般性影响 77

虚拟机器(Virtual machine) 78

针对虚拟机器的错误 79

指针(Pointer)错误和堆栈(stack) 79

超出范围的下标 82

各种情况 83

未给指针赋初值 83

误写程序代码的指针 87

结论 88

初始化(initialized)内存的好处 89

未分配(unallocated)内存的重要性 89

第七章 固定指针错误 89

使用调试工具初始化未分配的内存 90

产生装入映射表 92

8086地址表示法 95

辨别全局(global)变量 96

使用DEBUG技巧 99

警告 100

构造一个内存初始化的函数 100

加一特殊初始化程序到调用程序 101

堆栈的存取 104

初始化局部变量 104

特殊的装入器 104

自动化局部追踪技术 106

结论 110

第八章 特殊的追踪技巧 111

监视虚拟机器 111

在程序代码区检查核对和(checksum) 111

管理核对和 115

堆栈的回朔(Walk-Back) 116

误写堆栈的指针错误 121

解释堆栈追踪的细节 125

机器层次的追踪 128

追踪准备工作 129

显示某函数的程序代码 130

追踪执行 134

用DEBUG监视局部变量 137

结论 149

第九章 符号调试器 150

Sdb:UNIX的符号调试程序 150

使用sdb 151

命令格式 151

函数和变量定位器 152

显示程序代码的命令 153

显示变量的命令 158

处理断点的命令 163

控制执行的命令 167

直接函数计算 168

监督命令 168

堆栈逆向追踪(169trace back)命令 169

sbd的应用:事后检测 169

sbd的应用:找出误写全局变量区的指针错误 170

sdb的应用:找出误写局部变量区的指针错误 170

Sdb的应用:找出误写返回地址的指针错误 172

Sdb的弱点 179

测试模块 179

其他UNIX支持的调试工具 180

CodeVicw:Microsoft的符号调试程序 181

用户界面 181

CodeView的弱点 186

结论 186

第十章 C语言的编译调试实例 188

概述 188

最经常使用的选择项-c,-o,-LARGE 190

存贮模式 198

指针和整数的大小列表 201

省缺名字列表 202

特殊的关键字 202

XENIX链接编辑器:Id 204

使用链接编辑器 204

链接编辑器选择项 204

可执行的目标代码文件 206

公用变量的分配 206

adb:一个程序调试器 207

启动和停止adb 207

显示指令和数据 209

形成地址 209

退出adb 209

形成表达式 210

选择数据格式 213

使用(=)命令 214

使用(?)和(/)命令 214

一个例子:简单格式化 215

调试程序执行 216

执行一个程序 216

删除断点 218

中止程序 218

单步执行程序 218

用中断和退出键停止程序 218

显示C栈回溯 219

晃示CPU寄存器 219

显示外部变量 220

一个例子:跟踪多个函数 220

使用adb内存映象 223

其它特点 226

在一行中组合命令 226

使用XENIX命令 228

计算数值和显示正文 228

一个例子:显示目录和i节点 229

在文件中确定值的位置 230

写入文件 230

修补二进制文件 230

修改内存 231

结论 231

普遍性的技巧 232

C语言特有的问题 232

复杂的技巧 232

正式的框架 232

回顾 232

第十一章 程序调试技巧的总结 232

奇怪的工作状态 233

附录A 全功能程序调试系统 234

程序员的界面 234

函数界面 234

调用的实例 234

用户界面 235

查错命令 236

机器与编译器相关 239

附录B ctrace公用程序 255

警告 255

各种变化 256