• 软件调试 卷1:硬件基础(第2版)
  • 软件调试 卷1:硬件基础(第2版)
  • 软件调试 卷1:硬件基础(第2版)
21年品牌 40万+商家 超1.5亿件商品

软件调试 卷1:硬件基础(第2版)

全新正版 极速发货

77.86 6.6折 118 全新

库存7件

广东广州
认证卖家担保交易快速发货售后保障

作者张银奎

出版社人民邮电出版社

ISBN9787115492500

出版时间2016-12

装帧平装

开本其他

定价118元

货号1201788642

上书时间2024-08-07

谢岳书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
张银奎,靠前知名的调试技术专家。毕业于上海交通大学信息与控制工程系,长期从事软件开发和研究工作,曾在英特尔工作13 年,对 IA-32 架构、操作系统内核、驱动程序,尤其是对软件调试有较深入的研究。著有《软件调试》《格蠹汇编》等畅销、常销技术图书, 格蠹科技(xedge.ai) 创始人,高端调试网站(advdbg.org)创建者。翻译(合译)作品有《二十一世纪机器人》《观止——微软创建NT和未来的夺命狂奔》《数据挖掘原理》《机器学习》《人工智能:复杂问题求解的结构和策略》等。

目录
第 一篇  绪论

第  1章 软件调试基础  3
1.1  简介  3
1.1.1  定义  3
1.1.2  基本过程  5
1.2  基本特征  5
1.2.1  难度大  6
1.2.2  难以估计完成时间  7
1.2.3  广泛的关联性  7
1.3  简要历史  8
1.3.1  单步执行  8
1.3.2  断点指令  10
1.3.3  分支监视  11
1.4  分类  12
1.4.1  按调试目标的系统环境分类  12
1.4.2  按目标代码的执行方式分类  12
1.4.3  按目标代码的执行模式分类  13
1.4.4  按软件所处的阶段分类  13
1.4.5  按调试器与调试目标的相对位置分类  14
1.4.6  按调试目标的活动性分类  14
1.4.7  按调试工具分类  15
1.5  调试技术概览  15
1.5.1  断点  15
1.5.2  单步执行  16
1.5.3  输出调试信息  17
1.5.4  日志  17
1.5.5  事件追踪  17
1.5.6  转储文件  18
1.5.7  栈回溯  18
1.5.8  反汇编  18
1.5.9  观察和修改内存数据  19
1.5.10  控制被调试进程和线程  19
1.6  错误与缺欠  19
1.6.1  内因与表象  19
1.6.2  谁的bug  20
1.6.3  bug的生命周期  21
1.6.4  软件错误的开支曲线  21
1.7  重要性  23
1.7.1  调试与编码的关系  23
1.7.2  调试与测试的关系  24
1.7.3  调试与逆向工程的关系  24
1.7.4  学习调试技术的意义  25
1.7.5  调试技术尚未得到应有的重视  25
1.8  本章小结  26
参考资料  26

第二篇  CPU及其调试设施

第  2章 CPU基础  29
2.1  指令和指令集  29
2.1.1  基本特征  30
2.1.2  寻址方式  31
2.1.3  指令的执行过程  32
2.2  英特尔架构处理器  33
2.2.1  80386处理器  34
2.2.2  80486处理器  34
2.2.3  奔腾处理器  35
2.2.4  P6系列处理器  36
2.2.5  奔腾4处理器  38
2.2.6  Core 2系列处理器  38
2.2.7  Nehalem微架构  39
2.2.8  Sandy Bridge微架构  39
2.2.9  Ivy Bridge微架构  40
2.2.10  Haswell微架构  40
2.2.11  Broadwell微架构  41
2.2.12  Skylake微架构  41
2.2.13  Kaby Lake微架构  41
2.3  CPU的操作模式  42
2.4  寄存器  44
2.4.1  通用数据寄存器  44
2.4.2  标志寄存器  45
2.4.3  MSR寄存器  46
2.4.4  控制寄存器  46
2.4.5  其他寄存器  48
2.4.6  64位模式时的寄存器  49
2.5  理解保护模式  50
2.5.1  任务间的保护机制  50
2.5.2  任务内的保护  51
2.5.3  特权级  52
2.5.4  特权指令  53
2.6  段机制  54
2.6.1  段描述符  54
2.6.2  描述符表  56
2.6.3  段选择子  56
2.6.4  观察段寄存器  57
2.7  分页机制  59
2.7.1  32位经典分页  60
2.7.2  PAE分页  66
2.7.3  IA-32e分页  68
2.7.4  大内存页  71
2.7.5  WinDBG的有关命令  72
2.8  PC系统概貌  73
2.9  ARM架构基础  75
2.9.1  ARM的多重含义  75
2.9.2  主要版本  76
2.9.3  操作模式和状态  78
2.9.4  32位架构核心寄存器  80
2.9.5  协处理器  82
2.9.6  虚拟内存管理  83
2.9.7  伪段支持  87
2.9.8  64位ARM架构  88
2.10  本章小结  90
参考资料  90
第3章  中断和异常  91
3.1  概念和差异  91
3.1.1  中断  91
3.1.2  异常  93
3.1.3  比较  93
3.2  异常的分类  93
3.2.1  错误类异常  93
3.2.2  陷阱类异常  94
3.2.3  中止类异常  95
3.3  异常例析  95
3.3.1  列表  95
3.3.2  错误代码  97
3.3.3  示例  97
3.4  中断/异常的优先级  99
3.5  中断/异常处理  100
3.5.1  实模式  100
3.5.2  保护模式  101
3.5.3  IA-32e模式  109
3.6  ARM架构中的异常机制  110
3.7  本章小结  112
参考资料  113
第4章  断点和单步执行  114
4.1  软件断点  114
4.1.1  INT 3  114
4.1.2  在调试器中设置断点  115
4.1.3  断点命中  116
4.1.4  恢复执行  118
4.1.5  特殊用途  118
4.1.6  断点API  119
4.1.7  系统对INT 3的优待  119
4.1.8  观察调试器写入的INT 3指令  121
4.1.9  归纳和提示  122
4.2  硬件断点  123
4.2.1  调试寄存器概览  123
4.2.2  调试地址寄存器  124
4.2.3  调试控制寄存器  124
4.2.4  指令断点  127
4.2.5  调试异常  127
4.2.6  调试状态寄存器  128
4.2.7  示例  129
4.2.8  硬件断点的设置方法  132
4.2.9  归纳  134
4.3  陷阱标志  135
4.3.1  单步执行标志  135
4.3.2  不错语言的单步执行  136
4.3.3  任务状态段陷阱标志  138
4.3.4  按分支单步执行标志  138
4.4  实模式调试器例析  140
4.4.1  Debug.exe  140
4.4.2  8086 Monitor  142
4.4.3  关键实现  143
4.5  反调试示例  145
4.6  ARM架构的断点支持  147
4.6.1  断点指令  148
4.6.2  断点寄存器  149
4.6.3  监视点寄存器  153
4.6.4  单步跟踪  155
4.7  本章小结  156
参考资料  157
第5章  分支记录和性能监视  158
5.1  分支监视概览  159
5.2  使用寄存器的分支记录  159
5.2.1  LBR  160
5.2.2  LBR栈  161
5.2.3  示例  161
5.2.4  在Windows操作系统中的应用  165
5.3  使用内存的分支记录  166
5.3.1  DS区  166
5.3.2  启用DS机制  168
5.3.3  调试控制寄存器  168
5.4  DS示例:CpuWhere  169
5.4.1  驱动程序  170
5.4.2  应用界面  173
5.4.3  2.0版本  175
5.4.4  局限性和扩展建议  178
5.4.5  Linux内核中的BTS驱动  179
5.5  性能监视  180
5.5.1  奔腾处理器的性能监视机制  181
5.5.2  P6处理器的性能监视机制  182
5.5.3  P4处理器的性能监视  183
5.5.4  架构性的性能监视机制  186
5.5.5  酷睿微架构处理器的性能监视机制  187
5.5.6  资源  188
5.6  实时指令追踪  188
5.6.1  工作原理  189
5.6.2  RTIT数据包  190
5.6.3  Linux支持  191
5.7  ARM架构的性能监视设施  192
5.7.1  PMUv1和PMUv2  192
5.7.2  PMUv3  194
5.7.3  示例  194
5.7.4  CoreSight  195
5.8  本章小结  195
参考资料  195
第6章  机器检查架构  196
6.1  奔腾处理器的机器检查机制  196
6.2  MCA  198
6.2.1  概览  198
6.2.2  MCA的全局寄存器  199
6.2.3  MCA的错误报告寄存器  201
6.2.4  扩展的机器检查状态寄存器  202
6.2.5  MCA错误编码  203
6.3  编写MCA软件  205
6.3.1  基本算法  205
6.3.2  示例  207
6.3.3  在Windows系统中的应用  208
6.3.4  在Linux系统中的应用  210
6.4  本章小结  212
参考资料  212
第7章  JTAG调试  213
7.1  简介  213
7.1.1  ICE  213
7.1.2  JTAG  214
7.2  JTAG原理  215
7.2.1  边界扫描链路  215
7.2.2  TAP信号  216
7.2.3  TAP寄存器  217
7.2.4  TAP控制器  217
7.2.5  TAP指令  218
7.3  JTAG应用  219
7.3.1  JTAG调试  220
7.3.2  调试端口  221
7.4  IA处理器的JTAG支持  221
7.4.1  P6处理器的JTAG实现  221
7.4.2  探测模式  223
7.4.3  ITP接口  223
7.4.4  XDP端口  225
7.4.5  ITP-XDP调试仪  226
7.4.6  直接连接接口  226
7.4.7  典型应用  227
7.5  ARM处理器的JTAG支持  227
7.5.1  ARM调试接口  228
7.5.2  调试端口  228
7.5.3  访问端口  229
7.5.4  被调试器件  229
7.5.5  调试接插口  229
7.5.6  硬件调试器  231
7.5.7  DS-5  232
7.6  本章小结  232
参考资料  233

第三篇  GPU及其调试设施

第8章  GPU基础  237
8.1  GPU简史  237
8.1.1  从显卡说起  237
8.1.2  硬件加速  239
8.1.3  可编程和通用化  240
8.1.4  三轮演进  242
8.2  设备身份  243
8.2.1  “喂模式”  243
8.2.2  内存复制  243
8.2

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP