From 08d1d520616557f6ff7dd023e260ad6577e9e0e8 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Mon, 18 Jan 2010 09:13:30 +0100 Subject: PR11173 Markers get a bad address in prelinked libraries. Our literal_addr_to_sym_addr() function was just wrong. To compensate for raw addresses read from elf (either given by the user or through a mark transformation) we need to know what the elf_bias is (as returned by dwfl_module_getelf) before feeding them to any libdwfl functions. * tapsets.cxx (query_module_dwarf): Always add elf_bias to raw function or statement addresses before calling query_addr(). (query_addr): Don't call literal_addr_to_sym_addr(). * dwflpp.h (literal_addr_to_sym_addr): Removed. * dwflpp.cxx (literal_addr_to_sym_addr): Likewise. --- dwflpp.h | 2 -- 1 file changed, 2 deletions(-) (limited to 'dwflpp.h') diff --git a/dwflpp.h b/dwflpp.h index cdc6ad98..523dd883 100644 --- a/dwflpp.h +++ b/dwflpp.h @@ -284,8 +284,6 @@ struct dwflpp Dwarf_Addr relocate_address(Dwarf_Addr addr, std::string& reloc_section); - Dwarf_Addr literal_addr_to_sym_addr(Dwarf_Addr lit_addr); - private: DwflPtr dwfl_ptr; -- cgit