你可以检索有关程序的其他信息,info source
命令提供了当前文件的信息:
- 101 行代码
- 语言: C
- 编译器(版本、调优、架构、调试标志、语言标准)
- 调试格式:DWARF 2
- 没有预处理器宏指令(使用 GCC 编译时,宏仅在 使用 -g3 标志编译时可用)。
info shared
命令打印了动态库列表机器在虚拟地址空间的地址,它们在启动时被加载到该地址,以便程序运行:
如果你想了解 Linux 中的库处理方式,请参见我的文章 在 Linux 中如何处理动态库和静态库。
调试程序
你可能已经注意到,你可以在 GDB 中使用 run
命令启动程序。run
命令接受命令行参数,就像从控制台启动程序一样。-c1
开关会导致程序在第 4 阶段崩溃。要从头开始运行程序,你不用退出 GDB,只需再次运行run
命令。如果没有-c1
开关,程序将陷入死循环,你必须使用Ctrl C
来结束死循环。
你也可以一步一步运行程序。在 C/C 中,入口是 main
函数。使用list main
命令打开显示main
函数的部分源代码: