Skip to content
  • Douglas Raillard's avatar
    backtrace: Introduce backtrace function · 0c62883f
    Douglas Raillard authored
    
    
    This function diplays the backtrace, the current EL and security state
    to allow a post-processing tool to choose the right binary to interpret
    the dump.
    
    The output can be fed to GNU addr2line to resolve function names given
    an ELF binary compiled with debug information. The "-i" flag is
    recommended to improve display in case of inlined functions. The *.dump
    files generated during the build process can also be used.
    
    The function works in AArch64 and AArch32. In AArch32 it only works in
    A32 mode (without T32 interworking), which is enforced in the Makefile.
    
    Sample output of a backtrace at EL3:
    
        BACKTRACE: START: function_name
        0: EL3: 0x798
        1: EL3: 0x538
        2: EL3: 0x550
        3: EL3: 0x55c
        4: EL3: 0x568
        5: EL3: 0x5a8
        6: EL3: 0xf4
        BACKTRACE: END: function_name
    
    In order to enable it the new option ENABLE_BACKTRACE must be set to 1.
    This option is set to 1 by default only in AArch64 debug builds. As
    usual, it can be overridden by the platform makefile and in the build
    command line.
    
    Change-Id: Icaff39b0e5188329728be2f3c72b868b2368e794
    Co-authored-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
    Signed-off-by: default avatarAntonio Nino Diaz <antonio.ninodiaz@arm.com>
    Signed-off-by: default avatarDouglas Raillard <douglas.raillard@arm.com>
    0c62883f