From 9b753edaf92d9e73455ccea4334ab340616c8f93 Mon Sep 17 00:00:00 2001 From: Stan Cox Date: Tue, 3 Mar 2009 17:55:37 -0500 Subject: Search for a label instead of an address for .so static probes. * tapsets.cxx (dwflpp::build): Use .label for .so instead of .statement(N) --- tapsets.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tapsets.cxx') 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); -- cgit