我有一個C++二進制文件,大小爲190 MB。當我將此二進制文件放入dbx並嘗試創建斷點時,dbx掛起。雖然dbx掛起,但我發現其內存快速增長到10 GB以上。 TotalView允許我設置斷點;但是,它顯示的所有數據都是虛假的。我已經成功地調試了許多其他較小的二進制文件,所以我的預感是這個二進制文件的大尺寸問題。大的可執行文件導致調試器掛起
二進制:ELF 32位MSB可執行文件SPARC32PLUS版本1,V8 +必需,動態鏈接,未刪除。
編譯器:CC:Sun C++ 5.9 SunOS_sparc 2007/05/03。
Dbx:7.6 SunOS_sparc 2007/05/03。
TotalView軟件:8.2.0-0
操作系統:的Solaris 10
我如何使用DBX:
dbx mybinary
stop at Something.cc:170
DBX從來沒有從這個命令返回,我必須最終從一個單獨的終端殺DBX 。
我試過幾件事情沒有成功:
1.切換到動態鏈接大多數庫,這將二進制大小減少到19 MB。
2.在Solaris x86上嘗試。
3.將軟件編譯爲64位。
有誰知道什麼可能導致這種情況發生,以及如何解決這個問題?
哪個版本的編譯器和哪個版本的dbx? dbx -V CC -V只需驗證一下:dbx掛起並開始增長以響應您輸入「stop」命令? 所以你甚至不必在調試器中運行程序? – 2012-02-10 05:10:04
我通過澄清我原來的帖子回答了你的問題。 – Hitman 2012-02-10 16:42:35
要嘗試的一件好事是下載最新版本的Solaris Studio並嘗試執行此操作。 http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/index.html 您使用的版本已有4.5年曆史。 – 2012-02-14 23:04:25