summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <msvensson@shellback.(none)>2006-03-23 16:22:56 +0100
committerunknown <msvensson@shellback.(none)>2006-03-23 16:22:56 +0100
commit1faccf869de724d64936be2f0c77501a8448a3e5 (patch)
tree841a7d46ab7be69e3ab6641228a23ffab85e3f6b
parentde9b35ece02a36c76b19bef8cf6601c15ec01b92 (diff)
downloadmariadb-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
-rwxr-xr-xmysql-test/mysql-test-run.pl78
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;