123456789101112131415161718192021222324252627282930313233343536373839 |
- From 183c7a7a8167333c873525f7908913837b8dc3cb Mon Sep 17 00:00:00 2001
- From: Victor Kamensky <kamensky@cisco.com>
- Date: Tue, 20 Mar 2018 12:41:05 -0500
- Subject: [PATCH] _stp_umodule_relocate needs target file path, not host file
- path
- Strip of sysroot from module name is required when _stp_umodule_relocate
- call is generated. Otherwise path won't match path on target and could
- will fail to calculated address within the file.
- Upstream-Status: Backport
- Signed-off-by: Victor Kamensky <kamensky@cisco.com>
- ---
- loc2stap.cxx | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
- diff --git a/loc2stap.cxx b/loc2stap.cxx
- index 4818ee0..e09954f 100644
- --- a/loc2stap.cxx
- +++ b/loc2stap.cxx
- @@ -17,6 +17,7 @@
-
- #include "loc2stap.h"
- #include "dwflpp.h"
- +#include "tapsets.h"
-
- #if ! _ELFUTILS_PREREQ(0, 153)
- #define DW_OP_GNU_entry_value 0xf3
- @@ -106,7 +107,9 @@ location_context::translate_address(Dwarf_Addr addr)
- c = "/* pragma:vma */ "
- "({ unsigned long addr = 0; "
- "addr = _stp_umodule_relocate (\""
- - + resolve_path(dw->module_name.c_str()) + "\", "
- + + path_remove_sysroot(dw->sess,
- + resolve_path(dw->module_name.c_str()))
- + + "\", "
- + lex_cast_hex (addr)
- + ", current); addr; })";
- }
|