summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2010-11-04 00:53:20 +0000
committerJason Molenda <jmolenda@apple.com>2010-11-04 00:53:20 +0000
commit5976200d43c802d07f76b16390b47e3454092e4e (patch)
tree595ee15ff8f24f4b5c410c4095cd6abf4cc84ee1 /lldb/source/Plugins/Process/Utility/RegisterContextLLDB.h
parent743081d097f4470956de473cb194941a34e730a5 (diff)
downloadbcm5719-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.h11
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;
OpenPOWER on IntegriCloud