我已经为iphoneos和iphonesimulator构建了我的项目,包括调试和发布。当我在调试版本上运行dwarfdump时报告为空。当我在发布版本DSYM上运行它时,它会报告所有符号。
请参阅下面的输出(我只抓住了DSYM输出的第一部分)。
为什么调试版本为空?
.debug_info内容: < EMPTY>
.debug_info内容: < EMPTY>
.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")
.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)
答案 0 :(得分:5)
在macOS,iOS,tvOS,watchOS上,当你做一个"矮人"样式构建(参见您的Xcode项目的构建设置),调试信息在AhrsCom.setCommand("$out=" + (int)PARAM.PITCH + ",10\n\r");
文件中,而不是链接的可执行文件。当您运行.o
或选择"矮人+ dSYM"样式构建设置,创建dsymutil
包,并将.dSYM
文件中的所有调试信息收集到单个包/二进制文件中。