任何人都可以帮助我研究一个单一项目...
在检查和打印外部进程的变量值时,是否可以详细说明GDB采取的步骤? C stdlib是否包含此功能?
非常感谢
答案 0 :(得分:2)
您可以查看手册GDB Internals Manual以及source code。
答案 1 :(得分:2)
这是特定于操作系统的。在Linux上,GDB将从DWARF可执行文件的调试部分(以gcc -g
编译)读取调试信息(ELF格式)。
然后它将使用一些系统调用(请参阅syscalls(2)获取列表),特别是ptrace(2)
我很惊讶你在这里问。 GDB是免费软件,你可以研究它的源代码,然后询问它的邮件列表。
答案 2 :(得分:0)
在程序运行时监视变量可以通过使用类似分析器的方式来完成,但程序运行速度会比正常情况慢得多。对于某些嵌入式或仿真器类型的环境,调试器可以实时监视某些变量。如果只有几个关键变量,则可以使用一个调试器,可以在对这些变量的任何写入时设置监视点,这只会在这些变量更新时减慢程序的速度。