12-小结
15.6 小结
- 远程(交叉)调试使你能够在进行符号调试时充分利用主机开发工作站上的资源,让它承担更多的工作,从而减轻目标板的资源负担。
- 运行于开发主机上的交叉gdb通过gdbserver来调试目标板上的进程,运行于目标板上的gdbserver则充当了它们之间的“粘合剂”。
- 主机上的GDB一般通过以太网(IP地址:端口号)与目标板上的gdbserver建立连接,并使用GDB远程协议连接在它们之间收发命令。
- GDB可以在收到共享程序库事件时停住,并自动加载可用的共享程序库符号。交叉开发系统上的工具链中应该预先配置好默认的程序库路径。此外,你也可以使用GDB命令来设置共享程序库的搜索路径。
- GDB可用于调试多个相互独立的进程,这时需要使用多个并行的GDB会话。
- 当被调试的进程调用
fork()
系统调用创建了新的进程后,可以配置GDB调试新创建的进程。它的默认模式是调试父进程——即调用fork()
的那个进程。 - GDB能够很方便地调试使用POSIX线程API的多线程应用程序。目前Linux系统上默认的线程库是NPTL。
- GDB能够附着到一个正在运行的进程上并在之后离开它。
补充阅读建议
“GDB:GNU项目调试器”,在线文档。
http://sourceware.org/gdb/onlinedocs/
GDB Pocket Reference, Arnold Robbins, O’Reilly Media,2005。