List:Commits« Previous MessageNext Message »
From:Bjorn Munch Date:April 6 2011 9:21am
Subject:bzr commit into mysql-5.5-mtr branch (bjorn.munch:3192) Bug#11760361
View as plain text  
#At file:///home/bm136801/my/dbx-55/ based on revid:bjorn.munch@stripped

 3192 Bjorn Munch	2011-04-06
      Bug #11760361 52764: EXTEND MYSQL-TEST-RUN SUPPORT FOR SUN STUDIO DBX BY ADDING --DBX DEBUGGER
      Added necessary options and variables
      Added dbx_arguments() similar to gdb_arguments()
      Unlike gdb, cannot use init file but must provide commands and args as
        command line argument to dbx
      Also simplified debugger behavior to always start with a breakpoint in main()

    modified:
      mysql-test/mysql-test-run.pl
=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl	2011-03-16 14:11:20 +0000
+++ b/mysql-test/mysql-test-run.pl	2011-04-06 09:19:14 +0000
@@ -219,9 +219,12 @@ our %gprof_dirs;
 our $glob_debugger= 0;
 our $opt_gdb;
 our $opt_client_gdb;
+our $opt_dbx;
+our $opt_client_dbx;
 our $opt_ddd;
 our $opt_client_ddd;
 our $opt_manual_gdb;
+our $opt_manual_dbx;
 our $opt_manual_ddd;
 our $opt_manual_debug;
 our $opt_debugger;
@@ -1001,6 +1004,9 @@ sub command_line_setup {
              'ddd'                      => \$opt_ddd,
              'client-ddd'               => \$opt_client_ddd,
              'manual-ddd'               => \$opt_manual_ddd,
+             'dbx'                      => \$opt_dbx,
+	     'client-dbx'               => \$opt_client_dbx,
+	     'manual-dbx'               => \$opt_manual_dbx,
 	     'debugger=s'               => \$opt_debugger,
 	     'client-debugger=s'        => \$opt_client_debugger,
              'strace-client:s'          => \$opt_strace_client,
@@ -1426,6 +1432,12 @@ sub command_line_setup {
       $opt_ddd= undef;
     }
 
+    if ($opt_dbx) {
+      mtr_warning("Silently converting --dbx to --client-dbx in embedded mode");
+      $opt_client_dbx= $opt_dbx;
+      $opt_dbx= undef;
+    }
+
     if ($opt_debugger)
     {
       mtr_warning("Silently converting --debugger to --client-debugger in embedded mode");
@@ -1434,7 +1446,7 @@ sub command_line_setup {
     }
 
     if ( $opt_gdb || $opt_ddd || $opt_manual_gdb || $opt_manual_ddd ||
-	 $opt_manual_debug || $opt_debugger )
+	 $opt_manual_debug || $opt_debugger || $opt_dbx || $opt_manual_dbx)
     {
       mtr_error("You need to use the client debug options for the",
 		"embedded server. Ex: --client-gdb");
@@ -1462,6 +1474,7 @@ sub command_line_setup {
   # --------------------------------------------------------------------------
   if ( $opt_gdb || $opt_client_gdb || $opt_ddd || $opt_client_ddd ||
        $opt_manual_gdb || $opt_manual_ddd || $opt_manual_debug ||
+       $opt_dbx || $opt_client_dbx || $opt_manual_dbx ||
        $opt_debugger || $opt_client_debugger )
   {
     # Indicate that we are using debugger
@@ -4704,6 +4717,9 @@ sub mysqld_start ($$) {
   {
     ddd_arguments(\$args, \$exe, $mysqld->name());
   }
+  if ( $opt_dbx || $opt_manual_dbx ) {
+    dbx_arguments(\$args, \$exe, $mysqld->name());
+  }
   elsif ( $opt_debugger )
   {
     debugger_arguments(\$args, \$exe, $mysqld->name());
@@ -5374,6 +5390,9 @@ sub start_mysqltest ($) {
   {
     ddd_arguments(\$args, \$exe, "client");
   }
+  if ( $opt_client_dbx ) {
+    dbx_arguments(\$args, \$exe, "client");
+  }
   elsif ( $opt_client_debugger )
   {
     debugger_arguments(\$args, \$exe, "client");
@@ -5408,23 +5427,11 @@ sub gdb_arguments {
   # Remove the old gdbinit file
   unlink($gdb_init_file);
 
-  if ( $type eq "client" )
-  {
-    # write init file for client
-    mtr_tofile($gdb_init_file,
-	       "set args $str\n" .
-	       "break main\n");
-  }
-  else
-  {
-    # write init file for mysqld
-    mtr_tofile($gdb_init_file,
-	       "set args $str\n" .
-	       "break mysql_parse\n" .
-	       "commands 1\n" .
-	       "disable 1\n" .
-	       "end\n");
-  }
+  # write init file for mysqld or client
+  mtr_tofile($gdb_init_file,
+	     "set args $str\n" .
+	     "break main\n" .
+	     "run");
 
   if ( $opt_manual_gdb )
   {
@@ -5471,24 +5478,12 @@ sub ddd_arguments {
   # Remove the old gdbinit file
   unlink($gdb_init_file);
 
-  if ( $type eq "client" )
-  {
-    # write init file for client
-    mtr_tofile($gdb_init_file,
-	       "set args $str\n" .
-	       "break main\n");
-  }
-  else
-  {
-    # write init file for mysqld
-    mtr_tofile($gdb_init_file,
-	       "file $$exe\n" .
-	       "set args $str\n" .
-	       "break mysql_parse\n" .
-	       "commands 1\n" .
-	       "disable 1\n" .
-	       "end");
-  }
+  # write init file for mysqld or client
+  mtr_tofile($gdb_init_file,
+	     "file $$exe\n" .
+	     "set args $str\n" .
+	     "break main\n" .
+	     "run");
 
   if ( $opt_manual_ddd )
   {
@@ -5518,6 +5513,46 @@ sub ddd_arguments {
 
 
 #
+# Modify the exe and args so that program is run in dbx in xterm
+#
+sub dbx_arguments {
+  my $args= shift;
+  my $exe=  shift;
+  my $type= shift;
+
+  # Put $args into a single string
+  my $str= join " ", @$$args;
+
+  if ( $opt_manual_dbx ) {
+    print "\nTo start dbx for $type, type in another window:\n";
+    print "cd $glob_mysql_test_dir; dbx -c \"stop in main; " .
+          "run $str\" $$exe\n";
+
+    # Indicate the exe should not be started
+    $$exe= undef;
+    return;
+  }
+
+  $$args= [];
+  mtr_add_arg($$args, "-title");
+  mtr_add_arg($$args, "$type");
+  mtr_add_arg($$args, "-e");
+
+  if ( $exe_libtool ) {
+    mtr_add_arg($$args, $exe_libtool);
+    mtr_add_arg($$args, "--mode=execute");
+  }
+
+  mtr_add_arg($$args, "dbx");
+  mtr_add_arg($$args, "-c");
+  mtr_add_arg($$args, "stop in main; run $str");
+  mtr_add_arg($$args, "$$exe");
+
+  $$exe= "xterm";
+}
+
+
+#
 # Modify the exe and args so that program is run in the selected debugger
 #
 sub debugger_arguments {
@@ -5548,18 +5583,6 @@ sub debugger_arguments {
     $$exe= $debugger;
 
   }
-  elsif ( $debugger eq "dbx" )
-  {
-    # xterm -e dbx -r exe arg1 .. argn
-
-    unshift(@$$args, $$exe);
-    unshift(@$$args, "-r");
-    unshift(@$$args, $debugger);
-    unshift(@$$args, "-e");
-
-    $$exe= "xterm";
-
-  }
   else
   {
     mtr_error("Unknown argument \"$debugger\" passed to --debugger");
@@ -5860,6 +5883,7 @@ Options for debugging the product
   client-ddd            Start mysqltest client in ddd
   client-debugger=NAME  Start mysqltest in the selected debugger
   client-gdb            Start mysqltest client in gdb
+  client-dbx            Start mysqltest client in dbx
   ddd                   Start mysqld in ddd
   debug                 Dump trace output for all servers and client programs
   debug-common          Same as debug, but sets 'd' debug flags to
@@ -5868,12 +5892,15 @@ Options for debugging the product
                         tracing
   debugger=NAME         Start mysqld in the selected debugger
   gdb                   Start the mysqld(s) in gdb
+  dbx                   Start the mysqld(s) in dbx
   manual-debug          Let user manually start mysqld in debugger, before
                         running test(s)
   manual-gdb            Let user manually start mysqld in gdb, before running
                         test(s)
   manual-ddd            Let user manually start mysqld in ddd, before running
                         test(s)
+  manual-dbx            Let user manually start mysqld in dbx, before running
+                        test(s)
   strace-client[=path]  Create strace output for mysqltest client, optionally
                         specifying name and path to the trace program to use.
                         Example: $0 --strace-client=ktrace


Attachment: [text/bzr-bundle] bzr/bjorn.munch@oracle.com-20110406091914-gofttwfy81fz6a9m.bundle
Thread
bzr commit into mysql-5.5-mtr branch (bjorn.munch:3192) Bug#11760361Bjorn Munch6 Apr
  • Re: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3192) Bug#11760361Magnus BlĂ„udd6 Apr
  • Re: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3192) Bug#11760361Olav Sandstaa7 Apr