如何将.dSYM文件解码为显式的DWARF格式?

DWARF是一种debugging信息格式。 Xcode生成的.dSYM文件包含DWARFdebugging信息。

问题是:如何解码.dSYM文件以获得人类可读的DWARF信息,如下所示。

在这里输入图像说明

在Mac OS X上,使用dwarfdump实用程序将DWARF转储为.o文件或.dSYM软件包。

 % dwarfdump fig7.o ---------------------------------------------------------------------- File: fig7.o (x86_64) ---------------------------------------------------------------------- .debug_info contents: 0x00000000: Compile Unit: length = 0x00000077 version = 0x0002 abbr_offset = 0x00000000 addr_size = 0x08 (next CU at 0x0000007b) 0x0000000b: TAG_compile_unit [1] * AT_producer( "Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)" ) AT_language( DW_LANG_C99 ) AT_name( "fig7.c" ) AT_low_pc( 0x0000000000000000 ) AT_stmt_list( 0x00000000 ) AT_comp_dir( "/tmp" ) 0x00000026: TAG_base_type [2] AT_name( "int" ) AT_encoding( DW_ATE_signed ) AT_byte_size( 0x04 ) 0x0000002d: TAG_variable [3] AT_name( "a" ) AT_type( {0x00000026} ( int ) ) AT_external( 0x01 ) AT_decl_file( "/private/tmp/fig7.c" ) AT_decl_line( 1 ) AT_location( [0x0000000000000000] ) 0x00000043: TAG_subprogram [4] * AT_name( "foo" ) AT_decl_file( "/private/tmp/fig7.c" ) AT_decl_line( 2 ) AT_external( 0x01 ) AT_low_pc( 0x0000000000000000 ) AT_high_pc( 0x0000000000000006 ) AT_frame_base( rbp ) 0x0000005d: TAG_variable [5] AT_name( "b" ) AT_decl_file( "/private/tmp/fig7.c" ) AT_decl_line( 4 ) AT_type( {0x00000026} ( int ) ) AT_location( fbreg -4 ) 0x0000006b: TAG_variable [5] AT_name( "c" ) AT_decl_file( "/private/tmp/fig7.c" ) AT_decl_line( 5 ) AT_type( {0x00000026} ( int ) ) AT_location( fbreg -8 ) 0x00000079: NULL 0x0000007a: NULL