GDB调试选项

GDB在启动时,可以选择不同的模式。本文对于 GDB 的启动时的参数选项做出了一些说明,我们可以根据自己的需求选择 GDB 的启动模式。

GDB 在启动阶段的活动

  1. 启动命令行解释器。
  2. 读入在 home 目录下的初始化文件,如果文件存在,会执行文件里面的所有的命令。
  3. 处理命令行参数和选项。
  4. 读入和执行在当前目录下的初始化文件里面的命令,只有在当前目录和 home 路径不同时才会执行。
  5. 读入命令文件,适用 -X 选项指定的文件。
  6. 对如记录在历史文件里的命令历史。

解析:GDB 初始化文件通常是‘.gdbinit’。由于 DOS 文件系统的文件名的限制,GDB DJGPP使用‘gdb.ini’这个名字。

启动项的模式选择

GDB 启动的时候可以有很多模式的选择,类似与一些功能开关。与 GCC 编译器的参数功能类似,例如,GCC 的-g选项,如果在编译的时候使用了这个选项,我们就可以使用 GDB 调试,反之则不能;GCC 的-O选项,如果不指明优化的等级,就不会产生相应的优化效果。

-nx / -n:不执行任何初始化文件里的命令。通常在处理所有的命令此选项和参数之后,GDB 会执行这些文件里的命令。

-quite / -silent / -q:“安静模式”,不打印介绍和版权信息。在批处理模式下也不打印。

-batch:以批处理模式运行。处理完所有命令文件后以 0 状态推出。批处理模式将在 GDB 作为过滤器运的时候很有用,例如下载和运行一个远程计算机上的程序。
 
-symbols <file> / -s <file>:从指定的文件中读取符号表。

-se <file>:从指定文件中读取符号表信息,并把它用在可执行文件中。

-core <file> / -c <file>:调试 core dump 的 core 文件, core dump 叫做核心转储,它是进程运行时在突然崩溃的那一刻的一个内存快照,操作系统在程序发生异常而异常在进程内部又没有被捕获的情况下,会把进程此刻内存、寄存器状态、运行堆栈等信息转储保存在一个文件里。

-directory <directory> / -d <directory>:加入一个源文件的搜索路径。默认搜索路径是环境变量中的 PATH 所定义的路径。

-tty device / -t device:将设备作为程序的标准输入输出。

-tui:在启动时激活文本用户接口。文本用户接口在终端上管理多种文本窗口,用来显示代码,汇编,寄存器和 GDB 命令的输出。

-write:以可读可写的方式打开可执行程序和 core 文件,和 set write on 命令相同。

-statistics:在每次完成命令和回收到提示符的时候,此选项可让 GDB 打印时间和内存使用统计信息。

-version:此选项可让 GDB 打印版本号和非保障性的声明然后退出。