第一章 程序调试基础 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
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《导游词创作和讲解技巧》廖广莉主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《音乐语言的根基》张艺编著 2019
- 《认知语言学视野的抽象方位结构研究》曹爽著 2019
- 《激活语言思维》李蒨,王宏年,汤青编著 2017
- 《2018考研数学 数学 1 15年真题详解及解题技巧》本书编委会著 2017
- 《侠饭 3 黑吃黑》张奇责编;周立彬译;(日)福泽彻三 2020
- 《3D电影的秘密 光学 10》徐懿如,郭晓博责任编辑;那彬译;(加拿大)克里斯·费里 2019
- 《数据统治世界》(美)冯启思(KaiserFung)著;曲玉彬译 2013
- 《法国外籍兵团 从1831年至今》(美)大卫·乔丹著;梁本彬译 2012
- 《蠕虫 第一次数字世界大战》(美)鲍登(MARKBOWDEN)著;徐彬译;赵捷审 2013
- 《终极营销 移动互联时代的精准营销策略》(美)丹·S.肯尼迪著;桂小黎,朱玉彬译 2014
- 《为将之道 美国名将指挥的艺术》(美)小埃德加·F·普里尔著;陈劲甫,叶凌彬译 2014
- 《伊妮德冒险小说系列 麦克米伦世纪 3 荒山怪声》伊妮德·布莱顿著;徐彬译 2013
- 《队友情深 MLB 红袜四人组的最后击掌》DAVID HALBERSTAM著;陈荣彬译 2004
- 《高效能销售的8个谈判模型》(美)瑞德·K.霍尔登著;常彬译 2013
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《莎士比亚公司》(美)西尔薇亚·比奇 2020
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《西单大杂院-北京老舍文学院首届中青年作家高研班学员小说作品集》北京老舍文学院编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 七年级 上 配人教版》周志英总主编 2019
- 《北京人民艺术剧院剧本系列 白露》刘国华,马鹏程 2019
- 《北京模式》吴建繁,王德海,朱岩编 2017