List:Commits« Previous MessageNext Message »
From:msvensson Date:July 26 2006 12:45pm
Subject:bk commit into 5.1 tree (msvensson:1.2238)
View as plain text  
Below is the list of changes that have just been committed into a local
5.1 repository of msvensson. When msvensson does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2006-07-26 14:44:59+02:00, msvensson@neptunus.(none) +1 -0
  Add support for valgrind with callgrind

  mysql-test/mysql-test-run.pl@stripped, 2006-07-26 14:44:57+02:00, msvensson@neptunus.(none) +28 -6
    Add support for valgrind with callgrind

# This is a BitKeeper patch.  What follows are the unified diffs for the
# set of deltas contained in the patch.  The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User:	msvensson
# Host:	neptunus.(none)
# Root:	/home/msvensson/mysql/mysql-5.1-new-maint

--- 1.147/mysql-test/mysql-test-run.pl	2006-07-26 14:45:05 +02:00
+++ 1.148/mysql-test/mysql-test-run.pl	2006-07-26 14:45:05 +02:00
@@ -290,6 +290,7 @@ our $opt_valgrind_mysqltest= 0;
 our $default_valgrind_options= "--show-reachable=yes";
 our $opt_valgrind_options;
 our $opt_valgrind_path;
+our $opt_callgrind;
 
 our $opt_stress=               "";
 our $opt_stress_suite=     "main";
@@ -635,6 +636,7 @@ sub command_line_setup () {
              'valgrind-mysqld'          => \$opt_valgrind_mysqld,
              'valgrind-options=s'       => \$opt_valgrind_options,
              'valgrind-path=s'          => \$opt_valgrind_path,
+	     'callgrind'                => \$opt_callgrind,
 
              # Stress testing 
              'stress'                   => \$opt_stress,
@@ -873,6 +875,17 @@ sub command_line_setup () {
     $opt_valgrind= 1;
   }
 
+  if ( $opt_callgrind )
+  {
+    mtr_report("Turning on valgrind with callgrind for mysqld(s)");
+    $opt_valgrind= 1;
+    $opt_valgrind_mysqld= 1;
+
+    # Set special valgrind options unless options passed on command line
+    $opt_valgrind_options="--trace-children=yes"
+      unless defined $opt_valgrind_options;
+  }
+
   if ( $opt_valgrind )
   {
     # Set valgrind_options to default unless already defined
@@ -4098,12 +4111,20 @@ sub valgrind_arguments {
   my $args= shift;
   my $exe=  shift;
 
-  mtr_add_arg($args, "--tool=memcheck"); # From >= 2.1.2 needs this option
-  mtr_add_arg($args, "--alignment=8");
-  mtr_add_arg($args, "--leak-check=yes");
-  mtr_add_arg($args, "--num-callers=16");
-  mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir)
-    if -f "$glob_mysql_test_dir/valgrind.supp";
+  if ( $opt_callgrind)
+  {
+    mtr_add_arg($args, "--tool=callgrind");
+    mtr_add_arg($args, "--base=$opt_vardir/log");
+  }
+  else
+  {
+    mtr_add_arg($args, "--tool=memcheck"); # From >= 2.1.2 needs this option
+    mtr_add_arg($args, "--alignment=8");
+    mtr_add_arg($args, "--leak-check=yes");
+    mtr_add_arg($args, "--num-callers=16");
+    mtr_add_arg($args, "--suppressions=%s/valgrind.supp", $glob_mysql_test_dir)
+      if -f "$glob_mysql_test_dir/valgrind.supp";
+  }
 
   # Add valgrind options, can be overriden by user
   mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
@@ -4226,6 +4247,7 @@ Options for coverage, profiling etc
   valgrind-mysqld       Run the "mysqld" executable with valgrind
   valgrind-options=ARGS Options to give valgrind, replaces default options
   valgrind-path=[EXE]   Path to the valgrind executable
+  callgrind             Instruct valgrind to use callgrind
 
 Misc options
 
Thread
bk commit into 5.1 tree (msvensson:1.2238)msvensson26 Jul