2009-02-24 49 views
0

我想了解符號調試器是如何工作的?什麼是調試符號表以及它如何促進源代碼級調試。我對調試器的場景動作背後一無所知。當我向gcc提供'-g'選項時,實際發生了什麼,寫入目標文件的內容以及如此複雜的內容。如果SO社區可以解釋並指引我獲取更多信息,我會很高興瞭解符號調試器

回答

2

符號文件只是所有已定義的全局變量和函數的列表,以及它們從模塊開始的偏移量。它還包含所有結構的列表並描述它們的字段。這樣,當GDB/WinDbg加載時,它能夠查看EIP(當前指令)並將地址映射到(SomeFunc + 0x25)之類的東西。當然,大多數符號也具有編碼的行信息,所以它可以進一步說「SomeFunc + 0x25最接近foo.cpp第57行」。