diff options
author | Stan Cox <scox@redhat.com> | 2009-03-03 17:55:37 -0500 |
---|---|---|
committer | Stan Cox <scox@redhat.com> | 2009-03-03 17:55:37 -0500 |
commit | 9b753edaf92d9e73455ccea4334ab340616c8f93 (patch) | |
tree | 4e2a3137935736088ec88add8cb8682071113a2c /tapsets.cxx | |
parent | 1324cc8267f44de856daa6aedd76d157e4259d28 (diff) | |
download | systemtap-steved-9b753edaf92d9e73455ccea4334ab340616c8f93.tar.gz systemtap-steved-9b753edaf92d9e73455ccea4334ab340616c8f93.tar.xz systemtap-steved-9b753edaf92d9e73455ccea4334ab340616c8f93.zip |
Search for a label instead of an address for .so static probes.
* tapsets.cxx (dwflpp::build): Use .label for .so instead of .statement(N)
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index 046ef0c0..1c098425 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -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); |