summaryrefslogtreecommitdiffstats
path: root/libbacktrace
diff options
context:
space:
mode:
authorChristopher Ferris <cferris@google.com>2014-08-04 17:08:46 -0700
committerChristopher Ferris <cferris@google.com>2014-08-04 17:17:57 -0700
commitf02593b0e61f8108449770094caa7bb39a646ec1 (patch)
tree3192d870c0500137bcd1c4d033017f6febfc4595 /libbacktrace
parent3679d5f49a1e3caf69fffd1afa2d6139a0bfbb17 (diff)
downloadsystem_core-f02593b0e61f8108449770094caa7bb39a646ec1.zip
system_core-f02593b0e61f8108449770094caa7bb39a646ec1.tar.gz
system_core-f02593b0e61f8108449770094caa7bb39a646ec1.tar.bz2
Allow getting an uncached process map.
Change-Id: I58d7e90a7b5c4476a4b9f51640c54d13748ac220
Diffstat (limited to 'libbacktrace')
-rw-r--r--libbacktrace/UnwindMap.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libbacktrace/UnwindMap.cpp b/libbacktrace/UnwindMap.cpp
index 4f9831b..387d768 100644
--- a/libbacktrace/UnwindMap.cpp
+++ b/libbacktrace/UnwindMap.cpp
@@ -130,9 +130,13 @@ const backtrace_map_t* UnwindMapLocal::Find(uintptr_t addr) {
//-------------------------------------------------------------------------
// BacktraceMap create function.
//-------------------------------------------------------------------------
-BacktraceMap* BacktraceMap::Create(pid_t pid) {
+BacktraceMap* BacktraceMap::Create(pid_t pid, bool uncached) {
BacktraceMap* map;
- if (pid == getpid()) {
+
+ if (uncached) {
+ // Force use of the base class to parse the maps when this call is made.
+ map = new BacktraceMap(pid);
+ } else if (pid == getpid()) {
map = new UnwindMapLocal();
} else {
map = new UnwindMap(pid);