(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.
* interps.c (clear_interpreter_hooks): Do not clear
deprecated_registers_changed_hook.
* regcache.c (registers_changed): Do not call it.
* top.c (deprecated_registers_changed_hook): Do not define it.
* mi/mi-interp.c (mi_command_loop): Do not clear it.
* tui/tui-hooks.c (tui_install_hooks): Do not install it.
(tui_remove_hooks): Do not remove it.
(tui_selected_frame_level_changed_hook): Check for negative level.
Use get_selected_frame.
(tui_registers_changed_hook): Deleted.
* varobj.h (enum varobj_update_error): New enum.
* varobj.c (struct varobj_root): Add is_valid member.
(varobj_get_type): Check for invalid varobj.
(varobj_get_attributes): Likewise.
(variable_editable):Likewise.
(varobj_update): Likewise. Use varobj_update_error.
(new_root_variable): Set root varobj as valid by default.
(varobj_invalidate): New function.
* symfile.c (clear_symtab_users): Use varobj_invalidate.
* mi/mi-cmd-var.c (varobj_update_one): Change return type to void.
Use varobj_update_error.
* gdb.mi/mi-var-block.exp, gdb.mi/mi2-var-block.exp
* gdb.mi/mi-var-child.exp, gdb.mi/mi2-var-child.exp
* gdb.mi/mi-var-child-f.exp, gdb.mi/mi-var-cmd.exp
* gdb.mi/mi2-var-cmd.exp, gdb.mi/mi-var-display.exp
* gdb.mi/mi2-var-display.exp, gdb.mi/gdb701.exp
* gdb.mi/gdb792.exp, gdb.mi/gdb792.exp
* lib/mi-support.exp:
Update tests to include value field in output of -var-create.
(rusage): Declare if HAVE_GETRUSAGE.
(current_command_ts, do_timings): New static variables.
(timestamp, print_diff_now, print_diff, timeval_diff):
New static timing functions.
(mi_cmd_enable_timings): New function for new MI command.
(captured_mi_execute_command, mi_execute_async_cli_command):
Call timing functions.
* mi/mi-cmds.c (mi_cmds): Add entry for new MI command
-enable-timings.
* mi/mi-cmds.h (mi_cmd_enable_timings): New extern.
* mi/mi-parse.h: (mi_timestamp): New structure.
(mi_parse): Add mi_timestamp* member.
other variables.
(gdbmi-send): Ensure any text properties can be removed.
(gdbmi-prompt1): Update to gdb-ui.el
(gud-gdbmi-marker-filter): Defer setting of gud-running.
Keep gdb-done-regexp for partial-output-buffer.
(gdb-stack-list-frames-handler): Add face to function names.
* dcache.c (dcache_write_line): Use target_write.
(dcache_read_line): Use target_read.
* mi/mi-main.c (mi_cmd_data_read_memory): Use target_read.
* symfile.c (struct load_section_data): Add new per-section
members.
(load_progress): New function.
(load_section_callback): Pass load_progress to the new
target_write_with_progress.
* target.c (current_xfer_partial, memory_xfer_partial): New.
(target_xfer_partial): New prototype.
(target_xfer_memory, target_xfer_partial_p, xfer_using_stratum)
(do_xfer_memory, target_xfer_memory_partial)
(target_read_memory_partial, target_write_memory_partial): Delete.
(trust_readonly): Move higher in the file.
(update_current_target): Use current_xer_partial.
(target_xfer_partial): Use memory_xfer_partial. Handle
TARGET_OBJECT_RAW_MEMORY specially.
(target_read_memory): Use target_read.
(target_write_memory): Use target_write.
(default_xfer_partial): Call to_xfer_partial directly.
(target_write_with_progress): New function, based on target_write.
(target_write): Call it.
* target.h (enum target_object): Add TARGET_OBJECT_RAW_MEMORY.
(target_write_with_progress): New prototype.
(do_xfer_memory, target_read_memory_partial)
(target_write_memory_partial): Delete prototypes.
Try to deal with continuation line.
(gdbmi, gdbmi-prompt1, gud-gdbmi-marker-filter): Update to new
variable names.
(gdb-break-list-regexp, gdb-stack-list-frames-regexp):
Future proof against new fields being added to MI output.
(gdbmi-prompt2, gdb-break-list-handler,gdb-get-source-file)
(gdbmi-frame-handler): Update to new variable name
gdb-get-buffer-create.
(gdbmi-frame-handler): Use hollow-right-triangle for all selected
frames which except the innermost (where execution has stopped).
(gdb-break-list-regexp): Match "what" field if present.
(gdb-stack-list-frames-regexp): Match "from" field if present.
(gdb-stack-list-frames-handler): Present output like "info
breakpoints" so regexps can be shared with gdb-ui
Daniel Jacobowitz <dan@codesourcery.com>
* mi/mi-cmds.h (mi_no_values, mi_simple_values, mi_all_values): New
declarations.
* mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Use string
constants instead of literals for MI command options.
* mi/mi-cmd-var.c (mi_no_values, mi_simple_values, mi_all_values):
New variables.
(mi_parse_values_option, mi_print_value_p): New functions.
(mi_cmd_var_list_children): Use mi_parse_values_option and
mi_print_value_p.
(mi_cmd_var_update): Support a PRINT_VALUES option. Update calls
to varobj_update_one.
(varobj_update_one): Take a print_values argument. Call
mi_print_value_p.
* varobj.c (varobj_get_gdb_type): New function.
* varobj.h (varobj_get_gdb_type): New prototype.