From e889fa7acf7af6f0ebc637ac0f920053c2e10922 Mon Sep 17 00:00:00 2001 From: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com> Date: Tue, 21 Nov 2023 09:41:56 -0600 Subject: [PATCH] Use dlfo_link_map->l_addr over dlfo_map_start --- src/binary/object.hpp | 2 +- src/binary/safe_dl.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/binary/object.hpp b/src/binary/object.hpp index 7668a96..83a5a06 100644 --- a/src/binary/object.hpp +++ b/src/binary/object.hpp @@ -89,7 +89,7 @@ namespace detail { } } frame.object_address = addr - - reinterpret_cast(result.dlfo_map_start) + - reinterpret_cast(result.dlfo_link_map->l_addr) + get_module_image_base(frame.object_path); } frames.push_back(frame); diff --git a/src/binary/safe_dl.hpp b/src/binary/safe_dl.hpp index ad8d03b..1b1cf78 100644 --- a/src/binary/safe_dl.hpp +++ b/src/binary/safe_dl.hpp @@ -25,7 +25,7 @@ namespace detail { out->raw_address = address; dl_find_object result; if(_dl_find_object(reinterpret_cast(address), &result) == 0) { - out->address_relative_to_object_start = address - reinterpret_cast(result.dlfo_map_start); + out->address_relative_to_object_start = address - reinterpret_cast(result.dlfo_link_map->l_addr); if(result.dlfo_link_map->l_name != nullptr && result.dlfo_link_map->l_name[0] != 0) { std::size_t path_length = std::strlen(result.dlfo_link_map->l_name); std::memcpy(