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文件来调试。
相关文章
相关标签/搜索