]> sourceware.org Git - systemtap.git/commitdiff
Search for a label instead of an address for .so static probes.
authorStan Cox <scox@redhat.com>
Tue, 3 Mar 2009 22:55:37 +0000 (17:55 -0500)
committerStan Cox <scox@redhat.com>
Tue, 3 Mar 2009 22:55:37 +0000 (17:55 -0500)
* tapsets.cxx (dwflpp::build): Use .label for .so instead of .statement(N)

tapsets.cxx

index 046ef0c0d1f9f8c70f1710db684114685373805b..1c098425bcba958e8e4f7a8dcd5a8dfb750a5d34 100644 (file)
@@ -5706,6 +5706,7 @@ dwarf_builder::build(systemtap_session & sess,
     size_t shstrndx;
     Elf_Scn *probe_scn = NULL;
     bool probe_found = false;
+    bool dynamic = (dwfl_module_relocations (dw->module) == 1);
 
     dwfl_assert ("getshstrndx", elf_getshstrndx (elf, &shstrndx));
     GElf_Shdr *shdr = NULL;
@@ -5723,8 +5724,10 @@ dwarf_builder::build(systemtap_session & sess,
            break;
          }
       }
+    if (dynamic || sess.listing_mode)
+      probe_type = dwarf_no_probes;
     
-    if (probe_type == probes_and_dwarf && ! sess.listing_mode)
+    if (probe_type == probes_and_dwarf)
       {
        Elf_Data *pdata = elf_getdata_rawchunk (elf, shdr->sh_offset, shdr->sh_size, ELF_T_BYTE);
        assert (pdata != NULL);
This page took 0.03351 seconds and 5 git commands to generate.