2013-10-15 24 views
2

在Visual Studio 2012中編寫C++時,我可以介入像malloc()等函數的實際Microsoft實現。調試Linux上的C/C++運行時庫並查看庫代碼?

在Linux上使用什麼是最好的(調試器?),並且我可以步入像malloc()這樣的函數的Linux/GCC實現?這樣做相對簡單嗎?在Linux上編寫C++時,我想知道在Linux中,「底層」實際發生了什麼。

+2

看看glibc的源代碼。 –

+0

@ColeJohnson我不想通過「離線」來做到這一點,我希望在執行代碼時執行此操作,而不是通過打開文件並靜態讀取內容。 – mezamorphic

+0

你也可以安裝類似'libc6-dbg'等軟件包的調試版本...... –

回答

1

取決於你的環境我會說是的這很簡單。但它取決於你的設置。那麼你打算使用什麼?

大多數調試器在Linux上依靠gdb,只是gui的。例如,如果您打算使用QT,那麼做到您想要的就很容易/簡單。你也可以使用ddd這也是gdb的gui,或者gdb本身在終端中。唯一的問題可能(不應該)發生的是,你必須說你的調試器在哪裏找到你想要的庫的源碼跳轉到而調試。也應該在你的系統上(在debian上(和ubuntu下的後端),通常是* -dev或者源代碼庫源代碼本身)。

額外的gdb可以通過try-catch的catch塊,這在visual studio下是不可能的。在我看來,這是一個真正的代碼調試糖果...也gdb可以調試使用clang創建的可執行文件。