Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Debugging 理解符号调试器_Debugging_Debug Symbols - Fatal编程技术网

Debugging 理解符号调试器

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

我想了解符号调试器是如何工作的?。什么是调试符号表以及它如何促进源代码级调试。我完全没有注意到调试器的幕后操作..当我向gcc提供'-g'选项时,实际会发生什么,写入对象文件的内容以及这些复杂的操作。如果社区能够向我解释并指导我获取更多信息的来源,我将非常高兴。

符号文件只是所有已定义全局变量和函数的列表,以及它们与模块开头的偏移量。它还有一个所有结构的列表,并描述了它们的字段


这样,当GDB/WinDbg加载时,它可以查看EIP(当前指令)并将地址映射到类似(SomeFunc+0x25)的位置。当然,大多数符号也对行信息进行了编码,因此它可以更进一步地说,“SomeFunc+0x25最接近foo.cpp行57”

符号文件只是所有定义的全局变量和函数的列表,以及它们与模块开头的偏移量。它还有一个所有结构的列表,并描述了它们的字段


这样,当GDB/WinDbg加载时,它可以查看EIP(当前指令)并将地址映射到类似(SomeFunc+0x25)的位置。当然,大多数符号也对行信息进行了编码,因此它可以更进一步地说,“SomeFunc+0x25最接近foo.cpp行57”

查看DWARF调试规范,以获得对gcc生成的所有调试信息以及调试器如何使用这些信息的深入描述


查看DWARF调试规范,了解gcc生成的所有调试信息的详细描述,以及调试器如何使用这些信息