1 介绍
2 前言
3 常用术语
4 调试基础
4.1 调试目的
4.2 调试依赖
4.3 反调试技术
5 走进调试器开发
5.1 调试器概貌
5.2 调试器示例
6 开发go指令级调试器
6.1 进程启动
6.2 进程attach
6.3 启动&attach
6.4 调试会话
6.5 反汇编
6.6 添加断点
6.7 列出断点
6.8 移除断点
6.9 清空断点
6.10 步进操作
6.11 运行到断点
6.12 打印内存数据
6.13 打印寄存器数据
6.20 跟踪多线程程序
6.21 重构程序
6.x More...
7 挺进符号级调试器
7.1 理解ELF文件
7.2 符号&符号表
7.3 符号的解析
7.4 重定位
7.5 加载
7.6 go标准库debug/*
7.6.1 debug/elf
7.6.2 debug/gosym
7.6.3 debug/dwarf
7.7 挺进DWARF
8 调试信息标准: DWARF
8.1 发展历史
8.2 DWARF结构
8.3 调试信息条目:DIE
8.3.1 DIE介绍
8.3.2 DIE描述数据和类型
8.3.3 DIE描述可执行代码
8.3.4 DIE数据编码
8.4 其他调试数据
8.4.0 加速访问
8.4.1 行号表信息
8.4.2 宏信息
8.4.3 调用栈帧信息
8.4.4 变长数据
8.4.5 压缩DWARF数据
8.4.6 ELF Sections
8.5 DWARF总结
8.6 解析DWARF
8.7 使用DWARF
8.8 本章总结
9 开发go符号级调试器
9.1. 需求分析
9.2 概要设计
9.2.1 整体架构
9.2.2 前端UI层设计
9.2.3 Service层设计
9.2.4 后端符号层设计
9.2.5 后端目标层设计
9.3 详细设计
9.4 编码实现
9.4.1 进程启动
9.4.2 进程attach
9.4.3 进程启动并attach
9.4.4 调试会话
9.4.5 反汇编
9.4.6 添加断点
9.4.7 查询断点
9.4.8 移除断点
9.4.9 清空断点
9.4.10 步进执行
9.4.11 继续执行
9.4.12 查看内存
9.4.13 查看寄存器
9.4.14 调用栈帧信息
9.4.15 变量&类型系统
9.4.16 函数
9.4.17 协程
9.4.18 跟踪多线程程序
9.4.19 More...
10 致谢
11 附录
11.1 go程序启动流程
Published with GitBook
9.4.3 进程启动并attach
和第2小节中提到的attach的一些注意事项类似,只是这里还需要考虑启动之后如何立即程序在运行前停下来的问题,这个的处理和指令级调试中的处理方式,没有什么不同。
TODO 任务优先级:中
results matching "
"
No results matching "
"