-# Copyright 2012-2016 Free Software Foundation, Inc.
+# Copyright 2012-2019 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
set opts {debug}
if [build_executable $testfile.exp $testfile $srcfile $opts] {
- untested mi-logging.exp
+ untested "failed to compile"
return -1
}
set mi_log_prompt "\[(\]gdb\[)\] \[\r\n\]+"
if [regexp "\\^done\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
- pass "Log file contents"
+ pass "log file contents"
} else {
- fail "Log file contents"
+ fail "log file contents"
}
# Now try the redirect, which writes into the file only.
close $chan
if [regexp "1001\\^done\[\r\n\]+$mi_log_prompt.*1002\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt.*1003\\^running\[\r\n\]+\\*running,thread-id=\"all\"\[\r\n\]+$mi_log_prompt\\*stopped,reason=\"end-stepping-range\",.*\[\r\n\]+$mi_log_prompt" $logcontent] {
- pass "Redirect log file contents"
+ pass "redirect log file contents"
} else {
- fail "Redirect log file contents"
+ fail "redirect log file contents"
+}
+
+# Now try enabling a redirect while GDB is already logging. This used
+# to crash GDB.
+with_test_prefix "redirect while already logging" {
+ mi_gdb_test "-gdb-set logging redirect off" ".*" \
+ "logging redirect off"
+ mi_gdb_test "-gdb-set logging on" ".*" \
+ "logging on"
+ mi_gdb_test "-gdb-set logging redirect on" \
+ ".*warning: Currently logging .*Turn the logging off and on to make the new setting effective.*" \
+ "logging redirect on"
+ mi_gdb_test "-gdb-set logging off" ".*" \
+ "logging off"
}
mi_gdb_exit