Debugging 理解符号调试器
我想了解符号调试器是如何工作的?。什么是调试符号表以及它如何促进源代码级调试。我完全没有注意到调试器的幕后操作..当我向gcc提供'-g'选项时,实际会发生什么,写入对象文件的内容以及这些复杂的操作。如果社区能够向我解释并指导我获取更多信息的来源,我将非常高兴。符号文件只是所有已定义全局变量和函数的列表,以及它们与模块开头的偏移量。它还有一个所有结构的列表,并描述了它们的字段Debugging 理解符号调试器,debugging,debug-symbols,Debugging,Debug Symbols,我想了解符号调试器是如何工作的?。什么是调试符号表以及它如何促进源代码级调试。我完全没有注意到调试器的幕后操作..当我向gcc提供'-g'选项时,实际会发生什么,写入对象文件的内容以及这些复杂的操作。如果社区能够向我解释并指导我获取更多信息的来源,我将非常高兴。符号文件只是所有已定义全局变量和函数的列表,以及它们与模块开头的偏移量。它还有一个所有结构的列表,并描述了它们的字段 这样,当GDB/WinDbg加载时,它可以查看EIP(当前指令)并将地址映射到类似(SomeFunc+0x25)的位置。
这样,当GDB/WinDbg加载时,它可以查看EIP(当前指令)并将地址映射到类似(SomeFunc+0x25)的位置。当然,大多数符号也对行信息进行了编码,因此它可以更进一步地说,“SomeFunc+0x25最接近foo.cpp行57” 符号文件只是所有定义的全局变量和函数的列表,以及它们与模块开头的偏移量。它还有一个所有结构的列表,并描述了它们的字段
这样,当GDB/WinDbg加载时,它可以查看EIP(当前指令)并将地址映射到类似(SomeFunc+0x25)的位置。当然,大多数符号也对行信息进行了编码,因此它可以更进一步地说,“SomeFunc+0x25最接近foo.cpp行57” 查看DWARF调试规范,以获得对gcc生成的所有调试信息以及调试器如何使用这些信息的深入描述
查看DWARF调试规范,了解gcc生成的所有调试信息的详细描述,以及调试器如何使用这些信息