- 2
- 0
- 约5.76千字
- 约 31页
- 2019-08-04 发布于江西
- 举报
gdb的基本工作原理 刘东 雨丝风片@chinaunix msn: yanbohuachuan@ 2007.12.15 gdb简介 gdb - GNU debugger。 gdb的主要功能 – 救死扶伤。 gdb的主要用途 – 修复bug;分析程序结构。 gdb官方网址 - /software/gdb/gdb.html gdb下载地址 - /gnu/gdb/ gdb调试的组成架构 gdb调试的工具 – ptrace系统调用 (1) ptrace系统调用的原型 long ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data); ptrace系统调用的简要说明 ptrace系统调用提供了一种方法来让父进程可以观察和控制其它进程的执行,检查和改变其核心映像以及寄存器。 gdb调试的工具 – ptrace系统调用 (2) ptrace系统调用的主要选项 PTRACE_TRACEME 表示本进程将被其父进程跟踪,交付给这个进程的所有信号(除SIGKILL之外),都将使其停止,父进程将通过wait()获知这一情况。 PTRACE_ATTACH attach到一个指定的进程,使其成为当前进程跟踪的子进程,子进程的行为等同于它进行了一次PTRACE_TRACEME操作。 PTRACE_CONT 继续运行之前停止的子进程。可同时向子进程交付指定的信号。 gdb的三种调试方式 (1) attach并调试一个已经运行的进程 调试关系的建立过程: 用户确定需要进行调试的进程id; 运行gdb,输入attach pid,gdb对指定进程执行下述操作: ptrace(PTRACE_ATTACH, pid, 0, 0); gdb的三种调试方式 (2) attach并调试一个已经运行的进程 gdb的三种调试方式 (3) 运行并调试一个新的进程 调试关系的建立过程: 运行gdb,通过命令行参数或file命令指定目标程序。 输入run命令,gdb执行下述操作: 通过fork()系统调用创建一个新进程; 在新创建的子进程中执行下述操作:ptrace(PTRACE_TRACEME, 0, 0, 0); 在子进程中通过execv()系统调用加载用户指定的可执行文件。 gdb的三种调试方式 (4) 运行并调试一个新的进程 gdb的三种调试方式 (5) 远程调试目标机上新创建的进程 gdb运行在调试机上,gdbserver运行在目标机上,两者之间的通信数据格式由gdb远程串行协议(Remote Serial Protocol)定义。 RSP协议数据的基本格式为:“$..........#xx”。 gdbserver的启动方式相当于运行并调试一个新创建的进程。 gdb的三种调试方式 (6) 远程调试目标机上新创建的进程 gdb调试的基础 – 信号 (1) 在使用参数为PTRACE_TRACEME或PTRACE_ATTACH的ptrace系统调用建立调试关系之后,交付给目标程序的任何信号(除SIGKILL之外)都将被gdb先行截获,或在远程调试中被gdbserver截获并通知gdb。 gdb因此有机会对信号进行相应处理,并根据信号的属性决定在继续目标程序运行时是否将之前截获的信号实际交付给目标程序。 gdb调试的基础 – 信号 (2) 信号是实现断点功能的基础。以x86为例,向某个地址打入断点,实际上就是往该地址写入断点指令INT 3,即0xCC。目标程序运行到这条指令之后就会触发SIGTRAP信号,gdb捕获到这个信号,根据目标程序当前停止位置查询gdb维护的断点链表,若发现在该地址确实存在断点,则可判定为断点命中。 gdb暂停目标程序运行的方法是向其发送SIGSTOP信号。 kill_lwp(process-head.id, SIGSTOP); gdb的同步模式和异步模式 同步模式 – gdb将以同步方式等待目标程序发生停止事件,可称之为“死等”。因此,在目标程序运行期间,gdb不再扫描标准输入,用户也无法输入任何调试命令,要么等待目标程序发生调试事件而停止,要么通过“Ctrl c”来暂停目标程序的运行。 异步模式 – gdb不会同步等待目标程序发生停止事件,此类事件将通过异步上报的方式告知gdb。在目标程序运行期间,gdb仍将扫描标准输入,用户可以输入调试命令。 使用同步模式还是异步模式由调试目标决定,在启动gdb之后通过target命令的参数给出。比如远程同步目标为target remote …,而远程异步目标为target async …。 gdb远程异步模式中的事件循环 (1) g
您可能关注的文档
- 《论语十二章》说课稿.doc
- 《你能做最好的班主任》读书感悟.doc
- 《鸟类现状的调查研究》综合实践活动设计.doc
- 《配电网工艺标准库》题库.doc
- 《秦末农民起义与汉朝的建立》教学设计.doc
- 《清洁生产》课程论文.doc
- 《区域分析与规划》试题A.doc
- 《设计学概论》第七章 设计批评.ppt
- 《社会保障理论与实务》教案.doc
- 《社会体育活动组织与管理》课程标准.doc
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库及答案详解参考.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库完整参考答案详解.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库及答案详解一套.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库有答案详解.docx
- 制造业早会标准化流程及执行指导.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库带答案详解.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库及完整答案详解一套.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库完整答案详解.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库及完整答案详解1套.docx
- 2026年南通市保障房建设投资集团有限公司子公司公开招聘工作人员备考题库及一套答案详解.docx
最近下载
- GB 7594.1-1987 电线电缆橡皮绝缘和橡皮护套 第1部分一般规定-国家标准.pdf VIP
- 110kV送变电工程启动调试与试运行操作指南及案例解析.docx VIP
- 心衰合并肾功能不全的护理难点与解决方案.pptx VIP
- 关于2024年度民主生活会整改措施落实情况及2025年深入贯彻中央八项规定精神学习教育查摆问题整改情况的通报.docx VIP
- 2024-2025学年广东省潮州市高二上学期期末教学质量检测物理试卷.pdf VIP
- 上肢动脉CTA扫描技术课件最新完整版本.pptx VIP
- 110kV变电站专项电气试验及调试方案.doc VIP
- 2024年湖南汽车工程职业学院单招职业技能测试题库及答案(历年真题).docx VIP
- 广东省潮州市2024-2025学年高三上学期期末教学质量检测物理试卷.docx VIP
- 上海电力学院大一机械制图C习题本解答(造福学弟,不谢)-新版.pptx
原创力文档

文档评论(0)