diff options
Diffstat (limited to 'libbacktrace/BacktraceMap.cpp')
-rw-r--r-- | libbacktrace/BacktraceMap.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/libbacktrace/BacktraceMap.cpp b/libbacktrace/BacktraceMap.cpp index ca47f6781..eac20fe29 100644 --- a/libbacktrace/BacktraceMap.cpp +++ b/libbacktrace/BacktraceMap.cpp @@ -144,3 +144,13 @@ BacktraceMap* BacktraceMap::Create(pid_t pid, bool /*uncached*/) { return map; } #endif + +BacktraceMap* BacktraceMap::Create(pid_t pid, const std::vector<backtrace_map_t>& maps) { + BacktraceMap* backtrace_map = new BacktraceMap(pid); + backtrace_map->maps_.insert(backtrace_map->maps_.begin(), maps.begin(), maps.end()); + std::sort(backtrace_map->maps_.begin(), backtrace_map->maps_.end(), + [](const backtrace_map_t& map1, const backtrace_map_t& map2) { + return map1.start < map2.start; + }); + return backtrace_map; +} |