[Lldb-commits] [PATCH] Improve instruction emulation based stack unwinding on ARM

Tamas Berghammer tberghammer at google.com
Mon Jun 15 10:36:53 PDT 2015


Hi jasonmolenda,

Improve instruction emulation based stack unwinding on ARM

* Add and fix the emulation of several instruction.
* Disable frame pointer usage on Android.
* Specify return address register for the unwind plan instead of explicit
  tracking the value of RA.
* Replace prologue detection heuristics (unreliable in several cases)
  with a logic to follow the branch instructions and restore the CFI
  value based on them. The target address for a branch should have the
  same CFI as the source address (if they are in the same function).
* Handle symbols in ELF files where the symbol size is not specified
  with calculating their size based on the next symbol (already done
  in MachO files).
* Fix architecture in FuncUnwinders with filling up the information
  missing from the object file with the architecture of the target.
* Add code to read register when the value is set to "IsSame" as it
  means the value of a register in the parent frame is the same as the
  value in the current frame.

http://reviews.llvm.org/D10447

Files:
  include/lldb/Symbol/FuncUnwinders.h
  source/Commands/CommandObjectTarget.cpp
  source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
  source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp
  source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
  source/Plugins/Process/Utility/RegisterContextLLDB.cpp
  source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp
  source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.h
  source/Symbol/FuncUnwinders.cpp
  source/Symbol/UnwindPlan.cpp

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D10447.27686.patch
Type: text/x-patch
Size: 52263 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20150615/f1d3f2f0/attachment.bin>


More information about the lldb-commits mailing list