iOS-Debug Symbol(調試符號)

Debug Symbol(調試符號)

編譯警告

  • 從svn下載下來的文件,處處都是編譯警告,看着不爽,找下緣由,沒想到仍是一條大魚
warning: (i386) /UsersLibrary/Developer/Xcode/DerivedData/ProjectName-ebyadedaazwurqcvfzmyzzacvlbg/
Build/Intermediates/ ProjectName.build/Debug-iphonesimulator/ProjectName.build/Objects-normal/i386/
ClassName.o unable to open object file
  • 經過在Google裏面搜索,終於弄明白了,經過在XCode裏面將Generate Debug Symbol的值設爲NO,從新編譯一下生成靜態庫,此次編譯出來的靜態庫不再會產生已經警告了。這是爲何呢?

1、 Debug Symbol(調試符號)

  • 由於藉助符號調試程序能夠將相似app

    Thread 0 Crashed:
    0 libobjc.A.dylib 0×300c87ec 0×300bb000 + 55276
    1 MobileLines 0×00006434 0×1000 + 21556
    2 MobileLines 0×000064c2 0×1000 + 21698
    3 UIKit 0×30a740ac 0×30a54000 + 131244
  • log信息轉換成iphone

    Thread 0 Crashed:
    0 libobjc.A.dylib 0×300c87ec objc_msgSend + 20
    1 MobileLines 0×00006434 -[BoardView setSelectedPiece:] (BoardView.m:321)
    2 MobileLines 0×000064c2 -[BoardView touchesBegan:withEvent:] (BoardView.m:349)
    3 UIKit 0×30a740ac -[UIWindow sendEvent:] + 264
  • 主要是方便開發人員獲取調試信息svn

2、DWARF

  • DWARF是一種被衆多編譯器和調試器使用的用於支持源代碼級別調試的調試文件格式。它知足了許多程序語言的需求,好比C,C++和Fortran,並且被設計成可拓展到其它語言。DWARF是平臺獨立的且適用於任何處理器任何操做系統。 DWARF普遍應用於Unix,Linux和其它操做系統,以及獨立的環境中。

3、dSYM

  • 爲了不進行stripping操做後調試符號的丟失,你能夠使用dwarf-with-dsym選項. DWARF with dSYM 選項在標準的DWARF以外執行一個額外的步驟:建立一個單獨的MyApp.app.dSYM文件,這個文件包含你的程序的全部調試符號(這個文件實際上是一個包,能夠經過右鍵->顯示包內容進行查看)。事實上,DWARF with dSYM選項容許你對你進行單步調試而無論可執行程序是否被剝離了調試信息(stripped)。這是可能的,這是由於gdb將會在你的程序的目錄下查找.dSYM文件。它不須要知道對象文件(object files)的名字或者路徑。若是你不除去調試符號 (strip debugging symbols), 你能夠使用.o或者.dSYM文件來調試。
相關文章
相關標籤/搜索