diff options
Diffstat (limited to 'libbacktrace/Corkscrew.h')
-rw-r--r-- | libbacktrace/Corkscrew.h | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/libbacktrace/Corkscrew.h b/libbacktrace/Corkscrew.h index 229bb01..1633398 100644 --- a/libbacktrace/Corkscrew.h +++ b/libbacktrace/Corkscrew.h @@ -26,14 +26,25 @@ #include <corkscrew/backtrace.h> -#include "Backtrace.h" +#include "BacktraceImpl.h" #include "BacktraceThread.h" +class CorkscrewMap : public BacktraceMap { +public: + CorkscrewMap(pid_t pid); + virtual ~CorkscrewMap(); + + virtual bool Build(); + + map_info_t* GetMapInfo() { return map_info_; } + +private: + map_info_t* map_info_; +}; + class CorkscrewCommon : public BacktraceImpl { public: bool GenerateFrameData(backtrace_frame_t* cork_frames, ssize_t num_frames); - - virtual BacktraceMap* CreateBacktraceMap(pid_t pid) { return new BacktraceMap(pid); } }; class CorkscrewCurrent : public CorkscrewCommon { @@ -46,30 +57,13 @@ public: virtual std::string GetFunctionNameRaw(uintptr_t pc, uintptr_t* offset); }; -class CorkscrewMap : public BacktraceMap { -public: - CorkscrewMap(pid_t pid); - virtual ~CorkscrewMap(); - - virtual bool Build(); - - map_info_t* GetMapInfo() { return map_info_; } - -private: - map_info_t* map_info_; -}; - class CorkscrewThread : public CorkscrewCurrent, public BacktraceThreadInterface { public: CorkscrewThread(); virtual ~CorkscrewThread(); - virtual bool Init(); - virtual void ThreadUnwind( siginfo_t* siginfo, void* sigcontext, size_t num_ignore_frames); - - virtual BacktraceMap* CreateBacktraceMap(pid_t pid) { return new CorkscrewMap(pid); } }; class CorkscrewPtrace : public CorkscrewCommon { |