aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Target/Unwind.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/Unwind.h')
-rw-r--r--include/lldb/Target/Unwind.h129
1 files changed, 53 insertions, 76 deletions
diff --git a/include/lldb/Target/Unwind.h b/include/lldb/Target/Unwind.h
index 09ba87a42bbe..a50e8d4a7bdd 100644
--- a/include/lldb/Target/Unwind.h
+++ b/include/lldb/Target/Unwind.h
@@ -20,96 +20,73 @@
namespace lldb_private {
-class Unwind
-{
+class Unwind {
protected:
- //------------------------------------------------------------------
- // Classes that inherit from Unwind can see and modify these
- //------------------------------------------------------------------
- Unwind(Thread &thread) : m_thread(thread), m_unwind_mutex() {}
+ //------------------------------------------------------------------
+ // Classes that inherit from Unwind can see and modify these
+ //------------------------------------------------------------------
+ Unwind(Thread &thread) : m_thread(thread), m_unwind_mutex() {}
public:
- virtual
- ~Unwind()
- {
+ virtual ~Unwind() {}
+
+ void Clear() {
+ std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
+ DoClear();
+ }
+
+ uint32_t GetFrameCount() {
+ std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
+ return DoGetFrameCount();
+ }
+
+ uint32_t GetFramesUpTo(uint32_t end_idx) {
+ lldb::addr_t cfa;
+ lldb::addr_t pc;
+ uint32_t idx;
+
+ for (idx = 0; idx < end_idx; idx++) {
+ if (!DoGetFrameInfoAtIndex(idx, cfa, pc)) {
+ break;
+ }
}
+ return idx;
+ }
- void
- Clear()
- {
- std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
- DoClear();
- }
+ bool GetFrameInfoAtIndex(uint32_t frame_idx, lldb::addr_t &cfa,
+ lldb::addr_t &pc) {
+ std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
+ return DoGetFrameInfoAtIndex(frame_idx, cfa, pc);
+ }
- uint32_t
- GetFrameCount()
- {
- std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
- return DoGetFrameCount();
- }
+ lldb::RegisterContextSP CreateRegisterContextForFrame(StackFrame *frame) {
+ std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
+ return DoCreateRegisterContextForFrame(frame);
+ }
- uint32_t
- GetFramesUpTo (uint32_t end_idx)
- {
- lldb::addr_t cfa;
- lldb::addr_t pc;
- uint32_t idx;
-
- for (idx = 0; idx < end_idx; idx++)
- {
- if (!DoGetFrameInfoAtIndex (idx, cfa, pc))
- {
- break;
- }
- }
- return idx;
- }
+ Thread &GetThread() { return m_thread; }
- bool
- GetFrameInfoAtIndex(uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &pc)
- {
- std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
- return DoGetFrameInfoAtIndex(frame_idx, cfa, pc);
- }
+protected:
+ //------------------------------------------------------------------
+ // Classes that inherit from Unwind can see and modify these
+ //------------------------------------------------------------------
+ virtual void DoClear() = 0;
- lldb::RegisterContextSP
- CreateRegisterContextForFrame(StackFrame *frame)
- {
- std::lock_guard<std::recursive_mutex> guard(m_unwind_mutex);
- return DoCreateRegisterContextForFrame(frame);
- }
+ virtual uint32_t DoGetFrameCount() = 0;
- Thread &
- GetThread()
- {
- return m_thread;
- }
+ virtual bool DoGetFrameInfoAtIndex(uint32_t frame_idx, lldb::addr_t &cfa,
+ lldb::addr_t &pc) = 0;
-protected:
- //------------------------------------------------------------------
- // Classes that inherit from Unwind can see and modify these
- //------------------------------------------------------------------
- virtual void
- DoClear() = 0;
-
- virtual uint32_t
- DoGetFrameCount() = 0;
-
- virtual bool
- DoGetFrameInfoAtIndex (uint32_t frame_idx,
- lldb::addr_t& cfa,
- lldb::addr_t& pc) = 0;
-
- virtual lldb::RegisterContextSP
- DoCreateRegisterContextForFrame (StackFrame *frame) = 0;
-
- Thread &m_thread;
- std::recursive_mutex m_unwind_mutex;
+ virtual lldb::RegisterContextSP
+ DoCreateRegisterContextForFrame(StackFrame *frame) = 0;
+
+ Thread &m_thread;
+ std::recursive_mutex m_unwind_mutex;
private:
- DISALLOW_COPY_AND_ASSIGN (Unwind);
+ DISALLOW_COPY_AND_ASSIGN(Unwind);
};
} // namespace lldb_private
-#endif // liblldb_Unwind_h_
+#endif // liblldb_Unwind_h_