Fix issue with incorrect reported object addresses on macos when using debug maps

This commit is contained in:
Jeremy 2024-07-13 12:57:49 -05:00
parent f8fee797cf
commit c35ad6887a
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4

View File

@ -72,8 +72,12 @@ namespace libdwarf {
auto it = symbol_table.find(symbol_name);
if(it != symbol_table.end()) {
auto frame = frame_info;
// substitute a translated address object for the target file in
frame.object_address = it->second + offset;
return get_resolver()->resolve_frame(frame);
auto res = get_resolver()->resolve_frame(frame);
// replace the translated address with the object address in the binary
res.frame.object_address = frame_info.object_address;
return res;
} else {
return {
{
@ -167,7 +171,7 @@ namespace libdwarf {
frame_info.raw_address,
// the resolver doesn't care about the object address here, only the offset from the start
// of the symbol and it'll lookup the symbol's base-address
0,
frame_info.object_address,
frame_info.object_path
},
closest_symbol_it->name,