《Borland C++入门》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:求实编著
  • 出 版 社:北京:科学出版社
  • 出版年份:1994
  • ISBN:7030040422
  • 页数:490 页
图书介绍:

第一章 安装Borland C++ 1

1.1 安装Borland C++ 1

目录 1

1.1.1 保护模式和内存管理 2

1.3 HELPME!.DOC文件 4

1.2 README文件 4

1.1.2 运行BC 4

1.1.3 膝上计算机系统 4

1.5 用户化IDE 5

1.4 例程 5

2.1.1 命令行选项 6

2.1 启动和退出 6

第二章 集成环境(IDE)入门 6

2.2.1 菜单条与菜单 8

2.2 组成部分 8

2.1.2 退出Borland C++ 8

2.2.2 Borland C++窗口 12

2.2.4 对话框 14

2.2.3 状态行 14

2.3.1 配置文件 16

2.3 配置和工程文件 16

2.3.2 工程文件 17

2.4 Turbo C++ For Windows的IDE 18

3.1 使用工程管理程序 21

第三章 管理多文件工程 21

3.2 错误跟踪 23

3.2.2 多个源程序文件中的语法错误 24

3.2.1 中止制作 24

3.3 使用不同的文件编译程序 25

3.2.4 自依赖性检查 25

3.2.3 保存或删除消息 25

3.5 Project Manager的其它特点 27

3.4 覆盖库 27

3.5.1 查看工程中的文件 28

3.5.2 工程记事 29

4.1.2 运行BCC 30

4.1.1 DPMIINST 30

第四章 命令行编译器 30

4.1 使用命令行编译器 30

4.1.3 使用选项 31

4.1.4 语法和文件名 35

4.1.6 配置文件 36

4.1.5 应答文件 36

4.2.1 存储模式 37

4.2 编译器选项 37

4.2.3 代码生成选项 38

4.2.2 宏定义 38

4.2.6 出错报告选项 42

4.2.5 源代码选项 42

4.2.4 优化选项 42

4.2.7 段命名控制 44

4.2.8 编译控制选项 45

4.2.9 EMS和扩充内存选项 46

4.2.11 C++成员指针 47

4.2.10 C++虚表 47

4.2.12 模板生成选项 48

4.5 向前兼容性选项 49

4.4 环境选项 49

4.3 连接程序选项 49

4.5.1 查找包含文件和库文件 50

4.5.2 文件查找算法 51

5.1.1 用\续行 53

5.1 空白符 53

第五章 词法 53

5.1.2 注释 54

5.2.1 关键字 55

5.2 单词符号 55

5.2.2 标识符 56

5.2.3 常量 57

5.2.4 分隔符 64

6.1.1 对象 68

6.1 说明 68

第六章 语言结构 68

6.1.5 作用域 69

6.1.4 类型和存储类 69

6.1.2 Lvalue(左*))1.3 Rvalue(右值) 69

6.1.6 可见性 70

6.1.8 翻译单元 71

6.1.7 生存期 71

6.1.9 连接 72

6.2.1 临时定义 73

6.2 说明语法 73

6.2.2 可能的说明 74

6.2.3 外部说明和定义 75

6.2.4 类型说明符 76

6.2.5 类型分类 77

6.2.6 基类型 78

6.2.7 初始化 80

6.2.9 存储类说明符 81

6.2.8 简单说明 81

6.2.10 修饰符 83

6.2.11 复杂说明与说明符 87

6.3.3 指针说明 88

6.3.2 指向函数的指针 88

6.3 指针 88

6.3.1 指向对象的指针 88

6.3.4 指针与常量 89

6.3.6 指针转换 90

6.3.5 指针算术运算 90

6.5.1 声明与定义 91

6.5 函数 91

6.3.7 C++引用说明 91

6.4 数组 91

6.5.2 声明与原型 92

6.5.3 定义 93

6.5.5 函数调用与参数转换 94

6.5.4 形参声明 94

6.6.2 结构成员声明 95

6.6.1 无标记结构与typedef 95

6.6 结构 95

6.6.4 结构成员访问 96

6.6.3 结构与函数 96

6.6.5 结构字对齐 97

6.6.8 位段 98

6.6.7 不完整声明 98

6.6.6 结构名空间 98

6.7 联合 99

6.8 枚举 100

6.7.2 联合声明 100

6.7.1 匿名联合(仅用于C++) 100

6.9 表达式 102

6.9.3 出错与溢出 104

6.9.2 求值次序 104

6.9.1 表达式与C++ 104

6.11 操作符描述 105

6.10 操作符语义 105

6.11.1 双目操作符 106

6.11.3 后缀和前缀操作符 107

6.11.2 单目操作符 107

6.11.5 单目操作符 108

6.11.4 增量和减量操作符 108

6.11.8 加法类操作符 110

6.11.7 乘法类操作符 110

6.11.6 sizeof操作符 110

6.11.9 按位移位操作符 111

6.11.11 相等操作符 112

6.11.10 关系操作符 112

6.11.12 按位与操作符& 113

6.11.16 逻辑或操作符‖ 114

6.11.15 逻辑与操作符&& 114

6.11.13 按位异或操作符^ 114

6.11.14 按位或操作符| 114

6.11.18 赋值操作符 115

6.11.17 条件操作符?: 115

6.11.20 C++操作符 116

6.11.19 逗号操作符 116

6.12.1 块 117

6.12 语句 117

6.12.4 选择语句 118

6.12.3 表达式语句 118

6.12.2 带标号语句 118

6.12.5 循环语句 119

6.12.6 跳转语句 121

7.1.2 引用参数 123

7.1.1 简单引用 123

第七章 C++ 123

7.1 引用 123

7.3 new与delete操作符 125

7.2 作用域访问操作符 125

7.3.2 关于数组的new操作符 126

7.3.1 错误处理 126

7.3.5 带有new操作符的初始值 127

7.3.4 ∷operator new 127

7.3.3 关于数组的delete操作符 127

7.4.1 类名 128

7.4 类 128

7.4.4 类对象 129

7.4.3 类名作用域 129

7.4.2 类类型 129

7.4.8 关键字inline 130

7.4.7 关键字this 130

7.4.5 类成员表 130

7.4.6 成员函数 130

7.4.9 静态成员 133

7.4.10 成员作用域 134

7.4.11 基类与派生类的存取 137

7.6 类的友元 141

7.5 虚基类 141

7.7 构造函数与析构函数 142

7.8 构造函数 143

7.8.3 构造函数的重载 144

7.8.2 拷贝构造函数 144

7.8.1 缺省构造函数 144

7.8.4 构造函数的调用次序 145

7.8.5 类的初始化 146

7.9.1 析构函数的调用 148

7.9 析构函数 148

7.9.4 abort与析构函数 149

7.9.3 exit与析构函数 149

7.9.2 atexit,#pragma exit与析构函数 149

7.10 重载操作符 150

7.9.5 虚析构函数 150

7.11.1 重载操作符与继承 151

7.11 操作符函数 151

7.11.2 重载new和delete 152

7.11.4 重载双目操作符 153

7.11.3 重载单目操作符 153

7.11.8 重载类成员访问操作符 154

7.11.7 重载下标操作符 154

7.11.5 重载赋值操作符= 154

7.11.6 重载函数调用操作符() 154

7.12 虚函数 155

7.12.1 纯虚拟函数 161

7.13 抽象类 162

7.14.1 类作用域 163

7.14 C++作用域 163

7.15 模板 164

7.14.3 C++作用域规则小结 164

7.14.2 隐藏 164

7.15.1 模板函数 165

7.15.2 类模板 167

7.15.3 模板编译器开关选项 170

8.1.3 ios类 173

8.1.2 streambuf库 173

第八章 使用C++流 173

8.1 什么叫流 173

8.1.1 iostream库 173

8.3 输出cout 175

8.2 输入/输出 175

8.3.2 输出格式化 176

8.3.1 基本类型 176

8.3.3 操纵符 177

8.3.4 填充与补空 178

8.3.5 cerr和clog 179

8.4 输入cin 180

8.5 用户定义输入类型的I/O 181

8.6 简单文件I/O 182

8.7 串流处理 183

8.8 屏幕输出流 184

8.9.1 conbuf 185

8.9 流类参考 185

8.9.2 constream 186

8.9.4 fstream 187

8.9.3 filebuf 187

8.9.6 ifstream 188

8.9.5 fstreambase 188

8.9.7 ios 189

8.9.8 iostream 190

8.9.10 istream 191

8.9.9 iostream_withassign 191

8.9.13 ofstream 192

8.9.12 istrtream 192

8.9.11 istream_withassign 192

8.9.16 ostrstream 193

8.9.15 ostream_withassign 193

8.9.14 ostream 193

8.9.17 streambuf 194

8.9.18 strstreambase 195

8.9.20 strstream 196

8.9.19 strstreambuf 196

第九章 预处理器 197

9.2.1 简单的#define宏 198

9.2 #define与#undef伪指令 198

9.1 Null伪指令# 198

9.2.2 #undef伪指令 199

9.2.6 带参数的宏 200

9.2.5 关键字与保护字 200

9.2.3 -D与-U选项 200

9.2.4 Define选项 200

9.3 文件包含伪指令#include 202

9.4 条件编译 203

9.3.2 “header_name”形式的头文件搜索 203

9.3.1 <header_name>形式的头文件搜索 203

9.4.2 #ifdef和#ifndef条件伪指令 204

9.4.1 #if,#elif,#else和#endif条件伪指令 204

9.5 #line行控制伪指令 205

9.7 #pragma伪指令 206

9.6 #error伪指令 206

9.7.2 #pragma exit与#pragma starup 207

9.7.1 #pragma argused 207

9.7.7 #pragma option 208

9.7.6 #pragma intrinsic 208

9.7.3 #pragma hdrfile 208

9.7.4 #pragma hdrstop 208

9.7.5 #pragma inline 208

9.7.9 #pragma warn 209

9.7.8 #pragma saveregs 209

9.8.4 __cplusplus 210

9.8.3 __CDECL__ 210

9.8 预定义的宏 210

9.8.1 __BCPLUSPLUS__ 210

9.8.2 __BORLANDC__ 210

9.8.13 __TCPLUSPLUS__ 211

9.8.12 __STDC__ 211

9.8.5 __DATE__ 211

9.8.6 __DLL__ 211

9.8.7 __FILE__ 211

9.8.8 __LINE__ 211

9.8.9 __MSDOS__ 211

9.8.10 __OVERLAY__ 211

9.8.11 __PASCAL__ 211

9.8.17 _Windows 212

9.8.16 __TURBOC__ 212

9.8.14 __TEMPLATES__ 212

9.8.15 __TIME__ 212

10.1.1 参数传递系列 213

10.1 混合语言编程 213

第十章 BASM与嵌入式汇编 213

10.2.1 建立从Borland C++对.ASM的调用 215

10.2 从Borland C++调用.ASM 215

10.2.2 书写一个汇编语言子程序 218

10.2.3 用C++连接汇编程序模块 222

10.3 从汇编程序调用C和C++子程序 223

10.3.2 一个调用汇编模块的例子 224

10.3.1 建立 224

10.4.1 伪变量 226

10.4 伪变量、嵌入汇编和中断函数 226

10.4.2 嵌入汇编语言 228

10.4.3 中断函数 233

10.4.4 使用低级练习 234

第十一章 资源开发工具 236

11.1.2 Resource Workshop的启动 237

11.1.1 Resource Workshop的安装 237

11.1 简介 237

11.1.4 进入Help 238

11.1.3 退出Resource Workshop 238

11.2.2 资源类型 239

11.2.1 Windows资源的理解 239

11.2 Resource Workshop基础 239

11.2.3 两种类型的编辑器 241

11.2.4 资源文件类型 242

11.2.6 新用户必读 246

11.2.5 管理工程文件(工程窗口) 246

11.3 工程和资源操作 247

11.3.2 打开已存在的工程 248

11.3.1 新工程的建立 248

11.3.3 Project窗口的使用 249

11.3.4 资源操作 251

11.3.5 标识符的使用 254

11.3.6 保存资源、文件和工程 256

11.3.7 配置选择 257

11.3.9 二进制文件的操作 258

11.3.8 工程之间的资源复制 258

12.1 资源类型的建立 260

第十二章 用户定义资源的建立 260

12.3 编辑用户定义资源 261

12.2 用户定义资源的加入 261

12.3.2 保存在单独文件中的数据处理 262

12.3.1 在资源文本中加入数据 262

12.6 用户定义资源的删除 263

12.5 RCDATA资源类型的使用 263

12.4 用户定义资源的测试 263

13.1.1 DLL中的类 264

13.1 IMPDEF:模块定义管理程序 264

第十三章 输入库工具 264

13.2 IMPLIB:输入库 265

13.1.2 DLL中的函数 265

13.3 IMPLIBW:Windows输入库 266

13.2.1 重建IMPORT.LIB 266

13.3.2 创建输入库 267

13.3.1 选择输入库 267

14.1 MAKE是怎样工作的 268

第十四章 MAKE:程序管理器 268

14.2.1 命令行选项 269

14.2 启动MAKE 269

14.2.2 BULTIMS.MAK文件 270

14.3 MAKE的一种简单运用 271

14.4 创建makefile文件 272

14.5.1 隐式和显式规则的命令表 273

14.5 makefile文件的组成 273

14.5.2 显式规则 277

14.5.3 隐式规则 279

14.5.4 宏 280

14.5.6 点指令 285

14.5.5 指令 285

14.5.8 条件执行指令 287

14.5.7 文件嵌入指令 287

14.5.10 取消宏定义指令 289

14.5.9 出错指令 289

14.6 兼容选项—N 290

15.2 TLIB命令行 291

15.1 为什么使用目标模块库 291

第十五章 TLIB:Turbo库管理程序 291

15.2.1 操作表 292

15.4 创建一个扩展目录:/E选项 293

15.3 使用应答文件 293

15.7 例子 294

15.6 高级操作:/C选项 294

15.5 设置页大小:/P选项 294

16.1 调用TLINK 296

第十六章 TLINK:Turbo连接程序 296

16.1.2 Windows程序连接的一个例子 297

16.1.1 DOS下连接的一个例子 297

16.1.4 使用应答文件 298

16.1.3 TLINK命令行中的文件名 298

16.1.6 使用TLINK连接Borland C++模块 299

16.1.5 TLINK配置文件 299

16.2 TLINK选项 302

16.1.7 利用BCC使用TLINK 302

16.2.6 /d(重复符号) 303

16.2.5 /C(大小写敏感的exports) 303

16.2.1 TLINK配置文件 303

16.2.2 /3(80386 32位码) 303

16.2.3 /A(段对齐) 303

16.2.4 /c(大小写敏感) 303

16.2.10 /L(库查找路径) 304

16.2.9 /l(行号) 304

16.2.7 /e(不使用扩展目录) 304

16.2.8 /i(未初始化的尾部段) 304

16.2.11 /m,/s和/x(映象选项) 305

16.2.13 /o(覆盖) 306

16.2.12 /n(忽略缺省库) 306

16.2.16 /Td和/Tw(目标选项) 307

16.2.15 /t(微模式.COM文件) 307

16.2.14 /P(压缩代码段) 307

16.2.19 /yx(扩展内存) 308

16.2.18 /ye(扩充内存) 308

16.2.17 /v(调试信息) 308

16.3.2 一个例子 309

16.3.1 缺省模块定义文件 309

16.3 模块定义文件 309

16.4.1 CODE(代码) 310

16.4 模块定义引用 310

16.4.4 EXETYPE 311

16.4.3 DESCRIPTION(描述) 311

16.4.2 DATA(数据) 311

16.4.7 IMPORTS 312

16.4.6 HEAPSIZE 312

16.4.5 EXEPORTS 312

16.4.10 SEGMENTS 313

16.4.9 NAME(名) 313

16.4.8 LIBRARY(库) 313

16.4.12 STUB 314

16.4.11 STACKSIZE 314

17.1.3 优化选项 315

17.1.2 何时应使用优化程序 315

第十七章 重要参考 315

17.1 优化程序 315

17.1.1 优化的含义 315

17.1.7 死代码消除 317

17.1.6 全局寄存器分配 317

17.1.4 向前兼容 317

17.1.5 Borland C++优化程序剖析 317

17.1.9 循环静态代码的外移 318

17.1.8 公共子表达式消除 318

17.1.11 指针别名 319

17.1.10 拷贝传播 319

17.1.13 循环压缩 320

17.1.12 循环变量分析和强度消减 320

17.1.18 内部函数嵌入 321

17.1.17 抑制冗余加载 321

17.1.14 代码长度和速度优化 321

17.1.15 结构拷贝嵌入 321

17.1.16 代码压缩 321

17.1.21 参数规则 322

17.1.20 fastcall修饰符 322

17.1.19 寄存器参数传递 322

17.2 编辑器命令参考 323

17.1.22 函数命名 323

17.2.1 块命令 325

17.2.2 其它编辑命令 326

17.3.1 从DOS环境到Windows环境的方便转换 327

17.3 使用EasyWin 327

17.3.3 附加函数 328

17.3.2 _InitEasyWin() 328

17.4.3 使用预编译头文件 329

17.4.2 限制 329

17.4 预编译头文件 329

17.4.1 预编译头文件是如何工作的 329

17.4.6 优化预编译头文件 330

17.4.5 验证一致性 330

17.4.4 指定文件名 330

第十八章 Turbo Debugger简介 332

18.1 演示程序 333

18.2.2 状态行(status line) 334

18.2.1 菜单(menus) 334

18.2 使用Turbo Debugger 334

18.2.3 窗口(windows) 335

18.3 使用C演示程序 336

18.3.3 检查简单的C数据对象 337

18.3.2 利用检测(using watches) 337

18.3.1 设置断点(setting breakpoints) 337

18.4 使用Pascal示例程序 338

18.3.5 改变C数据值 338

18.3.4 考察复杂的C数据的对象 338

18.4.2 使用检测窗口(using watches) 339

18.4.1 设置断点(setting breakpoints) 339

18.4.5 改变Pascal数据值 340

18.4.4 检查复杂的Pascal数据对象 340

18.4.3 检查简单的Pascal数据对象 340

19.1.2 准备Turbo Pascal程序 342

19.1.1 准备Borland C++程序 342

第十九章 启动Turbo Debugger 342

19.1 准备待调试的程序 342

19.3 命令行选项 343

19.2 运行Turbo Debugger 343

19.1.3 准备Turbo汇编程序 343

19.3.5 击键记录(-k) 344

19.3.4 进程ID转换(-i) 344

19.3.1 装载配置文件(-c) 344

19.3.2 显示更新方式(-d) 344

19.3.3 获取帮助(-h和-?) 344

19.3.10 源代码处理(-s) 345

19.3.9 远程调试(-r) 345

19.3.6 汇编模式启动(-l) 345

19.3.7 设置堆大小(-m) 345

19.3.8 鼠标器支持(-p) 345

19.3.13 覆盖池大小(-y) 346

19.3.12 远程Windows调试(-w) 346

19.3.11 视频硬件(-v) 346

19.5.1 语言命令 347

19.5 选项菜单 347

19.4 配置文件 347

19.5.3 显示选择命令 348

19.5.2 宏菜单 348

19.6 在Turbo Debugger中运行DOS 349

19.5.6 恢复选项命令 349

19.5.4 源命令路径 349

19.5.5 保存选项命令 349

19.7 返回DOS 350

20.1.1 变量窗口 351

20.1 考察当前程序状态 351

第二十章 控制程序执行 351

20.1.2 Stack窗口 353

20.1.4 Get Info命令 354

20.1.3 Origin局部菜单命令 354

20.2.4 跳过一步(Step over) 357

20.2.3 跟踪进入(Trace into) 357

20.2 运行菜单 357

20.2.1 运行(Run) 357

20.2.2 执行到光标位置(Goto cursor) 357

20.2.8 反向跟踪(Back trace) 358

20.2.7 激活运行(Animate...) 358

20.2.5 执行到某处(Execute to...) 358

20.2.6 执行到返回(Until return) 358

20.3 Execution History窗口 359

20.2.11 程序复位(Program reset) 359

20.2.9 指令跟踪(Instruction trace) 359

20.2.10 参数(Argument...) 359

20.3.2 Keystroke Recording视窗 360

20.3.1 Instructions视窗 360

20.4.1 Ctrl-Break 361

20.4 中断程序执行 361

20.6.2 击键宏记录和重用 362

20.6.1 重新加载用户程序 362

20.5 程序终止 362

20.6 重新开始调试 362

20.8 改变程序参数 363

20.7 打开新的待调试程序 363

21.1.2 求值/修改(Evaluate/Modify) 364

21.1.1 考察(Inspect) 364

第二十一章 检查和修改数据 364

21.1 数据菜单(Data Menu) 364

21.3 检查窗口(Watch Window) 366

21.2 指向源文件的数据目标 366

21.1.3 增加检测项 366

21.1.4 函数返回值 366

21.3.1 Watches窗口的局部菜单 367

21.4.1 C数据Inspector窗口 368

21.4 Inspector窗口 368

21.4.2 Pascal数据检查窗口 369

21.4.3 汇编语言数据检查窗口 370

21.5.4 继承(Descend) 372

21.5.3 检查(Inspect) 372

21.5 Inspector窗口的局部菜单 372

21.5.1 范围(Range) 372

21.5.2 改变(Change) 372

21.5.6 强制类型转换(Type cast...) 373

21.5.5 新表达式…(New expression) 373

第二十二章 断点 374

22.2 断点窗口(Breakpoints) 375

22.1.6 全清(Delete all) 375

22.1 断点菜单(Breakpoints menu) 375

22.1.1 开关(Toggle) 375

22.1.2 在(At) 375

22.1.3 全局存储变化(Changed memory global) 375

22.1.4 全局表达式为真(Expression true global) 375

22.1.5 硬件断点(Hardware breakpoint) 375

22.2.1 断点窗口的局部菜单 376

22.2.2 断点选项(Breakpoint Options)对话框 377

22.2.3 Conditions和Actions对话框 378

22.3.3 内存变化断点(Changed memory breakpoint) 381

22.3.2 全局断点 381

22.3 断点的用户化 381

22.3.1 简单断点 381

22.3.5 硬件断点(Hardware breakpoint) 382

22.3.4 条件表达式 382

22.3.7 断点和模板 383

22.3.6 记载变量值 383

22.4.1 记载窗口局部菜单 384

22.4 记载窗口(Log Window) 384

23.1.1 模块窗口(Module) 386

23.1 审阅源程序文件 386

第二十三章 审阅和修改文件 386

23.1.2 Module窗口的局部菜单 387

23.2.1 文件窗口 388

23.2 审阅其它磁盘文件 388

23.2.2 文件窗口的局部菜单 389

24.1 为表达式计算选择语言 391

第二十四章 表达式 391

24.3.1 作用域覆盖语法 392

24.3 获取当前作用域以外的符号 392

24.2 代码地址、数据地址和行号 392

24.4 字节列表(Byte lists) 396

24.3.2 计算表达式的隐含作用域 396

24.5.2 寄存器伪变量 397

24.5.1 C符号 397

24.5 C表达式 397

24.5.4 转义序列 398

24.5.3 C常量和数据格式 398

24.5.6 在程序中执行C函数 399

24.5.5 C运算符及其优先级 399

24.5.8 C关键字和指针类型转换 400

24.5.7 带副作用的C表达式 400

24.6.4 Pascal运算符和优先级 401

24.6.3 Pascal字符串 401

24.6 Pascal表达式 401

24.6.1 Pascal标识符 401

24.6.2 Pascal常量和数据格式 401

24.7.2 汇编常量 402

24.7.1 汇编标识符 402

24.6.5 调用Pascal函数和过程 402

24.7 汇编表达式 402

24.8 格式控制 403

24.7.3 汇编操作码 403

25.1.1 对象类型列表 404

25.1 层次窗口(Hierarchy Window) 404

第二十五章 调试C++和面向对象的PASCAL程序 404

25.2 对象类型/类检查窗口 405

25.1.2 层次树视窗 405

25.2.1 对象类型/类检查窗口的局部菜单 406

25.3.1 对象实例检查窗口的局部菜单 407

25.3 对象实例检查窗口 407

25.3.2 中部视窗和底部视窗 408

26.2 CPU窗口 409

26.1 当源程序调试不够时 409

第二十六章 汇编级调试 409

26.3.1 反汇编 410

26.3 代码视窗 410

26.3.2 代码视窗局部菜单 411

26.4.1 寄存器视窗的局部菜单 413

26.4 寄存器和标志视窗 413

26.5.1 选择器视窗局部菜单 414

26.5 选择器视窗(Selector Pane) 414

26.4.2 标志视窗局部菜单 414

26.6.1 数据视窗的局部菜单 415

26.6 数据视窗 415

26.7.1 堆栈视窗的局部菜单 417

26.7 堆栈视窗 417

26.8.1 操作数地址前置词 418

26.8 汇编 418

26.10 寄存器窗口 419

26.9 转储窗口 419

26.8.2 操作数数据前置词 419

26.8.3 串指令 419

27.2.1 寄存器视窗 421

27.2 数学处理器窗口 421

第二十七章 80x87协处理器芯片和仿真器 421

27.1 80x87芯片及仿真器 421

27.2.2 控制视窗 422

27.2.3 状态视窗 423

28.1 热键 424

第二十八章 命令一览表 424

28.2 主菜单条的命令 425

28.2.4 浏览菜单(View Menu) 426

28.2.3 编辑菜单(Edit Menu) 426

28.2.1 ≡(系统)菜单(≡(System)Menu) 426

28.2.2 文件菜单(File Menu) 426

28.2.8 选项菜单(Options Menu) 427

28.2.7 数据菜单(Data Menu) 427

28.2.5 运行菜单(Run Menu) 427

28.2.6 断点菜单(Breakpoints Menu) 427

28.3 局部菜单命令 428

28.2.10 帮助菜单(Help Menu) 428

28.2.9 窗口菜单(Window Menu) 428

28.3.2 CPU窗口菜单(CPU Window Menus) 429

28.3.1 断点窗口(Break points Window) 429

28.3.5 文件窗口(File Window) 431

28.3.4 执行历史窗口(Execution History Window)菜单 431

28.3.3 转储窗口(Dump Window) 431

28.3.8 Windows消息(Windows Messages)窗口 432

28.3.7 模块窗口(Module Window) 432

28.3.6 记载窗口菜单(Log Window Menu) 432

28.3.11 层次窗口(Hierarchy Window) 433

28.3.10 数学处理器窗口(Numeric ProcessorWindow) 433

28.3.9 剪接窗口(Clipboard Window) 433

28.3.15 检测窗口菜单(Watches Window) 434

28.3.14 变量窗口(Variables Window) 434

28.3.12 寄存器窗口菜单(Register Window Menu) 434

28.3.13 堆栈视窗菜单(Stack Window) 434

28.3.18 对象/类实例检查窗口(Object/Class Instance Inspector Window) 435

28.3.17 对象类型/类检查窗口(Object Type/Class Inspector Window) 435

28.3.16 检查窗口(Inspector Window) 435

28.5 列表视窗 436

28.4 文本视窗 436

28.8 通配符搜索模板 437

28.7 窗口移动命令 437

28.6 输入框和历史列表框中的命令 437

28.9 完整的菜单树 438

29.2.1 运行整个程序 439

29.2 调试风格 439

第二十九章 调试技巧 439

29.1 当出现问题时 439

29.3.1 一般性错误 440

29.3 错误类型 440

29.2.2 逐步测试 440

29.3.2 C特有的错误 441

29.3.3 Pascal特有的错误 444

29.3.4 汇编特有的错误 449

29.5 调试(程序设计的一部分) 452

29.4.3 空数据输入 452

29.4 精确测试 452

29.4.1 测试边界条件 452

29.4.2 无效的数据输入 452

29.7.1 寻找错误 453

29.7 C调试过程 453

29.6 样例调试过程 453

29.7.4 检查 454

29.7.3 启动Turbo Debugger 454

29.7.2 确定解决方案 454

29.7.8 Eureka! 455

29.7.7 求值/修改对话框 455

29.7.5 断点 455

29.7.6 检测窗口 455

29.8.1 寻找错误 456

29.8 Pascal调试过程 456

29.8.2 确定解决方案 457

29.8.5 求值/修改对话框 458

29.8.4 巡查程序 458

29.8.3 启动Turbo Debugger 458

29.8.7 检测 459

29.8.6 检查 459

29.8.8 最后一个错误 460

30.3 开始虚拟调试 462

30.2 安装虚拟调试设备驱动程序 462

第三十章 80386处理器上的虚拟调试 462

30.1 虚拟调试所需设备 462

30.5 故障检查 464

30.4 一般调试和虚拟调试的区别 464

30.6 TD386错误信息 465

30.7 TDH386.SYS错误信息 466

31.4 保护模式的调试程序与Turbo Debugger的不同点 467

31.3 启动保护模式调试程序 467

第三十一章 用TD286在保护模式下调试 467

31.1 保护模式调试器的硬件要求 467

31.2 安装保护模式调试程序 467

31.6 在不同的机器上运行TD286 468

31.5 调试使用扩展内存的程序 468

32.1.1 调试TSR 469

32.1 什么是TSR 469

第三十二章 调试TDRs和设备驱动程序 469

32.2 什么是设备驱动程序 471

32.2.1 调试设备驱动程序 472

32.3 结束调试过程 473

33.1 命令行选项总结 475

第三十三章 Debugger参考资料 475

33.2.4 使用8087/80287数字协处理和模拟器 476

33.2.3 跟踪DOS和进程ID转换 476

33.2 技术资料 476

33.2.1 变化了的加载地址和内存自由空间 476

33.2.2 系统崩溃 476

33.2.9 EMS支持 477

33.2.8 存储分配 477

33.2.5 Turbo Debugger使用的中断 477

33.2.6 用INT3和INT1调试 477

33.2.7 显示保存和模式转换 477

33.3 嵌入汇编关键字 478

33.2.10 中断向量保存的恢复 478

33.4.1 运行TDINST 481

33.4 设置Turbo Debugger参数 481

33.4.2 设置屏幕颜色 482

33.4.3 设置Turbo Debugger的显示参数 483

33.4.4 Turbo Debugger的选项(Turbo Debugger Options) 485

33.4.6 命令行选项及其对应的安装设置 488

33.4.5 设置显示方式 488

33.4.7 完成设置后 490