diff options
author | Jason Molenda <jmolenda@apple.com> | 2010-11-04 00:53:20 +0000 |
---|---|---|
committer | Jason Molenda <jmolenda@apple.com> | 2010-11-04 00:53:20 +0000 |
commit | 5976200d43c802d07f76b16390b47e3454092e4e (patch) | |
tree | 595ee15ff8f24f4b5c410c4095cd6abf4cc84ee1 /lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h | |
parent | 743081d097f4470956de473cb194941a34e730a5 (diff) | |
download | bcm5719-llvm-5976200d43c802d07f76b16390b47e3454092e4e.tar.gz bcm5719-llvm-5976200d43c802d07f76b16390b47e3454092e4e.zip |
Handle the case where no eh_frame section is present.
RegisterContextLLDB holds a reference to the SymbolContext
in the vector of Cursors that UnwindLLDB maintains. Switch
UnwindLLDB to hold a vector of shared pointers of Cursors
so this reference doesn't become invalid.
Correctly falling back from the "fast" UnwindPlan to the
"full" UnwindPlan when additional registers need to be
retrieved.
llvm-svn: 118218
Diffstat (limited to 'lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h')
-rw-r--r-- | lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h index d0611061221..9acad0f979d 100644 --- a/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h +++ b/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h @@ -163,14 +163,15 @@ private: // i.e. where THIS frame saved them /// - lldb_private::UnwindPlan *m_fast_unwind_plan; // may be NULL + lldb_private::UnwindPlan *m_fast_unwind_plan; // may be NULL lldb_private::UnwindPlan *m_full_unwind_plan; - bool m_all_registers_available; // Can we retrieve all regs or just nonvolatile regs? - int m_frame_type; // enum FrameType - int m_current_offset; // how far into the function we've executed; -1 if unknown + bool m_all_registers_available; // Can we retrieve all regs or just nonvolatile regs? + int m_frame_type; // enum FrameType + int m_current_offset; // how far into the function we've executed; -1 if unknown lldb_private::SymbolContext& m_sym_ctx; + bool m_sym_ctx_valid; // if ResolveSymbolContextForAddress fails, don't try to use m_sym_ctx - int m_frame_number; // What stack frame level this frame is - used for debug logging + int m_frame_number; // What stack frame level this frame is - used for debug logging lldb::addr_t m_cfa; lldb_private::Address m_start_pc; |