Allow getting an uncached process map.

Change-Id: I58d7e90a7b5c4476a4b9f51640c54d13748ac220
This commit is contained in:
Christopher Ferris 2014-08-04 17:08:46 -07:00
parent 3679d5f49a
commit f02593b0e6
2 changed files with 10 additions and 3 deletions

View File

@ -41,7 +41,10 @@ struct backtrace_map_t {
class BacktraceMap {
public:
static BacktraceMap* Create(pid_t pid);
// If uncached is true, then parse the current process map as of the call.
// Passing a map created with uncached set to true to Backtrace::Create()
// is unsupported.
static BacktraceMap* Create(pid_t pid, bool uncached = false);
virtual ~BacktraceMap();

View File

@ -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);