diff options
author | Pedro Alves <palves@redhat.com> | 2011-09-12 21:25:22 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-09-12 21:25:22 +0000 |
commit | 4801a9a3568ed8ffcb4b2fa03d086193bc9ba647 (patch) | |
tree | 71e6009f635c3be3e60c7ce31a7630d15c3e6b9d /gdb/testsuite | |
parent | d0afda0369ec76c2a334f010914f8155f9533909 (diff) | |
download | gdb-4801a9a3568ed8ffcb4b2fa03d086193bc9ba647.zip gdb-4801a9a3568ed8ffcb4b2fa03d086193bc9ba647.tar.gz gdb-4801a9a3568ed8ffcb4b2fa03d086193bc9ba647.tar.bz2 |
gdb/
2011-09-12 Pedro Alves <pedro@codesourcery.com>
Matt Rice <ratmice@gmail.com>
PR gdb/13175
* interps.c (struct interp) <interpreter_out>: Delete field.
(interp_new): Remove the data and uiout parameters and adjust.
(interp_set): Only set the current_uiout from the interpreter's
uiout after initializing the interpreter. Adjust call to
init_proc.
(interp_ui_out): Adjust to call procs->ui_out_proc.
(interp_data, interp_name): New.
* interps.h (interp_init_ftype): Add `self' parameter.
(interp_ui_out_ftype): New typedef.
(struct interp_procs) <ui_out_proc>: New method pointer.
(interp_new): Remove the data and uiout parameters.
(interp_data, interp_name): Declare.
* tui/tui-interp.c (tui_init): Adjust prototype.
(tui_ui_out): New.
(_initialize_tui_interp): Install tui_ui_out. Don't instanciate
tui_out here. Adjust call to interp_new.
* tui/tui-io.c (tui_initialize_io): Don't set current_uiout here.
* cli/cli-interp.c (cli_interpreter_init): Adjust prototype.
(cli_ui_out): New.
(_initialize_cli_interp): Install it. Adjust call to interp_new.
* mi/mi-common.h (struct mi_interp) <uiout>: New field.
* mi/mi-interp.c (mi_interpreter_init): Adjust prototype.
Initialize mi->uiout depending on the mi_version as extracted from
the interpreter's name.
(mi_ui_out): New.
(_initialize_mi_interp): Install mi_ui_out. Adjust calls to
interp_new. Don't allocate the ui_out's of the interpreters here.
gdb/testsuite/
2011-09-12 Matt Rice <ratmice@gmail.com>
Pedro Alves <pedro@codesourcery.com>
PR gdb/13175
* gdb.base/interp.exp: New tests.
* gdb.base/interp.c: New file.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/interp.c | 24 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/interp.exp | 52 |
3 files changed, 83 insertions, 1 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index cdd232d..9d85d02 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2011-09-12 Matt Rice <ratmice@gmail.com> + Pedro Alves <pedro@codesourcery.com> + + PR gdb/13175 + + * gdb.base/interp.exp: New tests. + * gdb.base/interp.c: New file. + 2011-09-12 Doug Evans <dje@google.com> * gdb.dwarf2/clztest.exp: Fix initialization of tests array. diff --git a/gdb/testsuite/gdb.base/interp.c b/gdb/testsuite/gdb.base/interp.c new file mode 100644 index 0000000..f374f14 --- /dev/null +++ b/gdb/testsuite/gdb.base/interp.c @@ -0,0 +1,24 @@ +/* This test program is part of GDB, the GNU debugger. + + Copyright 2011 + 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/>. +*/ + +int +main (int argc, const char **argv) +{ + return 0; +} diff --git a/gdb/testsuite/gdb.base/interp.exp b/gdb/testsuite/gdb.base/interp.exp index bb11f04..6bb2642 100644 --- a/gdb/testsuite/gdb.base/interp.exp +++ b/gdb/testsuite/gdb.base/interp.exp @@ -20,7 +20,11 @@ if $tracelevel then { strace $tracelevel } -gdb_start +set testfile "interp" + +if { [prepare_for_testing ${testfile}.exp ${testfile} ${testfile}.c {debug}] } { + return -1 +} # Do not use gdb_test for this test, since it has two prompts. set cmd "interpreter-exec mi \"-var-update *\"" @@ -45,4 +49,50 @@ gdb_test_multiple "interpreter-exec mi \"-break-insert --thread a\"" \ } } +set cmd "interpreter-exec mi \"-stack-info-frame\"" +gdb_test_multiple $cmd $cmd { + -re ".error,msg=.No registers\..\r\n$gdb_prompt " { + pass "$cmd" + gdb_expect 1 { + -re "\r\n$gdb_prompt $" { } + } + } +} + +set cmd "interpreter-exec mi1 \"-break-insert main\"" +gdb_test_multiple $cmd $cmd { + -re ".done.bkpt=.number=.\[0-9\]\[^\n\]+\r\n$gdb_prompt " { + pass "$cmd" + gdb_expect 1 { + -re "\r\n$gdb_prompt $" { } + } + } +} + +set cmd "interpreter-exec mi2 \"-break-insert main\"" +gdb_test_multiple $cmd $cmd { + -re ".done.bkpt=.number=.\[0-9\]\[^\n\]+\r\n$gdb_prompt " { + pass "$cmd" + gdb_expect 1 { + -re "\r\n$gdb_prompt $" { } + } + } +} + +set cmd "interpreter-exec mi3 \"-break-insert main\"" +gdb_test_multiple $cmd $cmd { + -re ".done.bkpt=.number=.\[0-9\]\[^\n\]+\r\n$gdb_prompt " { + pass "$cmd" + gdb_expect 1 { + -re "\r\n$gdb_prompt $" { } + } + } +} + +if ![runto_main] then { + fail "run to main" + return -1; +} + +gdb_test "list" ".*\[0-9\].*main \\(int argc.*" "can list sources" gdb_exit |