linux下gdb调试器使用学习-01

来源:互联网 发布:小明永久域名首页台湾 编辑:程序博客网 时间:2024/06/08 15:42

目录

    • 目录
    • gdb入门-启动与帮助命令查看
    • gdb调试加载其他可执行
    • 退出gdb调试
    • GDB启动参数说明

gdb入门-启动与帮助命令查看


  1. gdb单独启动,查看gdb的相关选项

    直接通过shell命令窗口执行如下命令

这里写图片描述
进入gdb调试界面【纯文本界面】
2. gdb帮助说明
进入gdb后执行命令【help】即可看到gdb的相关命令,gdb是通过对命令行进行分类(class)来罗列
这里写图片描述
通过上面的图示,可以看到gdb把所有的帮助命令分为如下几类
- aliases:命令别名 ,查看帮助【help aliaes】
这里写图片描述
对gdb部分命令定义的一个简单的别名设置,与linux的命令【aliases】一样
常用命令【where】:显示当前执行线程的函数调用堆栈中当前栈。

  • breakpoints:中断点设置【help breakpoints】
    这里写图片描述
    中断设置命令,是gdb调试过程中的核心命令,可以控制可执行程序运行过程中的中断处理,包括设置中断点、监视点和扑捉点等,同时也可以设置它们的清除、删除、可用或者是不可用。
    命令很多需要自己慢慢学习,逐渐熟悉,部分常用命令后期会进行详细演示说明

  • data:可执行程序参数设置和运行时数据显示等
    主要对gdb的运行时全局环境进行设置【set核心命令】,导入、导出相关的PE文件信息,显示当前PE文件的相关信息

  • files:对调试文件相关属性进行设置
    主要通过gdb对调试的加载程序进行相关的文件参数设置:譬如该改变工作目录、设置加载的core文件、设置可查找目录等。

  • internals:内置gdb命令
    该分类的gdb命令一般在调试中使用比较少

  • running:设置程序运行时相关属性特征
    通过gdb设置加载程序运行时的一些特征,可以通过加载程序调试其它可执行程序(PS),也可以设置程序跳转执行,提前结束等

  • stack:查看加载程序栈信息
    在gdb调试程序过程中,运行中断时,查看相关执行进程或者线程的函数调用栈信息,在多线程中调试时很重要。

  • status:状态查看
    gdb核心命令集合,主要是查询gdb和当前加载程序的执行状态,查询相关的信息、栈、线程信息等

  • support:gdb支持的工具命令

  • tracepoints:跟踪程序执行

gdb调试/加载其他可执行

  1. gdb在初始启动的时候可以加载程序,通过如下命令:gdb PE 【core】/【-c core】加载PE文件,同时加载core文件,通过core文件来分析PE执行情况加载core文件
  2. gdb启动成功后 加载程序:命令file PE【可以通过gdb的help命令:help file来查看相关的文档说明】
  3. gdb启动,调试当前正在运行程序具体操作流程
    • 通过ps命令查找调试的进程程序
    • 通过-p选项附加到进程
    • 也可以在gdb启动后通过【attach命令附加到进程,通过detach断开连接】

退出gdb调试

  • 在执行【quit/q】操作命令
  • 附加到进程中的gdb调试过程,需要通过【ctrl+c】先退回到gdb环境中,再执行【quit/q或者是Ctrl+D】操作命令均可
  • 先执行【ctrl+c】,中断gdb调试,然后【detach】分离开来,执行【q或者是Ctrl+D】退出

GDB启动参数说明

GDB作用一个调试工具同时也作为一个解析器(所有执行的调试命令都是在该解析器中执行),在启动的过程中有很多可选参数可以进行选择,这样就决定了其功能的强大性。
1. GDB在启动过程中的具体设置如下:【gdb -h | more】
通过以上显示可以看出,gdb的启动参数实质是可以分为三部分。
2. GDB启动参数具体说明
(1)–args 设置调试程序的相关参数
(2)主要参数列举说明:
一、-symbol或者是-s filename
加载符号文件

二、-exec或者是-e filename
加载可执行文件,但是没有加载符号表,这个时候将无法进行调试

三、-se加载可执行文件
既加载符号表也加载相关的其他信息

四、-core或者是-c
-c file加载该core文件作为相关的core dump文件
-c number
-pid number
-p number 连接number号的进程,如果没有该进程则加载相关的core文件

五、-command
-command file
-x file
从相关的file文件中执行相关的gdb命令

六、-directory 目录
-d 目录
增加这个目录到gdb中作为查看源文件的目录
这个命令在gdb内部也是可以设置的,对于调试多个文件中的函数调用等需要进行相关的设置
特别是在调试dll的时候

七、-quiet
-silent或者是-q
在启动gdb的时候不显示相关的version信息

八、-cd directory
设置gdb的工作目录为参数中的工作目录

九、–argc
设置gdb调试的pe的执行文件的参数
也可以在启动gdb后,利用r命令来加载参数

十、-statistics
记录gdb运行这次pe的时间和占用内存空间的大小

十一、shell command
在gdb中执行shell命令

十二、quit或者q
退出gdb

0 0
原创粉丝点击