]> sourceware.org Git - systemtap.git/commitdiff
PR10812: activate build-id relocation code only for module("...")
authorFrank Ch. Eigler <fche@elastic.org>
Fri, 1 Oct 2010 01:45:14 +0000 (21:45 -0400)
committerFrank Ch. Eigler <fche@elastic.org>
Fri, 1 Oct 2010 01:45:14 +0000 (21:45 -0400)
The relocation-basis can be null or something else for
user-space executables etc.

* translate.cxx (dump_unwindsyms): Skip build-id relocation for
  modname /FOO.

translate.cxx

index 8664f5530f064e15fa69427c37839330315a2b70..464ae085b33a2f03dd4d073d5af3d6b89bf1f051 100644 (file)
@@ -4913,7 +4913,7 @@ dump_unwindsyms (Dwfl_Module *m,
       }
 #endif
 
-    if (modname != "kernel")
+    if (modname != "kernel" && modname[0] != '/') // => kernel module
       {
         Dwarf_Addr reloc_vaddr = build_id_vaddr;
         const char *secname;
@@ -4925,6 +4925,11 @@ dump_unwindsyms (Dwfl_Module *m,
         secname = dwfl_module_relocation_info (m, i, NULL);
 
         // assert same section name as in runtime/transport/symbols.c
+        // NB: this is applicable only to module("...") probes.
+        // process("...") ones may have relocation bases like '.dynamic',
+        // and so we'll have to store not just a generic offset but
+        // the relocation section/symbol name too: just like we do
+        // for probe PC addresses themselves.
         if (!secname || strcmp(secname, ".note.gnu.build-id"))
           throw semantic_error ("unexpected build-id reloc section " +
                                 string(secname ?: "null"));
This page took 0.037463 seconds and 5 git commands to generate.