This is the mail archive of the elfutils-devel@sourceware.org mailing list for the elfutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

eu-unstrip -n fails to process a coredump


Hi,

I have a coredump which cannot be processed by eu-unstrip.
It is from crashed firefox's nspluginwrapper. Crashed binary is
/usr/lib/nspluginwrapper/npviewer.bin and
"ldd /usr/lib/nspluginwrapper/npviewer.bin" shows that
it is apparently a normal dynamically linked program.

Other people which are working with me on abrt
also say that some firefox crashes can't be processes.
It's likely they refer to this (or similar) problem.

[CC-ing abrt ml]

Coredump is about 200 MB big (bzipped 20 MB), I can send it
on request.

eu-unstrip just says this and exits with exitcode 1:

# eu-unstrip -n --core=coredump.big
eu-unstrip: coredump.big: Callback returned failure


I built unstrip from current git and it does the same.

With some instrumentation, I see that execution deviates from
"normal" flow (one which I see with good coredumps) in
libdwfl/link_map.c, report_r_debug(), here:


...
  GElf_Addr next = addrs[0];

  Dwfl_Module **lastmodp = &dwfl->modulelist;
  int result = 0;
  while (next != 0)
    {
...
      if (name != NULL && name[0] == '\0')
        name = NULL;

      /* If content-sniffing already reported a module covering
         the same area, find that existing module to adjust.
         The l_ld address is the only one we know for sure
         to be within the module's own segments (its .dynamic).  */
      Dwfl_Module *mod;
      int segndx = INTUSE(dwfl_addrsegment) (dwfl, l_ld, &mod);
      if (unlikely (segndx < 0))
{fprintf(stderr, "%s.%d: %s() we return -1 (segndx:%d < 0)\n", __FILE__, __LINE__, "report_r_debug", segndx);
        return release_buffer (-1);
}
...

The fprintf shown above triggers.


Full instrumented output is:


core-file.c.459: dwfl_core_file_report() dwfl_link_map_report ...
link_map.c.873: dwfl_link_map_report() report_r_debug(integrated_memory_callback) ...
link_map.c.210: integrated_memory_callback() dwfl_addrsegment(vaddr:7fa09549c276) returns mod->name:'ld-linux-x86-64.so.2' mod->main.name:'(null)'
link_map.c.216: integrated_memory_callback() dwfl_module_address_section ...
derelocate.c.391: dwfl_module_address_section() check_module ...
derelocate.c.291: check_module() dwfl_module_getsymtab ...
dwfl_module_getdwarf.c.752: dwfl_module_getsymtab() find_symtab ...
dwfl_module_getdwarf.c.507: find_symtab() __libdwfl_getelf ...
dwfl_module_getdwarf.c.134: __libdwfl_getelf() find_elf ...
dwfl_module_getdwarf.c.138: __libdwfl_getelf() open_elf ...
dwfl_module_getdwarf.c.66: open_elf() file->name:'(null)'
dwfl_module_getdwarf.c.71: open_elf() returns CBFAIL: fd < 0
dwfl_module_getdwarf.c.140: __libdwfl_getelf() open_elf returned
dwfl_module_getdwarf.c.760: dwfl_module_getsymtab() we return -1
derelocate.c.298: check_module() dwfl_module_getsymtab returned error 16, we return true
derelocate.c.393: dwfl_module_address_section() we return NULL (check_module != 0)
link_map.c.228: integrated_memory_callback() we got scn == NULL and return false
link_map.c.210: integrated_memory_callback() dwfl_addrsegment(vaddr:7fa09549c276) returns mod->name:'ld-linux-x86-64.so.2' mod->main.name:'(null)'
link_map.c.216: integrated_memory_callback() dwfl_module_address_section ...
derelocate.c.391: dwfl_module_address_section() check_module ...
derelocate.c.291: check_module() dwfl_module_getsymtab ...
dwfl_module_getdwarf.c.752: dwfl_module_getsymtab() find_symtab ...
dwfl_module_getdwarf.c.760: dwfl_module_getsymtab() we return -1
derelocate.c.298: check_module() dwfl_module_getsymtab returned error 16, we return true
derelocate.c.393: dwfl_module_address_section() we return NULL (check_module != 0)
link_map.c.228: integrated_memory_callback() we got scn == NULL and return false
link_map.c.389: report_r_debug() we return -1 (segndx:-1 < 0)
unstrip: coredump.big: Callback returned failure


and it is different from unstrip runs or "good" coredump only in two last lines,
those continue like this:

derelocate.c.393: dwfl_module_address_section() we return NULL (check_module != 0)
link_map.c.228: integrated_memory_callback() we got scn == NULL and return false
link_map.c.453: report_r_debug() we return result:6
dwfl_module_getelf.c.58: dwfl_module_getelf() __libdwfl_getelf ...
dwfl_module_getdwarf.c.134: __libdwfl_getelf() find_elf ...
dwfl_module_getdwarf.c.138: __libdwfl_getelf() open_elf ...
dwfl_module_getdwarf.c.66: open_elf() file->name:'(null)'
dwfl_module_getdwarf.c.71: open_elf() returns CBFAIL: fd < 0
dwfl_module_getdwarf.c.140: __libdwfl_getelf() open_elf returned
dwfl_module_getdwarf.c.675: find_dw() __libdwfl_getelf ...
     ...and here we are getting 1st line of the output:
0x400000+0x209000 23c77451cf6adff77fc1f5ee2a01d75de6511dda(a)0x40024c - - [exe]
...


Instrumentation is attached.


So, is it a bug?
--
vda

diff -urp elfutils.4/libdwfl/core-file.c elfutils.t5/libdwfl/core-file.c
--- elfutils.4/libdwfl/core-file.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/core-file.c	2009-11-03 16:22:47.239624918 +0100
@@ -456,6 +456,7 @@ dwfl_core_file_report (Dwfl *dwfl, Elf *
   /* Now we have NT_AUXV contents.  From here on this processing could be
      used for a live process with auxv read from /proc.  */
 
+fprintf(stderr, "%s.%d: %s() dwfl_link_map_report ...\n", __FILE__, __LINE__, __func__);
   return dwfl_link_map_report (dwfl, auxv, auxv_size,
 			       dwfl_elf_phdr_memory_callback, elf);
 }
diff -urp elfutils.4/libdwfl/derelocate.c elfutils.t5/libdwfl/derelocate.c
--- elfutils.4/libdwfl/derelocate.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/derelocate.c	2009-11-03 21:54:46.420668447 +0100
@@ -288,14 +288,17 @@ dwfl_module_relocation_info (Dwfl_Module
 static bool
 check_module (Dwfl_Module *mod)
 {
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__);
   if (INTUSE(dwfl_module_getsymtab) (mod) < 0)
     {
       Dwfl_Error error = dwfl_errno ();
       if (error != DWFL_E_NO_SYMTAB)
 	{
 	  __libdwfl_seterrno (error);
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab returned error %d, we return true\n", __FILE__, __LINE__, __func__, (int)error);
 	  return true;
 	}
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab returned DWFL_E_NO_SYMTAB\n", __FILE__, __LINE__, __func__);
     }
 
   if (mod->dw == NULL)
@@ -307,11 +310,13 @@ check_module (Dwfl_Module *mod)
 	  if (error != DWFL_E_NO_DWARF)
 	    {
 	      __libdwfl_seterrno (error);
+fprintf(stderr, "%s.%d: %s() we return true\n", __FILE__, __LINE__, __func__);
 	      return true;
 	    }
 	}
     }
 
+fprintf(stderr, "%s.%d: %s() we return false\n", __FILE__, __LINE__, __func__);
   return false;
 }
 
@@ -355,6 +360,7 @@ find_section (Dwfl_Module *mod, Dwarf_Ad
 int
 dwfl_module_relocate_address (Dwfl_Module *mod, Dwarf_Addr *addr)
 {
+fprintf(stderr, "%s.%d: %s() check_module ...\n", __FILE__, __LINE__, __func__);
   if (unlikely (check_module (mod)))
     return -1;
 
@@ -382,12 +388,17 @@ Elf_Scn *
 dwfl_module_address_section (Dwfl_Module *mod, Dwarf_Addr *address,
 			     Dwarf_Addr *bias)
 {
+fprintf(stderr, "%s.%d: %s() check_module ...\n", __FILE__, __LINE__, __func__);
   if (check_module (mod))
+{fprintf(stderr, "%s.%d: %s() we return NULL (check_module != 0)\n", __FILE__, __LINE__, __func__);
     return NULL;
+}
 
   int idx = find_section (mod, address);
   if (idx < 0)
+{fprintf(stderr, "%s.%d: %s() we return NULL (idx < 0)\n", __FILE__, __LINE__, __func__);
     return NULL;
+}
 
   if (mod->reloc_info->refs[idx].relocs != NULL)
     {
@@ -402,11 +413,13 @@ dwfl_module_address_section (Dwfl_Module
       else
 	{
 	  __libdwfl_seterrno (result);
+fprintf(stderr, "%s.%d: %s() we return NULL (__libdwfl_relocate_section error)\n", __FILE__, __LINE__, __func__);
 	  return NULL;
 	}
     }
 
   *bias = mod->main.bias;
+fprintf(stderr, "%s.%d: %s() we return !NULL\n", __FILE__, __LINE__, __func__);
   return mod->reloc_info->refs[idx].scn;
 }
 INTDEF (dwfl_module_address_section)
diff -urp elfutils.4/libdwfl/dwfl_module_addrsym.c elfutils.t5/libdwfl/dwfl_module_addrsym.c
--- elfutils.4/libdwfl/dwfl_module_addrsym.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/dwfl_module_addrsym.c	2009-11-03 16:01:31.014625293 +0100
@@ -56,6 +56,7 @@ const char *
 dwfl_module_addrsym (Dwfl_Module *mod, GElf_Addr addr,
 		     GElf_Sym *closest_sym, GElf_Word *shndxp)
 {
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__);
   int syments = INTUSE(dwfl_module_getsymtab) (mod);
   if (syments < 0)
     return NULL;
diff -urp elfutils.4/libdwfl/dwfl_module_eh_cfi.c elfutils.t5/libdwfl/dwfl_module_eh_cfi.c
--- elfutils.4/libdwfl/dwfl_module_eh_cfi.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/dwfl_module_eh_cfi.c	2009-11-03 15:53:26.093624923 +0100
@@ -61,6 +61,7 @@ dwfl_module_eh_cfi (mod, bias)
   if (mod->eh_cfi != NULL)
     return mod->eh_cfi;
 
+fprintf(stderr, "%s.%d: %s() __libdwfl_getelf ...\n", __FILE__, __LINE__, __func__);
   __libdwfl_getelf (mod);
   if (mod->elferr != DWFL_E_NOERROR)
     {
diff -urp elfutils.4/libdwfl/dwfl_module_getdwarf.c elfutils.t5/libdwfl/dwfl_module_getdwarf.c
--- elfutils.4/libdwfl/dwfl_module_getdwarf.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/dwfl_module_getdwarf.c	2009-11-03 21:50:26.159923125 +0100
@@ -63,11 +63,14 @@ open_elf (Dwfl_Module *mod, struct dwfl_
     {
       /* If there was a pre-primed file name left that the callback left
 	 behind, try to open that file name.  */
+fprintf(stderr, "%s.%d: %s() file->name:'%s'\n", __FILE__, __LINE__, __func__, file->name);
       if (file->fd < 0 && file->name != NULL)
 	file->fd = TEMP_FAILURE_RETRY (open64 (file->name, O_RDONLY));
 
       if (file->fd < 0)
+{fprintf(stderr, "%s.%d: %s() returns CBFAIL: fd < 0\n", __FILE__, __LINE__, __func__);
 	return CBFAIL;
+}
 
       Dwfl_Error error = __libdw_open_file (&file->fd, &file->elf, true, false);
       if (error != DWFL_E_NOERROR)
@@ -128,10 +131,13 @@ __libdwfl_getelf (Dwfl_Module *mod)
       || mod->elferr != DWFL_E_NOERROR)	/* Cached failure.  */
     return;
 
+fprintf(stderr, "%s.%d: %s() find_elf ...\n", __FILE__, __LINE__, __func__);
   mod->main.fd = (*mod->dwfl->callbacks->find_elf) (MODCB_ARGS (mod),
 						    &mod->main.name,
 						    &mod->main.elf);
+fprintf(stderr, "%s.%d: %s() open_elf ...\n", __FILE__, __LINE__, __func__);
   mod->elferr = open_elf (mod, &mod->main);
+fprintf(stderr, "%s.%d: %s() open_elf returned\n", __FILE__, __LINE__, __func__);
 
   if (mod->elferr == DWFL_E_NOERROR && !mod->main.valid)
     {
@@ -220,6 +226,7 @@ find_debuginfo (Dwfl_Module *mod)
 							   debuglink_file,
 							   debuglink_crc,
 							   &mod->debug.name);
+fprintf(stderr, "%s.%d: %s() returns open_elf()\n", __FILE__, __LINE__, __func__);
   return open_elf (mod, &mod->debug);
 }
 
@@ -497,6 +504,7 @@ find_symtab (Dwfl_Module *mod)
       || mod->symerr != DWFL_E_NOERROR) /* Cached previous failure.  */
     return;
 
+fprintf(stderr, "%s.%d: %s() __libdwfl_getelf ...\n", __FILE__, __LINE__, __func__);
   __libdwfl_getelf (mod);
   mod->symerr = mod->elferr;
   if (mod->symerr != DWFL_E_NOERROR)
@@ -529,6 +537,7 @@ find_symtab (Dwfl_Module *mod)
 	  break;
 
 	case DWFL_E_CB:		/* The find_debuginfo hook failed.  */
+fprintf(stderr, "%s.%d: %s()\n", __FILE__, __LINE__, __func__);
 	  mod->symerr = DWFL_E_NO_SYMTAB;
 	  break;
 	}
@@ -593,6 +602,7 @@ __libdwfl_module_getebl (Dwfl_Module *mo
 {
   if (mod->ebl == NULL)
     {
+fprintf(stderr, "%s.%d: %s() __libdwfl_getelf ...\n", __FILE__, __LINE__, __func__);
       __libdwfl_getelf (mod);
       if (mod->elferr != DWFL_E_NOERROR)
 	return mod->elferr;
@@ -620,6 +630,7 @@ load_dw (Dwfl_Module *mod, struct dwfl_f
       if (error != DWFL_E_NOERROR)
 	return error;
 
+fprintf(stderr, "%s.%d: %s() find_symtab ...\n", __FILE__, __LINE__, __func__);
       find_symtab (mod);
       Dwfl_Error result = mod->symerr;
       if (result == DWFL_E_NOERROR)
@@ -661,6 +672,7 @@ find_dw (Dwfl_Module *mod)
       || mod->dwerr != DWFL_E_NOERROR) /* Cached previous failure.  */
     return;
 
+fprintf(stderr, "%s.%d: %s() __libdwfl_getelf ...\n", __FILE__, __LINE__, __func__);
   __libdwfl_getelf (mod);
   mod->dwerr = mod->elferr;
   if (mod->dwerr != DWFL_E_NOERROR)
@@ -691,6 +703,7 @@ find_dw (Dwfl_Module *mod)
       break;
 
     case DWFL_E_CB:		/* The find_debuginfo hook failed.  */
+fprintf(stderr, "%s.%d: %s()\n", __FILE__, __LINE__, __func__);
       mod->dwerr = DWFL_E_NO_DWARF;
       return;
 
@@ -736,11 +749,15 @@ dwfl_module_getsymtab (Dwfl_Module *mod)
   if (mod == NULL)
     return -1;
 
+fprintf(stderr, "%s.%d: %s() find_symtab ...\n", __FILE__, __LINE__, __func__);
   find_symtab (mod);
   if (mod->symerr == DWFL_E_NOERROR)
+{fprintf(stderr, "%s.%d: %s() we return mod->syments:%d\n", __FILE__, __LINE__, __func__, (int)mod->syments);
     return mod->syments;
+}
 
   __libdwfl_seterrno (mod->symerr);
+fprintf(stderr, "%s.%d: %s() we return -1\n", __FILE__, __LINE__, __func__);
   return -1;
 }
 INTDEF (dwfl_module_getsymtab)
diff -urp elfutils.4/libdwfl/dwfl_module_getelf.c elfutils.t5/libdwfl/dwfl_module_getelf.c
--- elfutils.4/libdwfl/dwfl_module_getelf.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/dwfl_module_getelf.c	2009-11-03 15:53:39.502624904 +0100
@@ -55,6 +55,7 @@ dwfl_module_getelf (Dwfl_Module *mod, GE
   if (mod == NULL)
     return NULL;
 
+fprintf(stderr, "%s.%d: %s() __libdwfl_getelf ...\n", __FILE__, __LINE__, __func__);
   __libdwfl_getelf (mod);
   if (mod->elferr == DWFL_E_NOERROR)
     {
diff -urp elfutils.4/libdwfl/dwfl_module_getsym.c elfutils.t5/libdwfl/dwfl_module_getsym.c
--- elfutils.4/libdwfl/dwfl_module_getsym.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/dwfl_module_getsym.c	2009-11-03 16:03:26.424625055 +0100
@@ -58,6 +58,7 @@ dwfl_module_getsym (Dwfl_Module *mod, in
 
   if (unlikely (mod->symdata == NULL))
     {
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__);
       int result = INTUSE(dwfl_module_getsymtab) (mod);
       if (result < 0)
 	return NULL;
diff -urp elfutils.4/libdwfl/link_map.c elfutils.t5/libdwfl/link_map.c
--- elfutils.4/libdwfl/link_map.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/link_map.c	2009-11-03 22:08:47.104659520 +0100
@@ -206,8 +206,14 @@ integrated_memory_callback (Dwfl *dwfl, 
   (void) INTUSE(dwfl_addrsegment) (dwfl, vaddr, &mod);
   if (mod == NULL)
     return false;
+fprintf(stderr, "%s.%d: %s() dwfl_addrsegment(vaddr:%llx) "
+"returns mod->name:'%s' mod->main.name:'%s'\n", __FILE__, __LINE__, __func__, (long long)vaddr,
+mod->name,
+mod->main.name
+);
 
   Dwarf_Addr bias;
+fprintf(stderr, "%s.%d: %s() dwfl_module_address_section ...\n", __FILE__, __LINE__, __func__);
   Elf_Scn *scn = INTUSE(dwfl_module_address_section) (mod, &vaddr, &bias);
   if (unlikely (scn == NULL))
     {
@@ -219,8 +225,10 @@ integrated_memory_callback (Dwfl *dwfl, 
 	  (dwfl, 0, buffer, buffer_available,
 	   vaddr - mod->main.bias, minread, mod->main.elf);
 #endif
+fprintf(stderr, "%s.%d: %s() we got scn == NULL and return false\n", __FILE__, __LINE__, __func__);
       return false;
     }
+fprintf(stderr, "%s.%d: %s() we got scn != NULL\n", __FILE__, __LINE__, __func__);
 
   Elf_Data *data = elf_rawdata (scn, NULL);
   if (unlikely (data == NULL))
@@ -339,7 +347,9 @@ report_r_debug (uint_fast8_t elfclass, u
   while (next != 0)
     {
       if (read_addrs (next, 4))
+{fprintf(stderr, "%s.%d: %s() we return -1 (read_addrs(%llx) error)\n", __FILE__, __LINE__, "report_r_debug", (long long)next);
 	return release_buffer (-1);
+}
 
       GElf_Addr l_addr = addrs[0];
       GElf_Addr l_name = addrs[1];
@@ -376,7 +386,9 @@ report_r_debug (uint_fast8_t elfclass, u
       Dwfl_Module *mod;
       int segndx = INTUSE(dwfl_addrsegment) (dwfl, l_ld, &mod);
       if (unlikely (segndx < 0))
+{fprintf(stderr, "%s.%d: %s() we return -1 (segndx:%d < 0)\n", __FILE__, __LINE__, "report_r_debug", segndx);
 	return release_buffer (-1);
+}
 
       if (mod != NULL)
 	{
@@ -438,6 +450,7 @@ report_r_debug (uint_fast8_t elfclass, u
 	}
     }
 
+fprintf(stderr, "%s.%d: %s() we return result:%d\n", __FILE__, __LINE__, "report_r_debug", result);
   return release_buffer (result);
 }
 
@@ -857,6 +870,7 @@ dwfl_link_map_report (Dwfl *dwfl, const 
       .memory_callback_arg = memory_callback_arg
     };
 
+fprintf(stderr, "%s.%d: %s() report_r_debug(integrated_memory_callback) ...\n", __FILE__, __LINE__, __func__);
   /* Now we can follow the dynamic linker's library list.  */
   return report_r_debug (elfclass, elfdata, dwfl, r_debug_vaddr,
 			 &integrated_memory_callback, &mcb);
diff -urp elfutils.4/libdwfl/offline.c elfutils.t5/libdwfl/offline.c
--- elfutils.4/libdwfl/offline.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/offline.c	2009-11-03 15:41:54.630624964 +0100
@@ -230,6 +230,7 @@ process_archive_member (Dwfl *dwfl, cons
 	  free (module_name);
 	  if (unlikely (want < 0))
 	    {
+fprintf(stderr, "%s.%d: %s()\n", __FILE__, __LINE__, __func__);
 	      __libdwfl_seterrno (DWFL_E_CB);
 	      goto fail;
 	    }
diff -urp elfutils.4/libdwfl/relocate.c elfutils.t5/libdwfl/relocate.c
--- elfutils.4/libdwfl/relocate.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/libdwfl/relocate.c	2009-11-03 16:02:33.496876904 +0100
@@ -82,7 +82,9 @@ __libdwfl_relocate_value (Dwfl_Module *m
       if ((*mod->dwfl->callbacks->section_address) (MODCB_ARGS (mod),
 						    name, shndx, refshdr,
 						    &refshdr->sh_addr))
+{fprintf(stderr, "%s.%d: %s() returns CBFAIL\n", __FILE__, __LINE__, __func__);
 	return CBFAIL;
+}
 
       if (refshdr->sh_addr == (Dwarf_Addr) -1l)
 	/* The callback indicated this section wasn't really loaded but we
@@ -166,6 +168,7 @@ relocate_getsym (Dwfl_Module *mod,
 	  /* We might not have looked for a symbol table file yet,
 	     when coming from __libdwfl_relocate_section.  */
 	  if (unlikely (mod->symfile == NULL)
+&& (fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__), 1)
 	      && unlikely (INTUSE(dwfl_module_getsymtab) (mod) < 0))
 	    return dwfl_errno ();
 
@@ -237,6 +240,7 @@ resolve_symbol (Dwfl_Module *referer, st
 	       If we just have no symbols in this module, no harm done.  */
 	    if (m->symdata == NULL
 		&& m->symerr == DWFL_E_NOERROR
+&& (fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__), 1)
 		&& INTUSE(dwfl_module_getsymtab) (m) < 0
 		&& m->symerr != DWFL_E_NO_SYMTAB)
 	      return m->symerr;
diff -urp elfutils.4/src/addr2line.c elfutils.t5/src/addr2line.c
--- elfutils.4/src/addr2line.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/src/addr2line.c	2009-11-03 16:01:35.830624938 +0100
@@ -370,6 +370,7 @@ find_symbol (Dwfl_Module *mod,
   const char *looking_for = ((void **) arg)[0];
   GElf_Sym *symbol = ((void **) arg)[1];
 
+fprintf(stderr, "%s.%d: %s() dwfl_module_getsymtab ...\n", __FILE__, __LINE__, __func__);
   int n = dwfl_module_getsymtab (mod);
   for (int i = 1; i < n; ++i)
     {
diff -urp elfutils.4/tests/dwfl-addr-sect.c elfutils.t5/tests/dwfl-addr-sect.c
--- elfutils.4/tests/dwfl-addr-sect.c	2009-11-03 14:35:51.000000000 +0100
+++ elfutils.t5/tests/dwfl-addr-sect.c	2009-11-03 16:07:06.026625320 +0100
@@ -43,6 +43,7 @@ handle_address (Dwfl *dwfl, Dwarf_Addr a
   Dwfl_Module *mod = dwfl_addrmodule (dwfl, address);
   Dwarf_Addr adjusted = address;
   Dwarf_Addr bias;
+fprintf(stderr, "%s.%d: %s() dwfl_module_address_section ...\n", __FILE__, __LINE__, __func__);
   Elf_Scn *scn = dwfl_module_address_section (mod, &adjusted, &bias);
   if (scn == NULL)
     {

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]