Stamp of Software Debugging
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
navigation bar seprate line

《软件调试(第二版)》卷1目录

*页码以实际印刷为准

第一篇 绪论

第1章 软件调试基础 3
1.1 简介 3
1.2 基本特征 5
1.3 简要历史 8
1.4 分类 12
1.5 调试技术概览 15
1.6 错误与缺欠 19
1.7 重要性 23
1.8 本章小结 26
参考资料 26

第二篇 CPU及其调试设施

第 2章 CPU基础 29
2.1 指令和指令集 29
2.2 英特尔架构处理器 33
2.3 CPU的操作模式 42
2.4 寄存器 44
2.5 理解保护模式 50
2.6 段机制 54
2.7 分页机制 59
2.8 PC系统概貌 73
2.9 ARM架构基础 75
2.10 本章小结 90
参考资料 90
第3章 中断和异常 91
3.1 概念和差异 91
3.2 异常的分类 93
3.3 异常例析 95
3.4 中断/异常的优先级 99
3.5 中断/异常处理 100
3.6 ARM架构中的异常机制 110
3.7 本章小结 112
参考资料 113
第4章 断点和单步执行 114
4.1 软件断点 114
4.2 硬件断点 123
4.3 陷阱标志 135
4.4 实模式调试器例析 140
4.5 反调试示例 145
4.6 ARM架构的断点支持 147
4.7 本章小结 156
参考资料 157
第5章 分支记录和性能监视 158
5.1 分支监视概览 159
5.2 使用寄存器的分支记录 159
5.3 使用内存的分支记录 166
5.4 DS示例:CpuWhere 169
5.5 性能监视 180
5.6 实时指令追踪 188
5.7 ARM架构的性能监视设施 192
5.8 本章小结 195
参考资料 195
第6章 机器检查架构 196
6.1 奔腾处理器的机器检查机制 196
6.2 MCA 198
6.3 编写MCA软件 205
6.4 本章小结 212
参考资料 212
第7章 JTAG调试 213
7.1 简介 213
7.2 JTAG原理 215
7.3 JTAG应用 219
7.4 IA处理器的JTAG支持 221
7.5 ARM处理器的JTAG支持 227
7.6 本章小结 232
参考资料 233

第三篇 GPU及其调试设施

第8章 GPU基础 237
8.1 GPU简史 237
8.2 设备身份 243
8.3 软件接口 244
8.4 GPU驱动模型 247
8.5 编程技术 250
8.6 调试设施 252
8.7 本章小结 254
参考资料 255
第9章 Nvidia GPU及其调试设施 256
9.1 概要 256
9.2 微架构 257
9.3 硬件指令集 268
9.4 PTX指令集 279
9.5 CUDA 286
9.6 异常和陷阱 293
9.7 系统调用 296
9.8 断点指令 299
9.9 Nsight的断点功能 301
9.10 数据断点 304
9.11 调试符号 306
9.12 CUDA GDB 307
9.13 CUDA调试器API 308
9.14 本章小结 312
参考资料 312
第10章 AMD GPU及其调试设施 314
10.1 演进简史 314
10.2 Terascale微架构 315
10.3 GCN微架构 318
10.4 GCN指令集 323
10.5 编程模型 325
10.6 异常和陷阱 327
10.7 控制波阵的调试接口 330
10.8 地址监视 332
10.9 单步调试支持 333
10.10 根据调试条件实现分支跳转的指令 335
10.11 代码断点 335
10.12 GPU调试模型和开发套件 337
10.13 ROCm-GDB 340
10.14 本章小结 341
参考资料 342
第11章 英特尔GPU及其调试设施 343
11.1 演进简史 343
11.2 GEN微架构 348
11.3 寄存器接口 354
11.4 命令流和环形缓冲区 357
11.5 逻辑环上下文和执行列表 360
11.6 GuC和通过GuC提交任务 365
11.7 媒体流水线 368
11.8 EU指令集 372
11.9 内存管理 377
11.10 异常 379
11.11 断点支持 381
11.12 单步执行 382
11.13 GT调试器 382
11.14 本章小结 386
参考资料 386
第12章 Mali GPU及其调试设施 387
12.1 概况 387
12.2 Midgard微架构 389
12.3 Bifrost微架构 393
12.4 Mali图形调试器 395
12.5 Gator 396
12.6 Kbase驱动的调试设施 399
12.7 其他调试设施 403
12.8 缺少的调试设施 405
12.9 本章小结 406
参考资料 406
第13章 PowerVR GPU及其调试设施 407
13.1 概要 407
13.2 Rogue微架构 410
13.3 参考指令集 413
13.4 软件模型和微内核 417
13.5 断点支持 418
13.6 离线编译和反汇编 420
13.7 PVR-GDB 421
13.8 本章小结 423
参考资料 423
第14章 GPU综述 424
14.1 比较 424
14.2 主要矛盾 425
14.3 发展趋势 426
14.4 其他GPU 427
14.5 学习资料和工具 430
14.6 本章小结 432
参考资料 432

第四篇 可调试性

第 15章 可调试性概览 435
15.1 简介 435
15.2 观止和未雨绸缪 436
15.3 基本原则 439
15.4 不可调试代码 444
15.5 可调试性例析 446
15.5.1 健康性检查和BSOD 447
15.6 与安全、商业秘密和性能的关系 449
15.7 本章小结 450
参考资料 451
第16章 可调试性的实现 452
16.1 角色和职责 452
16.2 可调试架构 455
16.3 通过栈回溯实现可追溯性 459
16.4 数据的可追溯性 466
16.5 可观察性的实现 472
16.5.1 状态查询 472
16.6 自检和自动报告 480
16.7 本章小结 482
参考资料 483

navigation bar seprate line
Copyright (C) 2018 Raymond Zhang, All Rights Reserved