【问题标题】:how to decode .dSYM file to explicit DWARF format?如何将 .dSYM 文件解码为显式 DWARF 格式?
【发布时间】:2014-01-13 08:27:24
【问题描述】:

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

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

【问题讨论】:

    标签: ios debugging dwarf


    【解决方案1】:

    在 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
    

    【讨论】:

      猜你喜欢
      • 2012-12-08
      • 2014-04-27
      • 2021-08-02
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      相关资源
      最近更新 更多