diff options
author | Simon Marchi <simon.marchi@ericsson.com> | 2016-10-17 16:47:36 -0400 |
---|---|---|
committer | Simon Marchi <simon.marchi@ericsson.com> | 2016-10-17 16:48:25 -0400 |
commit | 5bad3170301060ee0801a739ffc213abae664973 (patch) | |
tree | 947ca14ed550a862bb5ed8e24862622531dc4e28 /gdb/testsuite/gdb.trace/mi-trace-save.exp | |
parent | 5562a44eb490b5777c9e786971907c0727d88495 (diff) | |
download | gdb-5bad3170301060ee0801a739ffc213abae664973.zip gdb-5bad3170301060ee0801a739ffc213abae664973.tar.gz gdb-5bad3170301060ee0801a739ffc213abae664973.tar.bz2 |
Fix -trace-save crash when argument is missing
-trace-save doesn't check whether an argument is passed, leading to a
segfault if you pass nothing.
I added a small test, which only tests the error conditions of
-trace-save.
gdb/ChangeLog:
* mi/mi-main.c (mi_cmd_trace_save): Check if argument is present
before using it.
gdb/testsuite/ChangeLog:
* gdb.trace/mi-trace-save.exp: New file.
Diffstat (limited to 'gdb/testsuite/gdb.trace/mi-trace-save.exp')
-rw-r--r-- | gdb/testsuite/gdb.trace/mi-trace-save.exp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.trace/mi-trace-save.exp b/gdb/testsuite/gdb.trace/mi-trace-save.exp new file mode 100644 index 0000000..96bb70d --- /dev/null +++ b/gdb/testsuite/gdb.trace/mi-trace-save.exp @@ -0,0 +1,42 @@ +# Copyright 2016 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 +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +# The -trace-save command is already tested in other files (e.g. +# mi-trace-frame-collected.exp), so this file currently only tests the error +# cases of -trace-save. + +load_lib mi-support.exp + +mi_gdb_start + +# Test without the required "filename" argument. + +proc test_trace_save_wrong_num_args { } { + set err_re [string_to_regexp "^error,msg=\"Exactly one argument required (file in which to save trace data)\""] + + mi_gdb_test "-trace-save" "$err_re" "-trace-save with missing argument" + mi_gdb_test "-trace-save a b" "$err_re" "-trace-save with missing argument" +} + +# Test with an unrecognized option. + +proc test_trace_save_wrong_opt { } { + set err_re [string_to_regexp "^error,msg=\"-trace-save: Unknown option ``hey''\""] + + mi_gdb_test "-trace-save -hey" "$err_re" "-trace-save with wrong option" +} + +test_trace_save_wrong_num_args +test_trace_save_wrong_opt |