This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
zhangyang-variable-monitor/source/ucli_py/libunwind/symbol.cc
2023-11-24 01:22:30 -05:00

32 lines
751 B
C++

#include "symbol.h"
symbol_parser g_symbol_parser;
bool symbol_parser::find_vma(pid_t pid, vma &vm)
{
std::map<int, proc_vma>::iterator proc_vma_map;
proc_vma_map = machine_vma.find(pid);
if (proc_vma_map == machine_vma.end()) {
return false;
}
proc_vma::const_iterator vma_iter = proc_vma_map->second.upper_bound(vm.pc);
if (vma_iter == proc_vma_map->second.end()) {
return false;
}
if (vma_iter->second.end < vm.pc) {
return false;
}
if (vma_iter != proc_vma_map->second.begin()) {
--vma_iter;
}
vm.start = vma_iter->second.start;
vm.end = vma_iter->second.end;
vm.name = vma_iter->second.name;
vm.offset = vma_iter->second.offset;
return true;
}