简介 1
0.1 3.0版本中的新特点和与以前各版本的不同之处 1
0.2硬件和软件要求 1
目录 1
0.3术语 2
0.4本手册的内容 2
0.5如何与Borland公司联系 3
0.5.1软件包资源 3
0.5.2 Borland资源 3
0.6参考书目 4
1.2.1文件README 5
1.2.2文件MANUAL.TDW 5
1.2.3文件HELPME!.TDW 5
1.2联机文本文件 5
1.1磁盘 5
第一章起步 5
1.2.4文件ASMDEBUG.TDW 6
1.2.5文件UTILS.TDW 6
1.3安装TDW 6
1.3.3安装TDDEBUG.386 6
1.5.3 Turbo Debugger的熟练程序员 7
1.5.2学会了Turbo C++但是Turbo debugger初学者的程序员 7
1.5.1学Turbo C++的程序员 7
1.5下一步 7
1.4调试硬件 7
第二章TDW的基础知识 8
2.0.1有错误吗? 8
2.0.2哪儿出错了? 8
2.0.3是什么错? 8
2.0.4改正错误 8
2.1 TDW能帮您什么忙 8
2.2 TDW的优点 9
2.1.1 TDW不能做什么 9
2.1.2 TDW怎样做 9
2.2.1菜单和对话窗口 10
2.2.1.1使用菜单 10
2.2.1.2对话窗口 11
2.2.2知道所处之处 11
2.2.2.1局部菜单 12
2.2.3历史记录 13
2.2.3.1自动补充完整名称 14
2.2.4增量匹配 14
2.2.5制宏定义块 15
2.2.6窗口 15
2.2.6.1 View菜单中的窗口 15
Breadkpoint窗口 15
Stack窗口 15
CPU窗口 16
File窗口 16
Dump窗口 16
Watch窗口 16
Module窗口 16
Variable窗口 16
Log窗口 16
Registers窗口 17
Numberic Processor窗口 17
Execution History窗口 17
Hierarchy窗口 17
Windows Messages窗口 17
Clipboard窗口 17
Duplicate窗口 17
2.2.6.2用户屏幕 18
2.2.6.3检查窗口 18
2.2.6.4活动窗口 18
2.2.6.5窗口中的内容 19
2.2.6.6在窗口中工作 20
窗口跳跃 20
移动和重定窗口大小 21
关闭和恢复窗口 21
保存屏幕格式 22
2.2.7拷贝和拼接 22
2.2.7.1选择对话窗口 22
Clipboard中项的类别 23
2.2.7.2 Clipboard窗口 23
Clipboard窗口局部菜单 24
自动修改 25
2.2.7.3 Clipboard使用略述 25
2.2.8获得帮助 25
2.2.8.1联机help 26
2.2.8.2状态行 27
在窗口中 27
3.1演示程序 28
在菜单或对话窗口中 28
第三章速学实例 28
3.2使用TDW 30
3.2.1菜单 30
3.2.2状态行 30
3.2.3窗口 31
3.3使用C演示程序 32
3.3.1设置断点 33
3.3.2使用Watches 34
3.3.3检查简单的C数据目标 35
3.3.4检查复合的C数据目标 35
3.3.5改变C的数据值 36
第四章启动TDW 38
4.1准备待调试程序 38
4.2启动TDW 38
4.3运行TDW 39
4.2.1.3注意事项 39
4.2.1键入命令行选择项 39
4.2.1.1直接输入命令行选择项 39
4.2.1.2从TDW中键入命令行选择项 39
4.4命令行选择项 40
4.4.1调入配置文件(—C) 40
4.4.2视频更新(—d) 40
4.4.3获得帮助(—1和—?) 40
4.4.4汇编方式(—1) 40
4.4.5支持鼠标(—p) 41
4.4.6源代码处理(—s) 41
4.4.7开始目录(—t) 41
4.5配置文件 41
4.6选择项菜单 42
4.6.1 Language命令 42
4.6.2 Macro菜单 42
4.6.3 Display Options命令 43
4.6.2.4 Delete All 43
4.6.3.1 Display Swapping 43
4.6.2.1 Create 43
4.6.2.3 Remove 43
4.6.2.2 Stop Recording 43
4.6.3.2 Integer Format 44
4.6.3.3 Screen Lines 44
4.6.3.4 Tab Size 44
4.6.4 Path for Source命令 44
4.6.5 Save Options命令 44
4.6.6 Restore Options命令 45
4.7返回Windows 45
第五章控制程序执行 46
5.1检查当前程序状态 46
5.1.1 Variable窗口 46
5.1.1.1 Global画面子菜单 47
Inspect 48
Change 48
Watch 48
5.1.1.2 Static画面局部菜单 48
Inspect 49
Change 49
Watch 49
Show 49
5.1.2 Stack窗口 50
5.1.2.1 Stack窗口子菜单 51
Inspect 51
Locals 51
5.1.3 Origin子菜单命令 51
5.1.4 Get Info命令 51
5.1.4.2 Status line信息 52
5.1.4.1 Global memory信息 52
5.2 Run菜单 53
5.2.1 Run命令(F9) 54
5.2.2 Go to Cursor命令(F4) 54
5.2.3 Trace into(F7) 54
5.2.4 Step over命令(F8) 54
5.2.8 Back Trace命令(Alt—F4) 55
5.2.7 Animate命令 55
5.2.6 Until Return命令(Alt—F8) 55
5.2.5 Execute To命令(Alt—F9) 55
5.2.9 Inspection Trace命令(Alt—F7) 56
5.2.10 Arguments命令 56
5.2.11 Programe Reset命令(Ctrl—F2) 56
5.3 Execution History窗口 56
5.3.1子菜单 57
5.4中断程序执行 58
Full History 58
Reverse Execute(Alt—F4) 58
Inspect 58
5.5程序终止 59
5.6重新开始调试过程 59
5.7打开一新的调试程序 59
5.8改变程序参数 60
第六章检查和修改数据 61
6.1 Data菜单 61
6.1.1 Inspect 61
6.1.2 Evaluate/Modify 62
6.1.3 Add Watch 64
6.1.4 Function Return 64
6.2指向源文件中的数据目标 64
6.3 Watches窗口 64
6.3.1 Watches窗口子菜单 65
Change 66
Inspect 66
6.4 Inspector窗口 66
Watch 66
Remove 66
Edit 66
6.4.1 C数据的Inspector窗口 67
纯量 67
指针 67
结构和集合 68
数组 69
函数 70
6.4.2汇编语言数据的Inspector窗口 70
纯量 70
指针 71
数组 72
6.5 Inspector窗口子菜单 73
结构和集合 73
6.5.1 Range命令 74
6.5.2 change命令 74
6.5.3 Inspector命令 74
6.5.4 Descend命令 74
6.5.5 New Expression命令 75
6.5.6 Type Cast命令 75
第七章断点 76
7.1 Breakpoints菜单 77
7.1.0.1 Toggle 77
7.1.0.2 At 77
7.1.0.3 change Memory Global 77
7.1.0.4 Expression true global 77
7.1.0.5 Hardware Breakpoint 77
7.1.0.6 Delete All 77
7.2 Breakpoints窗口 77
7.2.1 Breakpoints窗口的子菜单 78
7.2.1.1 Set Options 79
7.2.1.2 Add 79
7.2.1.3 Remove 79
7.2.1.4 Delete All 79
7.2.1.5 Inspect 79
7.2.1.6 Group 79
Groups 80
Add 80
Delete 81
Enable 81
Disable 81
7.2.2 Breakpoint Options对话窗口 81
7.2.2.1 Address 81
7.2.2.2 Group ID 81
7.2.2.3 Global 81
7.2.2.8 Delete 82
7.2.2.7 Add 82
7.2.3 Conditions and Actions对话窗口 82
7.2.2.4 Disable 82
7.2.2.6 change 82
7.2.2.5 Conditions and Actions 82
7.2.3.1 Condition收音按钮 83
Always 83
Change Memory 83
Expression True 83
Hardware 83
7.2.3.2 Action按钮 83
Break 83
Execute 83
Log 83
Enable group 83
7.2.3.5动作表达式 84
7.2.3.4条件表达式 84
7.2.3.3设置条件和动作 84
Disable Group 84
7.2.3.6 Pass count 85
7.3指定断点 85
7.3.1简单断点 85
7.3.2全程断点。 85
7.3.3检测内存改变的断点 85
7.3.4条件表达式 86
7.3.4.1断点表达式的作用域 86
7.3.5硬件断点 86
7.3.6运行记录变量值 87
7.3.7断点和模板(templates) 87
7.3.7.1类模板上的断点 87
7.3.7.2函数模板上的断点 87
7.3.7.3模板类程现场和目标上的断点 87
7.4 Log窗口 87
7.4.1 Log窗口子菜单 88
7.4.1.1 Open Log File命令 89
7.4.1.2 Close Log File命令 89
7.4.1.3 Logging命令 89
7.4.1.4 Add Comment命令 89
7.4.1.5Erase Log命令 89
7.4.1.6 Display Windows Info命令 89
第八章检查文件 90
8.1检查程序的源文件 90
8.1.1 Module窗口 90
8.1.2 Module窗口子菜单 91
8.1.2.10 Goto命令 92
8.1.2.9 Origin命令 92
8.1.2.8 Next命令 92
8.1.2.7 Search命令 92
8.1.2.6 Line命令 92
8.1.2.5 Previous命令 92
8.1.2.4 File命令 92
8.1.2.3 Module命令 92
8.1.2.2 Watch命令 92
8.1.2.1Inspet命令 92
8.2检查其它磁盘文件 93
8.2.1 File窗口 93
8.2.2.1 Goto命令 94
8.2.2 File窗口子菜单 94
8.2.2.2 Search 95
8.2.2.3 Next命令 95
8.2.2.4 Display As命令 95
8.2.2.5 File 95
第九章表达式 96
9.1选择表达式赋值语言 96
9.2代码地址、数据地址和行号 96
9.3.1.1在C,C++和汇编程序中跨越作用域 97
9.3访问当前作用域以外的符号 97
9.3.1作用域跨越语法 97
作用域跨越要点 99
9.3.1.2在Pascal程序中跨越作用域 99
作用域跨越要点 100
8.3.1.3作用域和DLL 100
9.3.2表达式求值的隐含作用域 100
9.2字节串 101
9.3 C语言表达式 101
9.3.1 C语言符号 101
9.3.2 C寄存器伪变量 101
9.3.3 C语言的常数和数字格式 103
9.3.4换码符序列 103
9.3.5 C运算符优先级 103
9.3.6执行程序中的C函数 104
9.4汇编表达式 105
9.3.7有副作用的C表达式 105
9.3.8 C保留字和类型转换 105
9.4.1汇编语言的符号 106
9.4.2汇编语言常量 106
9.4.3汇编运算符 106
9.4格式控制 106
第十章面向目标的调试 108
10.1 Hierarchy窗口 108
10.1.1 Class List画面 108
10.1.1.1 Class List画面子菜单 109
Inspect 109
Tree 109
10.1.2 Hierachy Tree画面 109
10.1.2.1 Hierarchy Tree画面子菜单 109
10.1.3 Parent Tree画面 110
10.2 Class Inspector窗口 111
10.1.3.1 Parent Tree画面子菜单 111
10.2.1 Class Inspector窗口子菜单 112
10.2.1.1 Data Member画面(上端画面) 112
Inspect 112
Hierarchy 112
Show Inherited 112
10.2.1.2 Member Function画面(下端画面) 112
Inspect 112
Hierarchy 112
Show Inherited 112
10.3 Object Inspector窗口 113
10.3.1 Object Inspector窗口子菜单 113
10.3.1.6 Descend命令 114
10.3.1.5 Inspect命令 114
10.3.1.4 Show Inherited命令 114
10.3.1.3 Methods命令 114
10.3.1.2 Change命令 114
10.3.1.1 Range命令 114
10.3.1.7 New Expression命令 115
10.3.1.8 Type Cast命令 115
10.3.1.9 Hierarchy命令 115
10.3.2中间和底端画面 115
第十一章使用Windows调试功能 116
11.1 Windows功能 116
11.1.1运行记录窗口信息 116
11.1.1.1为标准Windows应用程序选择窗口 116
为一个标准Windows应用程序添加一个窗口选择 117
11.1.1.2为ObjectWindow应用程序选择窗口 118
获得窗口句柄 118
指定允许ObjectWindows支持的窗口 119
在ObjectWindows支持下添加一个窗口 120
11.1.1.4指定一个信息类和动作 121
11.1.1.3删除一项窗口选择 121
添加一个信息类 122
删除一个信息类 123
窗口信息要点 123
11.1.1.4观察信息 124
11.1.2获得内存和模块表 124
11.1.2.1列出全程堆的内容 125
11.1.2.2列出局部堆的内容 126
11.1.2.3获得模块表 127
11.1.3调试动态连接库(DLL) 127
11.1.3.1 使用Load Modules or DLLs对话窗口 128
改变源模块 129
用DLL和程序 129
11.1.3.4控制TDW调入DLL符号表 130
11.1.3.5调试DLL启动代码 130
11.1.3.2在DLLs Programs表中添加一个DLL 130
11.1.3.3在DLL中设置调试选择项 130
11.1.5把内存句柄转换为地址 131
第十二章汇编级调试 133
12.1当仅调试源代码还不够时 133
12.2 CPU窗口 133
12.3 Code画面 135
12.3.1反汇编 135
12.4 Register和Flags画面 135
12.5.1 Selector画面子菜单 136
12.5 Selector画面 136
12.5.1.1 Selector 137
12.5.1.2 Examine 137
12.6 Data画面 137
12.7 Stack画面 138
12.8 Dump窗口 138
12.9 Registers窗口 138
第十三章命令参考 140
13.1热键 140
12.2菜单条上的命令 141
12.2.1≡(系统)菜单 142
12.2.2 File菜单 142
12.2.3 Edit菜单 142
12.2.4 View菜单 142
13.2.5 Run菜单 143
13.2.6Breakpoints菜单 143
13.2.7Data菜单 143
13.2.8 Options菜单 143
13.2.9 Windows菜单 144
13.2.10 Help菜单 144
12.3子菜单命令 144
13.3.1 Breakpoints窗口 144
13.3.2.3 Data画面 145
13.3.2.2 Selector画面 145
13.3.2.1 Code画面 145
13.3.2 CPU窗口菜单 145
13.3.2.4 Flags画面 146
13.3.2.5 Register画面 146
13.3.2.6 Stack画面 146
13.3.3 Dump窗口 147
13.3.4 Execution History窗口菜单 147
13.3.4.1 Instruction画面 147
13.3.4 File窗口 147
13.3.5Log窗口 147
13.3.6 Module窗口 148
13.3.7 Windows Message窗口 148
13.3.7.1 Window Selection画面 148
13.3.7.2 Message Class画面 148
13.3.9.2 Status画面 149
13.3.9 Nemberic Processor窗口 149
13.3.9.1 Register画面 149
13.3.7.3 Message画面 149
13.3.8 Clipboard窗口 149
13.3.9.3 Control画面 150
13.3.10 Hierarchy窗口 150
13.3.10.1 Class画面 150
13.3.10.2 Hierarchy画面 150
13.3.10.3 Parent Tree画面 150
13.3.11 Registers窗口菜单 150
13.3.12 Stack窗口 150
13.3.13 Variable窗口 150
13.3.13.1 Global Symbol画面 151
13.3.13.2 Local Symbol画面 151
13.3.14 Watches窗口 151
13.3.15 Inspector窗口 151
13.3.17 Object Inspector窗口 152
13.4文本画面 152
13.3.16 Class Inspector窗口 152
13.5列表画面 153
13.6输入和历史列表框中的命令 154
13.7窗口移动命令 154
13.8全面搜索模板 155
13.9完全菜单树 155
14.2.1整个运行 157
14.2调试风格 157
14.1 当程序不能工作时 157
第十四章调试标准C应用程序 157
14.2.2增量测试 158
14.3错误类型 158
14.3.1通常的错误 158
14.3.1.1隐藏的效应 158
14.3.1.2假设初始化数据 158
14.3.2.2混淆=和==。 159
14.3.2 C语言特色的错误 159
14.3.2.1用没初始化的动态变量 159
14.3.1.3未清除 159
14.3.1.4 “栏杆”错误 159
14.3.2.3混淆运算符的优先级 160
14.3.2.4错误的指针运算 160
14.3.2.5不可预期的符号扩展 160
14.3.2.6不可预期的截断 160
14.3.2.7分号写错了位置 160
14.3.2.8有副作用的宏定义 161
14.3.2.9重复使用自动变量名 161
14.3.2.10错误地使用自动变量 161
14.3.2.11未定义函数返回值 162
14.3.2.12错误使用Break关键字 162
14.3.2.13代码不起作用 162
14.4 确性测试 162
14.4.1检测边界条件 162
14.6.1寻找错误 163
14.6调试过程样例 163
14.4.2不合法数据输入 163
14.5把调试作为程序设计的一部分 163
14.4.3空数据输入 163
14.6.2决定动手计划 164
14.6.3启动Turbo Debugger 164
14.6.4检查 165
14.6.5断点 165
14.6.6 Watches窗口 165
14.6.7 Evaluate/Modify对话窗口 165
14.6.8 Eurekal 166
第十五章调试ObjectWindows应用程序 167
15.1关于程序 167
15.1.1 Color Scribble窗口类型定义 167
15.1.1.4 WMLButtonUp 168
15.1.1.3 WMLButtonDown 168
15.1.1.1 ScribbleWindow 168
15.1.1.2 GetWindowClass 168
15.1.2建应用程序 169
15.2.1找出第一个错误 169
15.2调试程序 169
15.2.1.1找出调用Windows的函数 169
15.1.1.7 Pen_color例程 169
15.1.1.6 WMMouseMove 169
15.1.1.5 WMRButtonDown 169
15.2.1.2 调试WMLButtonDown 170
15.2.1.3调试MoveTo 170
15.2.1.4修改错误 170
15.2.1.5检测修改部分 171
15.2.2找出笔颜色方面的错误 171
15.2.2.1设置一个窗口信息断点 171
用句柄设置窗口信息断点 172
15.2.2.2检查WParam 173
用窗口目标设置窗口信息断点 173
15.2.2.3检查修改部分 174
15.2.3找出离开窗口时的错误 174
15.2.3.1记录窗口信息 174
15.2.3.2找出错误 174
15.2.3.3修改错误。 174
15.2.3.4检查修改 175
15.2.4找出清除屏幕错误 175
15.2.4.1分析产生错误的原因 176
15.2.4.2修改错误 176
15.2.4.3检测修改部分 177
附录A命令行选择项小结 178
附录B错误和信息 179
B.1对话窗口信息 179
B.2错误信息 183
B.2.1严重错误 183
B.2.2其它错误信息 183