Files
clang-p2996/lldb/source/Plugins/Process/Utility/UnwindLibUnwind.h
Greg Clayton c982c768d2 Merged Eli Friedman's linux build changes where he added Makefile files that
enabled LLVM make style building and made this compile LLDB on Mac OS X. We
can now iterate on this to make the build work on both linux and macosx.

llvm-svn: 108009
2010-07-09 20:39:50 +00:00

67 lines
1.7 KiB
C++

//===-- UnwindLibUnwind.h ---------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef lldb_UnwindLibUnwind_h_
#define lldb_UnwindLibUnwind_h_
// C Includes
// C++ Includes
#include <vector>
// Other libraries and framework includes
#include "libunwind/include/libunwind.h"
// Project includes
#include "lldb/lldb-private.h"
#include "lldb/Target/Unwind.h"
class UnwindLibUnwind : public lldb_private::Unwind
{
public:
UnwindLibUnwind (lldb_private::Thread &thread,
lldb_private::unw_addr_space_t addr_space);
virtual
~UnwindLibUnwind()
{
}
virtual void
Clear()
{
m_cursors.clear();
}
virtual uint32_t
GetFrameCount();
bool
GetFrameInfoAtIndex (uint32_t frame_idx,
lldb::addr_t& cfa,
lldb::addr_t& pc);
lldb_private::RegisterContext *
CreateRegisterContextForFrame (lldb_private::StackFrame *frame);
lldb_private::Thread &
GetThread();
private:
lldb_private::unw_addr_space_t m_addr_space;
std::vector<lldb_private::unw_cursor_t> m_cursors;
uint32_t m_pc_regnum;
uint32_t m_sp_regnum;
//------------------------------------------------------------------
// For UnwindLibUnwind only
//------------------------------------------------------------------
DISALLOW_COPY_AND_ASSIGN (UnwindLibUnwind);
};
#endif // lldb_UnwindLibUnwind_h_