diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 8dbf8813ddd..5a77488d983 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -191,6 +191,7 @@ my $opt_view_protocol; our $opt_debug; my $debug_d= "d"; my $opt_debug_common; +our $opt_debug_server; our @opt_cases; # The test cases names in argv our $opt_embedded_server; @@ -979,6 +980,7 @@ sub command_line_setup { # Debugging 'debug' => \$opt_debug, 'debug-common' => \$opt_debug_common, + 'debug-server' => \$opt_debug_server, 'gdb' => \$opt_gdb, 'client-gdb' => \$opt_client_gdb, 'manual-gdb' => \$opt_manual_gdb, @@ -1135,6 +1137,9 @@ sub command_line_setup { ($auth_plugin)= find_plugin("auth_test_plugin", "plugin/auth"); + # --debug[-common] implies we run debug server + $opt_debug_server= 1 if $opt_debug || $opt_debug_common; + if (using_extern()) { # Connect to the running mysqld and find out what it supports @@ -1787,7 +1792,7 @@ sub find_mysqld { my @mysqld_names= ("mysqld", "mysqld-max-nt", "mysqld-max", "mysqld-nt"); - if ( $opt_debug ){ + if ( $opt_debug_server ){ # Put mysqld-debug first in the list of binaries to look for mtr_verbose("Adding mysqld-debug first in list of binaries to look for"); unshift(@mysqld_names, "mysqld-debug"); @@ -1884,9 +1889,12 @@ sub executable_setup () { sub client_debug_arg($$) { my ($args, $client_name)= @_; + # Workaround for Bug #50627: drop any debug opt + return if $client_name =~ /^mysqlbinlog/; + if ( $opt_debug ) { mtr_add_arg($args, - "--debug=$debug_d:t:A,%s/log/%s.trace", + "--loose-debug=$debug_d:t:A,%s/log/%s.trace", $path_vardir_trace, $client_name) } } @@ -2013,7 +2021,7 @@ sub read_plugin_defs($) or mtr_error("Can't read plugin defintions file $defs_file"); # Need to check if we will be running mysqld-debug - if ($opt_debug) { + if ($opt_debug_server) { $running_debug= 1 if find_mysqld($basedir) =~ /-debug$/; } @@ -2513,9 +2521,9 @@ sub check_debug_support ($) { #mtr_report(" - binaries are not debug compiled"); $debug_compiled_binaries= 0; - if ( $opt_debug ) + if ( $opt_debug_server ) { - mtr_error("Can't use --debug, binaries does not support it"); + mtr_error("Can't use --debug[-server], binary does not support it"); } return; } @@ -5757,6 +5765,8 @@ Options for debugging the product debug Dump trace output for all servers and client programs debug-common Same as debug, but sets 'd' debug flags to "query,info,error,enter,exit" + debug-server Use debug version of server, but without turning on + tracing debugger=NAME Start mysqld in the selected debugger gdb Start the mysqld(s) in gdb manual-debug Let user manually start mysqld in debugger, before