(varobj_get_frozen): New.
(varobj_update): New parameter explicit.
* varobj.c (struct varobj): New fields frozen
and not_fetched.
(varobj_set_frozen, varobj_get_frozen): New.
(install_new_value): Don't fetch values for
frozen variable object, or children thereof. Allow
a frozen variable object to have non-fetched value.
(varobj_update): Allow updating child variables.
Don't traverse frozen children.
(new_variable): Initialize the frozen field.
(c_value_of_variable): Return NULL for frozen
variable without any value yet.
* mi/mi-cmd-var.c (varobj_update_one): New parameter
'explicit'.
(mi_cmd_var_create): Output the 'frozen' field,
as soon as testsuite is adjusted to expect that field.
(mi_cmd_var_set_frozen): New.
(mi_cmd_var_update): Pass the 'explicit' parameter to
varobj_update_one.
* mi/mi-cmds.c (mi_cmds): Register '-var-set-frozen'.
* mi/mi-cmds.h (mi_cmd_var_set_frozen): Declare.
(do_children_tests): User char[2] instead of
char so that automatic printing of pointers to char
don't give unpredicable result.
* gdb.mi/var-cmd.c (do_locals_test): Initialize
local variables.
* gdb.mi/mi-var-child.exp: Step to right line
of do_children_tests.
* gdb.mi/mi2-var-child.exp: Likewise.
* gdb.mi/mi-var-cmd.exp: Step to right line of
do_locals_tests.
(do_children_tests): User char[2] instead of
char so that automatic printing of pointers to char
don't give unpredicable result.
* gdb.mi/mi2-var-cmd.exp: Likewise.
* lib/mi-support.exp (mi_continue_to_line):
Pass test name to mi_wait_for_stop.
value changeability for for references.
* varobj.c (get_value_type): New function.
(c_variable_editable): Use get_value_type.
(varobj_value_is_changeable): Likewise.
in C and C++ sources.
* lib/mi-support.exp (mi_autotest_data): New variable.
(mi_autotest_source): New variable.
(count_newlines, mi_prepare_inline_tests)
(mi_get_inline_test, mi_continue_to_line)
(mi_run_inline_test, mi_tbreak)
(mi_send_resuming_command, mi_wait_for_stop): New functions.
* gdb.mi/mi-var-cp.exp: Move most content to the C file.
Run inline tests.
* gdb.mi/mi-var-cp.cc: Define tests here.
* lib/mi-support.exp (mi_runto_helper): Renamed
from mi_runto, added new parameter 'run_or_continue'.
(mi_runto): Use mi_runto_helper.
(mi_continue_to): Accept just function name as parameter.
Use mi_runto_helper.
* gdb.mi/mi-var-cmd.exp: Adjust to changes.
* gdb.mi/mi2-var-cmd.exp: Likewise.
Test for base in references.
* gdb.mi/mi-var-cp.cc: Add test code.
* gdb.mi/mi-var-cp.exp: Test for bases in references.
* gdb.mi/mi-watch.exp: Adjust to mi_runto changes.
* gdb.mi/mi2-watch.exp: Likewise.
* lib/mi-support.exp (mi_runto): Use temporary breakpoint.
(mi_list_varobj_children): New function.
* corefile.c (reopen_exec_file): Only check for an open exec file.
Use exec_file_attach.
* exec.c (exec_open): Make static.
(exec_file_command): Don't use target_preopen. Query directly about
changing the file.
* gdbcore.h (exec_open): Remove prototype.
gdb/testsuite/
* gdb.base/completion.exp: Update for change in "file" behavior.
* gdb.stabs/weird.exp: Likewise.
* lib/mi-support.exp (mi_gdb_file_cmd): Likewise.
* lib/gdb.exp (gdb_file_cmd): Likewise. Kill the program explicitly.
* lib/mi-support.exp (mi_gdb_test): Change -re to not be anchored.
* gdb.mi/mi-syn-frame.exp: Call mi_gdb_test twice instead of once for
commands that return an MI output command and an asyncronous MI output
command.
* gdb.mi/mi-console.exp: Ditto.
* gdb.mi/mi-basics.exp: Tell mi_gdb_start to use a PTY for inferior.
(test_setshow_inferior_tty): Add global mi_inferior_tty_name to scope.
Change tests to inferior-tty-set/show.
* gdb.mi/mi-console.exp: Tell mi_gdb_start to use a PTY for inferior.
(47-exec-next): Use mi_gdb_test to get GDB and Inferior output.
* gdb.mi/mi-syn-frame.exp: Tell mi_gdb_start to use a PTY for
inferior. Use mi_gdb_test to get GDB and Inferior output.
* lib/mi-support.exp (mi_inferior_spawn_id): Add inferior PTY
descriptor.
(mi_inferior_tty_name): Add inferior PTY file name.
(mi_gdb_start): Add INFERIOR_PTY parameter.
(mi_gdb_test): Add IPATTERN parameter.
Remove downloading, guessing the host executable, the calls to
gdb_file_cmd and gdb_target_cmd, and "load" support.
(infer_host_exec): New function broken out from gdb_load.
(gdb_load): New wrapper for gdbserver_gdb_load.
* lib/mi-support.exp (mi_gdb_target_cmd): New function, based on
gdb_target_cmd. Use -target-select.
(mi_gdb_file_cmd): New function, broken out from mi_gdb_load.
Download binaries to the host. Clear last_mi_remote_file when
we load a new binary.
(mi_gdb_load): Call mi_gdb_file_cmd. If gdbserver.exp is loaded,
call gdbserver_gdb_load and mi_gdb_target_cmd.
* gdb.base/callfuncs.exp: Make "print add" messages unique.
* gdb.base/ending-run.exp: Put spaces around "breakpoint" to stop
matching directories by the name breakpoint.
* gdb.base/pointers.exp: Make "ptype pppC" message consistent.
Make "continue to marker1" consistent.
* gdb.base/call-rt-st.exp: Make "finish out from loop_count"
message consistent.
* lib/gdb.exp: Put "the program is no longer running", and "the
program exited" in parenthesis.
* lib/mi-support.exp: Ditto.
* lib/mi-support.exp (mi_reinitialize_dir): Check mi level
to see whether we are using the new -environment-directory
command which resets via -r or the old version of the command
which may prompt the user. Part of fix for gdb/741.
* lib/mi-support.exp (mi_gdb_start): Verify the startup message
for mi1 and current mi is in correct format. New mi startup message
should be in mi console format. This is part of fix for PR gdb/604.
regexp for stopping at main. Could have multiple event notifications.
Don't assume that main was declared with no parameters.
(mi_next): Use mi_step_to.
(mi_step): Use mi_next_to.
* Makefile.in (UIOUT_CFLAGS): New macro. CFLAGS needed for uiout code
to be compiled. Defines UI_OUT.
(SUBDIR_MI_CFLAGS): Defines MI_OUT, not UI_OUT.
(INTERNAL_WARN_CFLAGS): Also include UIOUT_CFLAGS.
* configure.in (UIOUT_CFLAGS): New configuration variable.
(--with-uiout): New configuration option. Causes uiout code to
be compiled, instead of the old *printf one.
* configure: Regenerate.
* top.c (print_gdb_version): Test for and print MI_OUT, not UI_OUT.
* testsuite/lib/mi-support.exp (mi_gdb_start): Test for MI_OUT,
not UI_OUT.