line |
true |
false |
branch |
25
|
0 |
0 |
std::regex re("(.+)\\((.+)\\+0x(.+)\\) \\[(.+)\\]"); |
27
|
0 |
0 |
if (regex_match(symbol, what, re)) { |
|
0 |
0 |
if (regex_match(symbol, what, re)) { |
28
|
0 |
0 |
panda::string dll (what[1].first, what[1].length()); |
|
0 |
0 |
panda::string dll (what[1].first, what[1].length()); |
|
0 |
0 |
panda::string dll (what[1].first, what[1].length()); |
|
0 |
0 |
panda::string dll (what[1].first, what[1].length()); |
29
|
0 |
0 |
panda::string mangled_name (what[2].first, what[2].length()); |
|
0 |
0 |
panda::string mangled_name (what[2].first, what[2].length()); |
|
0 |
0 |
panda::string mangled_name (what[2].first, what[2].length()); |
|
0 |
0 |
panda::string mangled_name (what[2].first, what[2].length()); |
|
0 |
0 |
panda::string mangled_name (what[2].first, what[2].length()); |
30
|
0 |
0 |
panda::string symbol_offset (what[3].first, what[3].length()); |
|
0 |
0 |
panda::string symbol_offset (what[3].first, what[3].length()); |
|
0 |
0 |
panda::string symbol_offset (what[3].first, what[3].length()); |
|
0 |
0 |
panda::string symbol_offset (what[3].first, what[3].length()); |
|
0 |
0 |
panda::string symbol_offset (what[3].first, what[3].length()); |
31
|
0 |
0 |
panda::string address (what[4].first, what[4].length()); |
|
0 |
0 |
panda::string address (what[4].first, what[4].length()); |
|
0 |
0 |
panda::string address (what[4].first, what[4].length()); |
|
0 |
0 |
panda::string address (what[4].first, what[4].length()); |
|
0 |
0 |
panda::string address (what[4].first, what[4].length()); |
34
|
0 |
0 |
char* demangled_name = abi::__cxa_demangle(mangled_name.c_str(), nullptr, 0, &status); |
|
0 |
0 |
char* demangled_name = abi::__cxa_demangle(mangled_name.c_str(), nullptr, 0, &status); |
35
|
0 |
0 |
if (demangled_name) { |
37
|
0 |
0 |
guard_t guard(&demangled_name, [](char** ptr) { free(*ptr); }); |
|
0 |
0 |
guard_t guard(&demangled_name, [](char** ptr) { free(*ptr); }); |
40
|
0 |
0 |
return address + " in " + demangled_name + " from " + dll; |
|
0 |
0 |
return address + " in " + demangled_name + " from " + dll; |
|
0 |
0 |
return address + " in " + demangled_name + " from " + dll; |
|
0 |
0 |
return address + " in " + demangled_name + " from " + dll; |
43
|
0 |
0 |
return panda::string("[demangle failed]") + symbol; |
50
|
0 |
0 |
if (symbols) { |
51
|
0 |
0 |
guard_t guard(&symbols, [](char*** ptr) { free(*ptr); }); |
52
|
0 |
0 |
for (int i = 0; i < static_cast(buffer.size()); ++i) { |
53
|
0 |
0 |
result += humanize(symbols[i]) + "\n"; |
|
0 |
0 |
result += humanize(symbols[i]) + "\n"; |
|
0 |
0 |
result += humanize(symbols[i]) + "\n"; |