Author: sewardj
Date: 2008-02-29 19:44:04 +0000 (Fri, 29 Feb 2008)
New Revision: 7513

Log:
Make debuginfo reading work again on AIX, and improve debug printing a
bit.



Modified:
   branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
   branches/DATASYMS/coregrind/m_debuginfo/readxcoff.c


Modified: branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-29 19:37:03 UTC 
(rev 7512)
+++ branches/DATASYMS/coregrind/m_debuginfo/debuginfo.c 2008-02-29 19:44:04 UTC 
(rev 7513)
@@ -727,14 +727,20 @@
       di = find_or_create_DebugInfo_for( file_name, mem_name );
       vg_assert(di);
 
-      di->text_svma = 0; /* don't know yet */
-      di->text_bias = 0; /* don't know yet */
-      di->text_avma = code_start;
-      di->text_size = code_len;
-      di->data_svma = 0; /* don't know yet */
-      di->data_bias = 0; /* don't know yet */
-      di->data_avma = data_start;
-      di->data_size = data_len;
+      if (code_len > 0) {
+         di->text_present = True;
+         di->text_svma = 0; /* don't know yet */
+         di->text_bias = 0; /* don't know yet */
+         di->text_avma = code_start;
+         di->text_size = code_len;
+      }
+      if (data_len > 0) {
+         di->data_present = True;
+         di->data_svma = 0; /* don't know yet */
+         di->data_bias = 0; /* don't know yet */
+         di->data_avma = data_start;
+         di->data_size = data_len;
+      }
 
       /* These need to be filled in in order to keep various
          assertions in storage.c happy.  In particular see
@@ -765,7 +771,8 @@
 
       /* Dump all the debugInfos whose text segments intersect
          code_start/code_len. */
-      discard_syms_in_range( code_start, code_len );
+      if (code_len > 0)
+         discard_syms_in_range( code_start, code_len );
 
    }
 }

Modified: branches/DATASYMS/coregrind/m_debuginfo/readxcoff.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/readxcoff.c 2008-02-29 19:37:03 UTC 
(rev 7512)
+++ branches/DATASYMS/coregrind/m_debuginfo/readxcoff.c 2008-02-29 19:44:04 UTC 
(rev 7513)
@@ -93,7 +93,7 @@
 
 #define SHOW_AR_DETAILS 0  /* show details of .a file internals */
 
-#define SHOW  VG_(clo_trace_symtab)
+#define SHOW  di->trace_symtab
 
 /* A small stack of filenames is maintained for dealing
    with BINCL/EINCL symbol table entries. */
@@ -1546,7 +1546,8 @@
 }
 
 
-static void show_loader_section ( UChar* oi_start, UWord size )
+static void show_loader_section ( struct _DebugInfo* di,
+                                  UChar* oi_start, UWord size )
 {
    Int i, j;
    LDHDR* hdr = (LDHDR*)oi_start;
@@ -2024,7 +2025,7 @@
                      i, name_of_scnhdr_s_flags(t_scnhdr[i].s_flags) );
       switch (t_scnhdr[i].s_flags & 0xFFFF) {
          case STYP_LOADER:
-            show_loader_section( oimage + t_scnhdr[i].s_scnptr, 
+            show_loader_section( di, oimage + t_scnhdr[i].s_scnptr, 
                                  t_scnhdr[i].s_size );
             break;
          default:


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Valgrind-developers mailing list
Valgrind-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-developers

Reply via email to