diff options
author | unknown <msvensson@shellback.(none)> | 2006-03-23 16:22:56 +0100 |
---|---|---|
committer | unknown <msvensson@shellback.(none)> | 2006-03-23 16:22:56 +0100 |
commit | 1faccf869de724d64936be2f0c77501a8448a3e5 (patch) | |
tree | 841a7d46ab7be69e3ab6641228a23ffab85e3f6b /mysql-test/mysql-test-run.pl | |
parent | de9b35ece02a36c76b19bef8cf6601c15ec01b92 (diff) | |
download | mariadb-git-1faccf869de724d64936be2f0c77501a8448a3e5.tar.gz |
Add support fo --manual-debug, --manual-gdb and -manual-ddd
Touchups
mysql-test/mysql-test-run.pl:
Add support fo --manual-debug, --manual-gdb and -manual-ddd
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 78 |
1 files changed, 56 insertions, 22 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 4b3c773911f..21f3df1e6b7 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -774,8 +774,8 @@ sub command_line_setup () { } # Check debug related options - if ( $opt_gdb || $opt_client_gdb || $opt_ddd || opt_client_ddd || - $opt_manual_gdb || $opt_manual_ddd || opt_manual_debug) + if ( $opt_gdb || $opt_client_gdb || $opt_ddd || $opt_client_ddd || + $opt_manual_gdb || $opt_manual_ddd || $opt_manual_debug) { # Indicate that we are using debugger $glob_debugger= 1; @@ -1557,7 +1557,7 @@ sub run_suite () { mtr_print_line(); - if ( ! $opt_debugger and + if ( ! $glob_debugger and ! $glob_use_running_server and ! $glob_use_embedded_server ) { @@ -2494,7 +2494,7 @@ sub mysqld_start ($$$$$) { my $args; # Arg vector my $exe; - my $pid; + my $pid= -1; if ( $type eq 'master' ) { @@ -2527,30 +2527,45 @@ sub mysqld_start ($$$$$) { { ddd_arguments(\$args, \$exe, $type); } + elsif ( $opt_manual_debug ) + { + print "\nStart $type in your debugger\n" . + "dir: $glob_mysql_test_dir\n" . + "exe: $exe\n" . + "args: " . join(" ", @$args) . "\n\n" . + "Waiting ....\n"; + + # Indicate the exe should not be started + $exe= undef; + } if ( $type eq 'master' ) { - if ( $pid= mtr_spawn($exe, $args, "", - $master->[$idx]->{'path_myerr'}, - $master->[$idx]->{'path_myerr'}, - "", - { append_log_file => 1 }) ) + if ( ! defined $exe or + $pid= mtr_spawn($exe, $args, "", + $master->[$idx]->{'path_myerr'}, + $master->[$idx]->{'path_myerr'}, + "", + { append_log_file => 1 }) ) { return sleep_until_file_created($master->[$idx]->{'path_mypid'}, - $master->[$idx]->{'start_timeout'}, $pid); + $master->[$idx]->{'start_timeout'}, + $pid); } } if ( $type eq 'slave' ) { - if ( $pid= mtr_spawn($exe, $args, "", + if ( ! defined $exe or + $pid= mtr_spawn($exe, $args, "", $slave->[$idx]->{'path_myerr'}, $slave->[$idx]->{'path_myerr'}, "", { append_log_file => 1 }) ) { return sleep_until_file_created($slave->[$idx]->{'path_mypid'}, - $master->[$idx]->{'start_timeout'}, $pid); + $master->[$idx]->{'start_timeout'}, + $pid); } } @@ -3012,7 +3027,7 @@ sub run_mysqltest ($) { if ($glob_use_libtool) { # Add "libtool --mode-execute" before the test to execute - unshift(@$args, "--mode=execute", $path); + unshift(@$args, "--mode=execute", $exe); $exe= "libtool"; } @@ -3049,27 +3064,37 @@ sub gdb_arguments { { # write init file for client mtr_tofile($gdb_init_file, - "set args $str\n" - ); + "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\n" . - "run" - ); + "run"); + } + + if ( $opt_manual_gdb ) + { + print "\nTo start gdb for$type, type in another window:\n"; + print "cd $glob_mysql_test_dir;\n"; + print "gdb -x $gdb_init_file $$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 ( $glob_use_libtool ) { mtr_add_arg($$args, "libtool"); @@ -3101,8 +3126,7 @@ sub ddd_arguments { # write init file for client mtr_tofile($gdb_init_file, "set args $str\n" . - "break main\n" - ); + "break main\n"); } else { @@ -3114,8 +3138,18 @@ sub ddd_arguments { "commands 1\n" . "disable 1\n" . "end\n" . - "run" - ); + "run"); + } + + if ( $opt_manual_ddd ) + { + print "\nTo start ddd for$type, type in another window:\n"; + print "cd $glob_mysql_test_dir;\n"; + print "ddd -x $gdb_init_file $$exe\n"; + + # Indicate the exe should not be started + $$exe= undef; + return; } my $save_exe= $$exe; |