2011-07-10 21 views
1

我試着去調試(實際上我只是想了解程序集程度)一個程序。 Usin gdb是好的,但在tui模式下它會很好,不幸的是,當我在tui中調試時出現錯誤,同時顯示程序集和源代碼(gcc中的-g選項)模式sayin:讀取共享庫符號時出錯GDB將不會運行在TUI模式

我可以運行該程序,如果我不顯示彙編代碼,但這不是我想要的,我真的想要通過每條流水線來完全理解程序。另外,當我嘗試這與si有時我得到一個錯誤,例如在printf,但這是另一個故事

所以任何提示?注意:這不是我的程序的錯誤,我嘗試過使用其他程序

回答

1

您的共享庫未編譯時啓用了符號。你需要尋找,通常,「調試」版本的gcc庫(或你正在鏈接的其他庫)。如果您有正在構建的自定義庫,請將-g選項添加到正在運行的gcc命令以編譯它們。

+0

如果我只想在彙編級別共享庫會怎麼樣?是否仍然需要調試版本?謝謝 – rob

+0

你可以,但它變得非常醜陋;你需要打破main()的內部,然後使用「si」命令來逐步執行指令,然而一旦你進入共享庫,你將需要使用disass ALOT。 – Suroot

+0

例如,在fopen中遇到了si問題。在第三條指令(jmp 0x80483dc)中,si失敗。我做錯了什麼? – rob