2009-11-09 50 views
2

我從opensource.apple.com下載了LibC源代碼,但由於它是一個單片庫/usr/lib/libSystem.B.dylib的一部分,我需要以某種方式重建整個東西嗎?在Mac OS X上,如何獲得用於源代碼級別調試的System/LibC調試版本?

我有一個BSD命令行程序,從Linux移植。我希望能夠在LibC函數中設置斷點並逐步完成。我試圖關閉在我的程序中似乎是堆腐敗(這在Linux上不會發生 - 我已經移植到Linux並在那裏運行memcheck)。

回答

0

你看看來自Apple的內核調試工具包(http://developer.apple.com/sdk/)?我知道它包含內核符號,但我不確定libc是否是SDK的一部分。

0

您可以自己構建Valgrind - 可以使用10.5上發佈的最新版本,也可以查看具有修補程序的Snow Leopard支持bug的bug跟蹤器。

或者,嘗試使用malloc(3)manual中的內存調試工具。

+0

我嘗試了雪豹的valgrind。我只需要解決補丁不包含的系統調用 - 例如sigwait()。 (有用的移植經驗。)最終,valgrind告訴我的不僅僅是調試器的作用 - 無效寫入(通過廢棄的指針值)。我仍然希望能夠通過libC調用來查看指針何時變爲無效。不管怎麼說,還是要謝謝你。 – 2009-12-08 21:49:07