summaryrefslogtreecommitdiffstats
path: root/libbacktrace/Backtrace.h
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2014-01-17 19:26:16 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-17 19:26:16 +0000
commit47fa90641e5321f853d50de1e129b6233fa183e1 (patch)
tree3acaca6f4ca2e83b0bd7a9a50b9d38e95cbe31bb /libbacktrace/Backtrace.h
parentb1091958bdb4bc42f66631fdf4105cbc2faec98a (diff)
parent0cf5d96c43a11e150941202961bcedcbce9bb294 (diff)
downloadsystem_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.h18
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