Frage

DWARF is a debugging information format. The .dSYM file generated by Xcode contain the DWARF debugging information.

The Question is : how to decode the .dSYM file to get the human-readable DWARF information, which should like below.

enter image description here

War es hilfreich?

Lösung

On Mac OS X, you use the dwarfdump utility to dump the DWARF in .o files or in .dSYM bundles.

% 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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top