下载此文档

gdb的基本工作原理教案.ppt


文档分类:IT计算机 | 页数:约31页 举报非法文档有奖
1/31
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/31 下载此文档
文档列表 文档介绍
gdb的基本工作原理
刘东
雨丝风片***@chinaunix
msn: yanbohuachuan@

gdb简介
gdb - GNU debugger。
gdb的主要功能–救死扶伤。
gdb的主要用途–修复bug;分析程序结构。
gdb官方网址- tware/gdb/
gdb下载地址- http://ftp./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的基本工作原理教案 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数31
  • 收藏数0 收藏
  • 顶次数0
  • 上传人wz_198622
  • 文件大小0 KB
  • 时间2015-09-13