diff options
| author | Christopher Ferris <cferris@google.com> | 2014-01-17 19:26:16 +0000 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2014-01-17 19:26:16 +0000 |
| commit | 47fa90641e5321f853d50de1e129b6233fa183e1 (patch) | |
| tree | 3acaca6f4ca2e83b0bd7a9a50b9d38e95cbe31bb /libbacktrace/Backtrace.h | |
| parent | b1091958bdb4bc42f66631fdf4105cbc2faec98a (diff) | |
| parent | 0cf5d96c43a11e150941202961bcedcbce9bb294 (diff) | |
| download | system_core-47fa90641e5321f853d50de1e129b6233fa183e1.zip system_core-47fa90641e5321f853d50de1e129b6233fa183e1.tar.gz system_core-47fa90641e5321f853d50de1e129b6233fa183e1.tar.bz2 | |
am 0cf5d96c: am 237fdb4a: am eb8d73b6: Merge "Rewrite libbacktrace to be all C++."
* commit '0cf5d96c43a11e150941202961bcedcbce9bb294':
Rewrite libbacktrace to be all C++.
Diffstat (limited to 'libbacktrace/Backtrace.h')
| -rw-r--r-- | libbacktrace/Backtrace.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/libbacktrace/Backtrace.h b/libbacktrace/Backtrace.h index d741ef1..31fcaf2 100644 --- a/libbacktrace/Backtrace.h +++ b/libbacktrace/Backtrace.h @@ -18,8 +18,10 @@ #define _LIBBACKTRACE_BACKTRACE_H #include <backtrace/Backtrace.h> +#include <backtrace/BacktraceMap.h> #include <sys/types.h> +#include <log/log.h> // Macro to log the function name along with the warning message. #define BACK_LOGW(format, ...) \ @@ -37,15 +39,19 @@ public: void SetParent(Backtrace* backtrace) { backtrace_obj_ = backtrace; } + virtual BacktraceMap* CreateBacktraceMap(pid_t pid) = 0; + protected: - backtrace_t* GetBacktraceData(); + inline std::vector<backtrace_frame_data_t>* GetFrames() { return &backtrace_obj_->frames_; } + + inline bool BuildMap() { return backtrace_obj_->BuildMap(); } Backtrace* backtrace_obj_; }; class BacktraceCurrent : public Backtrace { public: - BacktraceCurrent(BacktraceImpl* impl, backtrace_map_info_t* map_info); + BacktraceCurrent(BacktraceImpl* impl, BacktraceMap* map); virtual ~BacktraceCurrent(); bool ReadWord(uintptr_t ptr, uint32_t* out_value); @@ -53,14 +59,14 @@ public: class BacktracePtrace : public Backtrace { public: - BacktracePtrace(BacktraceImpl* impl, pid_t pid, pid_t tid, backtrace_map_info_t* map_info); + BacktracePtrace(BacktraceImpl* impl, pid_t pid, pid_t tid, BacktraceMap* map); virtual ~BacktracePtrace(); bool ReadWord(uintptr_t ptr, uint32_t* out_value); }; -Backtrace* CreateCurrentObj(backtrace_map_info_t* map_info); -Backtrace* CreatePtraceObj(pid_t pid, pid_t tid, backtrace_map_info_t* map_info); -Backtrace* CreateThreadObj(pid_t tid, backtrace_map_info_t* map_info); +Backtrace* CreateCurrentObj(BacktraceMap* map); +Backtrace* CreatePtraceObj(pid_t pid, pid_t tid, BacktraceMap* map); +Backtrace* CreateThreadObj(pid_t tid, BacktraceMap* map); #endif // _LIBBACKTRACE_BACKTRACE_H |
