List:Commits« Previous MessageNext Message »
From:Magnus Blåudd Date:April 6 2011 12:05pm
Subject:Re: bzr commit into mysql-5.5-mtr branch (bjorn.munch:3192) Bug#11760361
View as plain text  
Looks good, approved.

/ Magnus

On 2011-04-06 11:21, Bjorn Munch wrote:
> #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
>
>
>
>
>

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