This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Making the transport layer more robust
On Tue, 2011-07-19 at 10:58 +0200, Mark Wielaard wrote:
> I am still investigating the test results on
> rhel5, they don't look that good (in particular exelib.exp fails a lot
> of tests because it is unable to find process.mark probe points)
Finally tracked this down to an old binutils bug... sigh. When I finally
knew what it was, the fix was was easy. With this all the 188 exelib.exp
tests PASS also on rhel5 based systems.
Cheers,
Mark
commit 1189063f8adaa13e2da16b51ab665663497ac102
Author: Mark Wielaard <mjw@redhat.com>
Date: Wed Jul 20 16:05:31 2011 +0200
Always look for .note.stapsdt sections in the main elf file.
In dwflpp::iterate_over_notes we really want the actual elf file,
not the dwarf .debug file. Older binutils had a bug where they
mangled the SHT_NOTE type during --keep-debug.
diff --git a/dwflpp.cxx b/dwflpp.cxx
index fcc142b..2ab8772 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -1007,8 +1007,10 @@ int
dwflpp::iterate_over_notes (void *object, void (*callback)(void *object, int type, const char *data, size_t len))
{
Dwarf_Addr bias;
- Elf* elf = (dwarf_getelf (dwfl_module_getdwarf (module, &bias))
- ?: dwfl_module_getelf (module, &bias));
+ // Note we really want the actual elf file, not the dwarf .debug file.
+ // Older binutils had a bug where they mangled the SHT_NOTE type during
+ // --keep-debug.
+ Elf* elf = dwfl_module_getelf (module, &bias);
size_t shstrndx;
if (elf_getshdrstrndx (elf, &shstrndx))
return elf_errno();