dwarfdump - 调试版本没有符号?

时间:2017-02-23 16:26:49

标签: xcode dwarf

我已经为iphoneos和iphonesimulator构建了我的项目,包括调试和发布。当我在调试版本上运行dwarfdump时报告为空。当我在发布版本DSYM上运行它时,它会报告所有符号。

请参阅下面的输出(我只抓住了DSYM输出的第一部分)。

为什么调试版本为空?

文件:Debug-iphoneos / VerticonsToolbox.framework / VerticonsToolbox(arm64)

.debug_info内容: < EMPTY>

文件:Debug-iphonesimulator / VerticonsToolbox.framework / VerticonsToolbox(x86_64)

.debug_info内容: < EMPTY>

文件:Release-iphoneos / VerticonsToolbox.framework.dSYM / Contents / Resources / DWARF / VerticonsToolbox(armv7)

.debug_info内容:

0x00000000:编译单位:长度= 0x000013ad版本= 0x0003 abbr_offset = 0x00000000 addr_size = 0x04(下一个CU位于0x000013b1)

0x0000000b:TAG_compile_unit [1] *              AT_producer(" Apple Swift版本3.0.2(swiftlang-800.0.63 clang-800.0.42.1)")              AT_language(DW_LANG_Swift)              AT_name(" /Users/Robert/Development/iOS/VerticonsToolbox/VerticonsToolbox/UI/Application.swift")              AT_stmt_list(0x00000000)              AT_comp_dir(" / Users / Robert / Development / iOS / VerticonsToolbox")

文件:Release-iphonesimulator / VerticonsToolbox.framework.dSYM / Contents / Resources / DWARF / VerticonsToolbox(i386)

.debug_info内容:

0x00000000:编译单位:长度= 0x00001370版本= 0x0003 abbr_offset = 0x00000000 addr_size = 0x04(下一个CU位于0x00001374)

0x0000000b:TAG_compile_unit [1] *              AT_producer(" Apple Swift版本3.0.2(swiftlang-800.0.63 clang-800.0.42.1)")              AT_language(DW_LANG_Swift)              AT_name(" /Users/Robert/Development/iOS/VerticonsToolbox/VerticonsToolbox/UI/Application.swift")              AT_stmt_list(0x00000000)              AT_comp_dir(" / Users / Robert / Development / iOS / VerticonsToolbox")              AT_APPLE_optimized(0x01)

1 个答案:

答案 0 :(得分:5)

在macOS,iOS,tvOS,watchOS上,当你做一个"矮人"样式构建(参见您的Xcode项目的构建设置),调试信息在AhrsCom.setCommand("$out=" + (int)PARAM.PITCH + ",10\n\r"); 文件中,而不是链接的可执行文件。当您运行.o或选择"矮人+ dSYM"样式构建设置,创建dsymutil包,并将.dSYM文件中的所有调试信息收集到单个包/二进制文件中。