2011-12-06 18 views
1

我構建了一個Mac OS X應用程序,該應用程序被配置爲剝離Release的調試信息並創建dSYM文件。爲什麼GDB在使用dSYM文件符號化故障轉儲時會說「沒有行號信息」?

(這裏所描述的項目配置:http://bit.ly/tJEQml HTTP緩存版本:/developer.apple.com/tools/xcode/symbolizingcrashdumps.html它確實存在了)

如預期所產生的崩潰報告我應用程序不會顯示我的應用程序內部調用的堆棧跟蹤的行信息。

當分析崩潰報告我只是無法得到GDBATOS給我行的堆棧跟蹤信息。

崩潰報告摘錄:

0 CoreFoundation   0x00007fff920f7286 __exceptionPreprocess + 198 
1 libobjc.A.dylib   0x00007fff91f74d5e objc_exception_throw + 43 
2 CoreFoundation   0x00007fff920f70ba +[NSException raise:format:arguments:] + 106 
3 CoreFoundation   0x00007fff920f7044 +[NSException raise:format:] + 116 
4 CoreFoundation   0x00007fff920b429b -[__NSCFDictionary setObject:forKey:] + 219 
5 AppName     0x00000001015e9c61 AppName + 85089 

我做了以下嘗試上GDB

  1. 稱爲gdb -arch x86_64
  2. 加載使用file命令(試用過AppName的應用程序。 app和Content/MacOS/AppName)
  3. GDB提示符號w這裏裝(甚至試圖與file裝載的dSYM)
  4. 稱爲info line * 0x00000001015e9c61
  5. GDB與No line number information available for address 0x1015e9c61

ATOS企圖以響應以下幾點:

  1. 稱爲atos -arch x86_64 -o AppName.app(也試圖直接對二進制文件和dSYM的DWARF文件)
  2. 鍵入0x00000001015e9c61並回車
  3. ATOS只是重複0x00000001015e9c61

出了什麼問題?

這些符號似乎加載正常(至少這是gdb報告),我敢肯定崩潰,dSYM和應用程序包都匹配。

回答

2

我還沒有想出如何使手動符號工作,但我發現一個很好的腳本,它會自動執行。

該腳本可以被發現在:https://github.com/nikyoudale/symbolicatecrash-mac

我將通過腳本的代碼讀取搞清楚它在做什麼,並回答我的問題。

+0

這已經非常有用了,我仍然不知道自己做錯了什麼,但我只是無法讓日誌符號化,但是這個腳本工作正常。現在開始實際解決我的錯誤,現在我發現了它... – nuclearnova

相關問題