Author: sewardj
Date: 2008-02-27 01:47:41 +0000 (Wed, 27 Feb 2008)
New Revision: 7486

Log:
Change core-tool interface to take account of variable location
reading machinery:

VG_(needs_data_syms) is gone.  Data symbols are always read.

It is replaced by VG_(needs_var_info).  This asks for variable info to
be read.  The only tools to use this are Helgrind and DRD.

The user can force loading of variable info, even if the tool
doesn't request it.  This is useful for eg making Memcheck produce
better error messages.  A new flag is provided for this:

--read-var-info=yes|no    read variable type & location info? [no]



Modified:
   branches/DATASYMS/coregrind/m_debuginfo/readelf.c
   branches/DATASYMS/coregrind/m_main.c
   branches/DATASYMS/coregrind/m_options.c
   branches/DATASYMS/coregrind/m_tooliface.c
   branches/DATASYMS/coregrind/pub_core_options.h
   branches/DATASYMS/coregrind/pub_core_tooliface.h
   branches/DATASYMS/exp-drd/drd_main.c
   branches/DATASYMS/helgrind/hg_main.c
   branches/DATASYMS/include/pub_tool_tooliface.h
   branches/DATASYMS/memcheck/tests/varinfo1.vgtest
   branches/DATASYMS/memcheck/tests/varinfo2.vgtest
   branches/DATASYMS/memcheck/tests/varinfo3.vgtest
   branches/DATASYMS/memcheck/tests/varinfo4.vgtest
   branches/DATASYMS/memcheck/tests/varinfo5.vgtest
   branches/DATASYMS/memcheck/tests/varinfo6.vgtest
   branches/DATASYMS/none/tests/cmdline2.stdout.exp


Modified: branches/DATASYMS/coregrind/m_debuginfo/readelf.c
===================================================================
--- branches/DATASYMS/coregrind/m_debuginfo/readelf.c   2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/coregrind/m_debuginfo/readelf.c   2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1853,15 +1853,20 @@
                                       debug_str_img,  debug_str_sz );
 
          /* The new reader: read the DIEs in .debug_info to acquire
-            information on variable types and locations. */
-         ML_(new_dwarf3_reader) ( di,
-                                  debug_info_img,   debug_info_sz,
-                                  debug_abbv_img,   debug_abbv_sz,
-                                  debug_line_img,   debug_line_sz,
-                                  debug_str_img,    debug_str_sz,
-                                  debug_ranges_img, debug_ranges_sz,
-                                  debug_loc_img,    debug_loc_sz );
-
+            information on variable types and locations.  But only if
+            the tool asks for it, or the user requests it on the
+            command line. */
+         if (VG_(needs).var_info /* the tool requires it */
+             || VG_(clo_read_var_info) /* the user asked for it */) {
+            ML_(new_dwarf3_reader)(
+               di, debug_info_img,   debug_info_sz,
+                   debug_abbv_img,   debug_abbv_sz,
+                   debug_line_img,   debug_line_sz,
+                   debug_str_img,    debug_str_sz,
+                   debug_ranges_img, debug_ranges_sz,
+                   debug_loc_img,    debug_loc_sz
+            );
+         }
       }
       if (dwarf1d_img && dwarf1l_img) {
          ML_(read_debuginfo_dwarf1) ( di, dwarf1d_img, dwarf1d_sz, 

Modified: branches/DATASYMS/coregrind/m_main.c
===================================================================
--- branches/DATASYMS/coregrind/m_main.c        2008-02-26 19:53:11 UTC (rev 
7485)
+++ branches/DATASYMS/coregrind/m_main.c        2008-02-27 01:47:41 UTC (rev 
7486)
@@ -172,6 +172,7 @@
 "    --trace-sched=no|yes      show thread scheduler details? [no]\n"
 "    --wait-for-gdb=yes|no     pause on startup to wait for gdb attach\n"
 "    --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]\n"
+"    --read-var-info=yes|no    read variable type & location info? [no]\n"
 "    --command-line-only=no|yes  only use command line options [no]\n"
 "\n"
 "    --vex-iropt-verbosity             0 .. 9 [0]\n"
@@ -423,6 +424,7 @@
       else VG_STR_CLO (arg, "--db-command",       VG_(clo_db_command))
       else VG_STR_CLO (arg, "--sim-hints",        VG_(clo_sim_hints))
       else VG_BOOL_CLO(arg, "--sym-offsets",      VG_(clo_sym_offsets))
+      else VG_BOOL_CLO(arg, "--read-var-info",    VG_(clo_read_var_info))
 
       else VG_NUM_CLO (arg, "--dump-error",       VG_(clo_dump_error))
       else VG_NUM_CLO (arg, "--input-fd",         VG_(clo_input_fd))

Modified: branches/DATASYMS/coregrind/m_options.c
===================================================================
--- branches/DATASYMS/coregrind/m_options.c     2008-02-26 19:53:11 UTC (rev 
7485)
+++ branches/DATASYMS/coregrind/m_options.c     2008-02-27 01:47:41 UTC (rev 
7486)
@@ -80,6 +80,7 @@
 Int    VG_(clo_backtrace_size) = 12;
 Char*  VG_(clo_sim_hints)      = NULL;
 Bool   VG_(clo_sym_offsets)    = False;
+Bool   VG_(clo_read_var_info)  = False;
 Bool   VG_(clo_run_libc_freeres) = True;
 Bool   VG_(clo_track_fds)      = False;
 Bool   VG_(clo_show_below_main)= False;

Modified: branches/DATASYMS/coregrind/m_tooliface.c
===================================================================
--- branches/DATASYMS/coregrind/m_tooliface.c   2008-02-26 19:53:11 UTC (rev 
7485)
+++ branches/DATASYMS/coregrind/m_tooliface.c   2008-02-27 01:47:41 UTC (rev 
7486)
@@ -91,7 +91,7 @@
    .client_requests      = False,
    .syscall_wrapper      = False,
    .sanity_checks        = False,
-   .data_syms           = False,
+   .var_info            = False,
    .malloc_replacement   = False,
    .xml_output           = False,
    .final_IR_tidy_pass   = False
@@ -162,7 +162,7 @@
 // These ones don't require any tool-supplied functions
 NEEDS(libc_freeres)
 NEEDS(core_errors)
-NEEDS(data_syms)
+NEEDS(var_info)
 NEEDS(xml_output)
 
 void VG_(needs_superblock_discards)(

Modified: branches/DATASYMS/coregrind/pub_core_options.h
===================================================================
--- branches/DATASYMS/coregrind/pub_core_options.h      2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/coregrind/pub_core_options.h      2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -137,6 +137,8 @@
 extern Char* VG_(clo_sim_hints);
 /* Show symbols in the form 'name+offset' ?  Default: NO */
 extern Bool VG_(clo_sym_offsets);
+/* Read DWARF3 variable info even if tool doesn't ask for it? */
+extern Bool VG_(clo_read_var_info);
 
 /* Track open file descriptors? */
 extern Bool  VG_(clo_track_fds);

Modified: branches/DATASYMS/coregrind/pub_core_tooliface.h
===================================================================
--- branches/DATASYMS/coregrind/pub_core_tooliface.h    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/coregrind/pub_core_tooliface.h    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -88,7 +88,7 @@
       Bool client_requests;
       Bool syscall_wrapper;
       Bool sanity_checks;
-      Bool data_syms;
+      Bool var_info;
       Bool malloc_replacement;
       Bool xml_output;
       Bool final_IR_tidy_pass;

Modified: branches/DATASYMS/exp-drd/drd_main.c
===================================================================
--- branches/DATASYMS/exp-drd/drd_main.c        2008-02-26 19:53:11 UTC (rev 
7485)
+++ branches/DATASYMS/exp-drd/drd_main.c        2008-02-27 01:47:41 UTC (rev 
7486)
@@ -736,7 +736,7 @@
    VG_(track_pre_thread_ll_exit)   (drd_thread_finished);
 
    // Other stuff.
-   VG_(needs_data_syms)();
+   VG_(needs_var_info)();
 
    drd_register_malloc_wrappers(drd_start_using_mem, drd_stop_using_mem);
 

Modified: branches/DATASYMS/helgrind/hg_main.c
===================================================================
--- branches/DATASYMS/helgrind/hg_main.c        2008-02-26 19:53:11 UTC (rev 
7485)
+++ branches/DATASYMS/helgrind/hg_main.c        2008-02-27 01:47:41 UTC (rev 
7486)
@@ -8819,7 +8819,7 @@
                                    hg_cli__realloc,
                                    HG_CLI__MALLOC_REDZONE_SZB );
 
-   VG_(needs_data_syms)();
+   VG_(needs_var_info)();
 
    //VG_(needs_xml_output)          ();
 

Modified: branches/DATASYMS/include/pub_tool_tooliface.h
===================================================================
--- branches/DATASYMS/include/pub_tool_tooliface.h      2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/include/pub_tool_tooliface.h      2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -416,8 +416,8 @@
    Bool(*expensive_sanity_check)(void)
 );
 
-/* Do we need to see data symbols? */
-extern void VG_(needs_data_syms) ( void );
+/* Do we need to see variable type and location information? */
+extern void VG_(needs_var_info) ( void );
 
 /* Does the tool replace malloc() and friends with its own versions?
    This has to be combined with the use of a vgpreload_<tool>.so module

Modified: branches/DATASYMS/memcheck/tests/varinfo1.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo1.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo1.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1 +1,2 @@
 prog: varinfo1
+vgopts: --read-var-info=yes

Modified: branches/DATASYMS/memcheck/tests/varinfo2.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo2.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo2.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1 +1,2 @@
 prog: varinfo2
+vgopts: --read-var-info=yes

Modified: branches/DATASYMS/memcheck/tests/varinfo3.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo3.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo3.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1,2 +1,3 @@
 prog: varinfo3
+vgopts: --read-var-info=yes
 stderr_filter: filter_varinfo3

Modified: branches/DATASYMS/memcheck/tests/varinfo4.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo4.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo4.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1 +1,2 @@
 prog: varinfo4
+vgopts: --read-var-info=yes

Modified: branches/DATASYMS/memcheck/tests/varinfo5.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo5.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo5.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1 +1,2 @@
 prog: varinfo5
+vgopts: --read-var-info=yes

Modified: branches/DATASYMS/memcheck/tests/varinfo6.vgtest
===================================================================
--- branches/DATASYMS/memcheck/tests/varinfo6.vgtest    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/memcheck/tests/varinfo6.vgtest    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -1 +1,2 @@
 prog: varinfo6
+vgopts: --read-var-info=yes

Modified: branches/DATASYMS/none/tests/cmdline2.stdout.exp
===================================================================
--- branches/DATASYMS/none/tests/cmdline2.stdout.exp    2008-02-26 19:53:11 UTC 
(rev 7485)
+++ branches/DATASYMS/none/tests/cmdline2.stdout.exp    2008-02-27 01:47:41 UTC 
(rev 7486)
@@ -63,6 +63,7 @@
     --trace-sched=no|yes      show thread scheduler details? [no]
     --wait-for-gdb=yes|no     pause on startup to wait for gdb attach
     --sym-offsets=yes|no      show syms in form 'name+offset' ? [no]
+    --read-var-info=yes|no    read variable type & location info? [no]
     --command-line-only=no|yes  only use command line options [no]
 
     --vex-iropt-verbosity             0 .. 9 [0]


-------------------------------------------------------------------------
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