summaryrefslogtreecommitdiff
path: root/gdb/mi
Commit message (Collapse)AuthorAgeFilesLines
* gdb:Tom Tromey2008-07-251-14/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tui/tui-hooks.c: Include observer.h. (tui_event_default, tui_old_event_hooks, tui_event_hooks): Remove. (tui_bp_created_observer, tui_bp_deleted_observer, tui_bp_modified_observer): New globals. (tui_install_hooks): Use observers, not events. (tui_remove_hooks): Likewise. * mi/mi-cmd-break.c: Include observer.h, not gdb-events.h. (mi_breakpoint_observers_installed, mi_can_breakpoint_notify): New globals. (breakpoint_notify): Check mi_can_breakpoint_notify. (breakpoint_hooks): Remove. (mi_cmd_break_insert): Attach observers. Don't use events. * tracepoint.c: Include observer.h, not gdb-events.h. (tracepoint_operation, trace_pass_command): Notify observer. * interps.c: Don't include gdb-events.h. (clear_interpreter_hooks): Don't call clear_gdb_event_hooks. * gdbarch.c: Rebuild. * gdbarch.sh: Emit include for observer.h, not gdb-events.h. (deprecated_current_gdbarch_select_hack): Notify observer. * breakpoint.h: Don't include gdb-events.h. * breakpoint.c: Don't include gdb-events.h. (condition_command): Notify observer. (commands_command): Likewise. (commands_from_control_command): Likewise. (mention, delete_breakpoint, set_ignore_count): Likewise. (disable_breakpoint, do_enable_breakpoint): Likewise. * Makefile.in (gdb_events_h): Remove. (breakpoint_h): Update. (COMMON_OBS): Remove gdb-events.o. (gdb-events.o): Remove. (breakpoint.o, gdbarch.o, interps.o, tracepoint.o, gdbtk-bp.o, gdbtk-hooks.o, mi-cmd-break.o, tui-hooks.o): Update. * gdb-events.c: Remove. * gdb-events.h: Remove. * gdb-events.sh: Remove. gdb/doc: * observer.texi (GDB Observers): Document new observers: breakpoint_created, breakpoint_deleted, breakpoint_modified, tracepoint_created, tracepoint_deleted, tracepoint_modified, architecture_changed. gdb/gdbtk: * generic/gdbtk-hooks.c: Include observer.h, not gdb-events.h. (gdbtk_add_hooks): Use observers, not events. (gdbtk_architecture_changed): Add argument, for observer. * generic/gdbtk-bp.c: Include observer.h. (gdb_set_bp): Notify observer. (gdb_set_bp_addr): Likewise.
* Skip varobj in running threads.Vladimir Prus2008-07-131-2/+16
| | | | | | * mi/mi-cmd-var.c (mi_cmd_var_update): If varobj's thread is not stopped, skip the varobj. * Makefile.in: Update dependencies.
* Enable all MI commands while inferiour is runningVladimir Prus2008-07-131-17/+0
| | | | | * mi/mi-main.c (mi_cmd_execute): Don't check if inferiour is executing.
* * mi/mi-main.c (mi_cmd_execute): Remove unused variable.Vladimir Prus2008-07-131-4/+1
| | | | Fix printing of frame, when frame is wrong.
* Implement -exec-continue/-exec-interrupt --all.Vladimir Prus2008-07-121-5/+21
| | | | | | | | | | * infcmd.c (continue_1): New, extracted from (continue_command): ...here. (interrupt_target_1): New, extracted from (interrupt_target_command): ...here. * inferior.h (continue_1, interrupt_target_1): New. * mi/mi-main.c (mi_cmd_exec_continue) (mi_cmd_exec_interrupt): Handle --all.
* Implement --thread and --frame.Vladimir Prus2008-07-123-0/+70
| | | | | | | | | * gdbthread.h (find_thread_id): Declare. * thread.c (find_thread_id): Make non-static. * mi/mi-main.c (mi_cmd_execute): Switch to the right thread and frame, if necessary. * mi/mi-parse.c (mi_parse): Handle --thread and --frame. * mi/mi-parse.h (strcut mi_parse): New fields thread and frame.
* Exited threads.Pedro Alves2008-07-111-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * thread.c (enum thread_state): New. (thread_state main_thread_running): Delete, in favor of... (thread_state main_thread_state): ... this. Update throughout. (clear_thread_inferior_resources): New, split from free_thread. (free_thread): Call clear_thread_inferior_resources. (init_thread_list): Set main thread to stopped state. (add_thread_silent): Take care of PTID reuses. (delete_thread): If deleting inferior_ptid or a thread with refcount > 0, mark it as exited, but still keep it in the list. Only notify of thread exits, if we haven't done so yet. (iterate_over_threads): Make it safe to delete threads while iterating over them. (do_captured_list_thread_ids): Don't account for exited threads. (thread_alive): Check for the THREAD_EXITED state, and don't set ptid to -1 on exited threads. (set_running): Update to account for extra possible states. (is_thread_state): New. (is_stopped, is_exited): New. (is_running): Implement in terms of is_thread_state. (any_running): Update. (print_thread_info): Update. Account for exited threads. Don't warn about missed frame restoring here, its done in the cleanup. (switch_to_thread): Don't read from a thread that has gone. (restore_current_thread): In non-stop mode, do a full context switch. (restore_selected_frame): Add a frame_level argument. Rewrite. (struct current_thread_cleanup): Add selected_frame_level and was_stopped members. (do_restore_current_thread_cleanup): Check if thread was stopped and still is, and if the target has registers, stack and memory before restoring the selected frame. Don't delete the cleanup argument here. (restore_current_thread_cleanup_dtor): New. (make_cleanup_restore_current_thread): Remove all arguments. Rewrite. (thread_apply_all_command): Update. Prune threads. (thread_apply_command): Update. (thread_command): Account for currently selected exited thread. (do_captured_thread_select): Check for a running thread. Prune threads. (_initialize_thread): Make "info threads", "thread", "thread apply", and "thread apply all" appliable without a selected thread. * gdbthread.h (struct thread_info): Replace running_ by state_. Add refcount. (is_exited, is_stopped): Declare. (make_cleanup_restore_current_thread): Remove all arguments. * infrun.c: Include "event-top.h". (fetch_inferior_event): In non-stop mode, restore selected thread and frame after handling the event and running breakpoint commands. Display GDB prompt if needed. (normal_stop): In non-stop mode, don't print thread switching notice. * cli/cli-decode.c (set_cmd_no_selected_thread_ok) (get_cmd_no_selected_thread_ok): New. * cli/cli-decode.h (CMD_NO_SELECTED_THREAD_OK): New. (set_cmd_no_selected_thread_ok, get_cmd_no_selected_thread_ok): Declare. * cli/cli-cmds.c: Set "pwd", "help", "info", "show" as no-selected-thread ok. * top.c (execute_command): Check for non no-selected-thread-ok commands. * linux-nat.c (struct saved_ptids, threads_to_delete) (record_dead_thread, prune_lwps): Delete. (exit_lwp): Unconditionally delete thread. (linux_nat_resume): Remove prune_lwps call. * infcmd.c (proceed_thread_callback): Check if !is_stopped instead of is_running. Adjust to make_cleanup_restore_current_thread interface change. * mi/mi-main.c (mi_cmd_execute): Only allow a few commands if the selected thread has exited. * inf-loop.c (inferior_event_handler): Don't display the prompt here. * varobj.c (c_value_of_root): Update. * defs.h (make_cleanup_dtor): Declare. * utils.c (make_cleanup_dtor): New. * Makefile.in (infrun.o): Depend on $(event_top_h).
* Per-thread commands.Pedro Alves2008-07-091-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * gdbthread.h: Remove unneeded forward declarations. Include "inferior.h". (struct thread_info): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi and stop_signal members. (save_infrun_state): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat parameters. (load_infrun_state): Add continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat parameters. * thread.c (load_infrun_state): In non-stop mode, load continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi and stop_signal. (save_infrun_state): Store continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (save_infrun_state): Store continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (free_thread): Clear The thread's stop_bpstat. * inferior.h (context_switch_to): Declare. * infrun.c (ecss): New global. (context_switch): Context switch continuations, intermediate_continuations, proceed_to_finish, step_over_calls, stop_step, step_multi, stop_signal and stop_bpstat. (wait_for_inferior): Use global ecss. (async_ecss, async_ecs): Delete. (fetch_inferior_event): Use global ecss. (context_switch_to): New. * top.c (execute_command): In non-stop, only check if the current thread is running, in all-stop, check if there's any thread running. * breakpoint.c (bpstat_remove_breakpoint): New. (bpstat_remove_breakpoint_callback): New. (delete_breakpoint): Clear the stop_bpstats of all threads. * mi/mi-main.c (mi_cmd_execute): In non-stop, only check if the current thread is running, in all-stop, check if there's any thread running. * Makefile.in (gdbthread_h): Depend on $(inferior_h).
* Add "executing" property to threads.Pedro Alves2008-07-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * inferior.h (target_executing): Delete. * gdbthread.h (struct thread_info): Add executing_ field. (set_executing, is_executing): New. * thread.c (main_thread_executing): New. (init_thread_list): Clear it and also main_thread_running. (is_running): Return false if target has no execution. (any_running, is_executing, set_executing): New. * top.c: Include "gdbthread.h". (target_executing): Delete. (execute_command): Replace target_executing check by any_running. * event-top.c: Include "gdbthread.h". (display_gdb_prompt, command_handler): Replace target_executing by is_running. * inf-loop.c: Include "gdbthread.h". Don't mark as not executing here. Replace target_executing by is_running. * infrun.c (handle_inferior_event): Mark all threads as not-executing. * linux-nat.c (linux_nat_resume): Don't mark thread as executing here. * stack.c (get_selected_block): Return null if inferior is executing. * target.c (target_resume): Mark resumed ptid as executing. * breakpoint.c (until_break_command): Replace target_executing check by is_executing. * remote.c (remote_async_resume): Don't mark inferior as executing here. * mi/mi-interp.c (mi_cmd_interpreter_exec): Replace target_executing by any_running. * mi/mi-main.c (mi_cmd_exec_interrupt, mi_cmd_execute) (mi_execute_async_cli_command): Replace target_executing by is_running. * frame.c (get_current_frame): Error out if the current thread is executing. (has_stack_frames): New. (get_selected_frame, deprecated_safe_get_selected_frame): Check has_stack_frames. * Makefile.in (event-top.o, frame.o, inf-loop.o, top.o): Depend on $(gdbthread_h).
* * mi/mi-interp.c (mi_on_resume): Don't try to reportVladimir Prus2008-07-051-0/+6
| | | | resumed thread it the thread list is empty.
* Implement -target-attach.Vladimir Prus2008-07-041-1/+1
| | | | * mi/mi-cmds.c (mi_cmds): Forward -target-attach to CLI attach.
* * mi/mi-cmds.c (mi_cmds): Route -exec-run, -exec-until,Vladimir Prus2008-06-293-75/+8
| | | | | | | | | | | | -target-download and -target-select via CLI, so that the quoting rules are the same as they were (unfortunately) in all prior gdb releases. * mi/mi-cmds.h (mi_cmd_exec_run, mi_cmd_exec_until) (mi_cmd_target_download, mi_cmd_target_select): Remove. * mi/mi-main.c (mi_cmd_exec_run, mi_cmd_exec_until) (mi_cmd_target_download, mi_cmd_target_select): Remove. (mi_cmd_execute): Set current_token even for commands routed via CLI.
* * mi/mi-main.c (enum captured_mi_execute_command_actions)Vladimir Prus2008-06-281-37/+2
| | | | | | | | | | | (captured_mi_execute_command_args): Remove. (captured_mi_execute_command): Cast the closure to mi_parse pointer, not to captured_mi_execute_command_args, and don't set the action field thereof. (mi_execute_command): Pass struct mi_parse, not captured_mi_execute_command_args to captured_mi_execute_command. (mi_execute_command): Remove (dead) code for suppressing printing prompt.
* * target.c (target_read_until_error): New.Vladimir Prus2008-06-261-2/+2
| | | | | | * target.h (target_read_until_error): Declare. * mi/mi-main.c (mi_cmd_data_read_memory): Use target_read_until_error.
* Kill the return value for all MI command functions.Vladimir Prus2008-06-2511-201/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | * mi/mi-cmds.h (enum mi_cmd_result): Remove. (mi_cmd_argv_ftype): Change return type to void. * mi/mi-main.c: Adjust all function that implement MI commands to return nothing. (struct captured_mi_execute_command_actions): Remove the rc field. (mi_cmd_execute): Return nothing. (mi_execute_async_cli_command): Return nothing. (mi_cmd_exec_interrupt): Don't print ^done here. (mi_cmd_target_select): Don't print ^connected here. (captured_mi_execute_command): Don't check for MI_CMD_DONE. Special-case -target-select and output ^connected, not ^done. * mi/mi-cmd-break.c: Adjust. * mi/mi-cmd-disas.c: Adjust. * mi/mi-cmd-env.c: Adjust. * mi/mi-cmd-file.c: Adjust. * mi/mi-cmd-stack.c: Adjust. * mi/mi-cmd-target.c: Adjust. * mi/mi-cmd-var.c: Adjust. * mi/mi-interp.c: Adjust. * mi/mi-symbol-cmds.c: Adjust.
* Emit ^running via observer.Vladimir Prus2008-06-253-58/+55
| | | | | | | | | | | | | * mi/mi-interp.c (mi_cmd_interpreter_exec): Do no print ^running here. (mi_on_resume): Print ^running if not previously output. * mi/mi-main.c (running_result_record_printed): New. (captured_mi_execute_command): Reset running_result_record_printed. Use running_result_record_printed to decide if we should skip ^done. (mi_execute_async_cli_command): Don't print ^running here. * mi/mi-main.h (current_token, running_result_record_printed): Declare.
* Implement *running.Vladimir Prus2008-06-101-0/+15
| | | | | | | | | | | | | | | | | | | | | * Makefile.in: Update dependencies. * gdbthread.h (struct thread_info): New field running_. (set_running, is_running): New. * thread.c (set_running, is_running): New. * inferior.h (suppress_normal_stop_observer): Rename to... (suppress_run_stop_observers): ..this. * infcmd.c (suppress_normal_stop_observer): Rename to... (suppress_run_stop_observers): ..this. (finish_command_continuation, finish_command): Adjust. * infcall.c (call_function_by_hand): Adjust. * infrun.c (normal_stop): Call set_running. * target.c (target_resume): New. Call set_running. * target.h (target_resume): Convert from macro to a function. * mi/mi-interp.c (mi_on_resume): New. (mi_interpreter_init): Register mi_on_resume.
* Use observers to report stop events in MI.Vladimir Prus2008-06-102-56/+21
| | | | | | | | | | | | * mi/mi-interp.c (mi_on_normal_stop): New. (mi_interpreter_init): Register mi_on_normal_stop. (mi_interpreter_exec_continuation): Remove. (mi_cmd_interpreter_exec): Don't register the above. * mi/mi-main.c (captured_mi_execute_command): Don't care about sync_execution. (mi_execute_async_cli_command): Don't install continuation. Don't print *stopped. (mi_exec_async_cli_cmd_continuation): Remove.
* Refactor varobj_update interface.Vladimir Prus2008-05-281-44/+34
| | | | | | | | | | | * varobj.c (varobj_update): Report changes as vector. Also return not just a list of varobj, but a list of special structures that tell what exactly has changed. * varobj.h (enum varobj_update_error): Rename to varobj_scope_status. (struct varobj_update_result_t): New. (varobj_update): Adjust prototype. * mi/mi-cmd-var.c: Adjust for changes.
* * symtab.h (enum address_class): Remove LOC_REGPARM andAndreas Schwab2008-05-271-8/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LOC_COMPUTED_ARG. (struct symbol): Add is_argument. (SYMBOL_IS_ARGUMENT): Define. * ada-lang.c (ada_add_block_symbols): Use SYMBOL_IS_ARGUMENT. * buildsym.c (finish_block): Likewise. * stack.c (print_frame_args, print_block_frame_locals) (print_frame_arg_vars): Likewise. * symtab.c (lookup_block_symbol): Likewise. * tracepoint.c (add_local_symbols): Likewise. * mi/mi-cmd-stack.c (list_args_or_locals): Likewise. * coffread.c (process_coff_symbol): Set SYMBOL_IS_ARGUMENT. * dwarf2read.c (new_symbol): Likewise. * mdebugread.c (parse_symbol): Likewise. * stabsread.c (define_symbol): Likewise. * ada-exp.y (select_possible_type_sym): Don't handle LOC_REGPARM and LOC_COMPUTED_ARG. * ada-lang.c (resolve_subexp, symtab_for_sym): Likewise. * ax-gdb.c (gen_var_ref): Likewise. * eval.c (evaluate_subexp_for_address): Likewise. * findvar.c (symbol_read_needs_frame, read_var_value): Likewise. * m2-exp.y (yylex): Likewise. * printcmd.c (address_info): Likewise. * symmisc.c (print_symbol, print_partial_symbols): Likewise. * tracepoint.c (collect_symbol, scope_info): Likewise. testsuite/: * gdb.base/frame-args.exp: Handle arguments that are optimized out.
* * symtab.h (enum address_class): Remove LOC_BASEREG andUlrich Weigand2008-05-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | LOC_BASEREG_ARG. (struct symbol): Remove "basereg" member of "aux_value" union. (SYMBOL_BASEREG): Remove. * ada-exp.y (select_possible_type_sym): Do not handle LOC_BASEREG or LOC_BASEREG_ARG. * ada-lang.c (resolve_subexp, symtab_for_sym): Likewise. (ada_add_block_symbols): Likewise. * ax-gdb.c (gen_var_ref): Likewise. * buildsym.c (finish_block): Likewise. * findvar.c (symbol_read_needs_frame, read_var_value): Likewise. * m2-exp.y (yylex): Likewise. * mi/mi-cmd-stack.c (list_args_or_locals): Likewise. * printcmd.c (address_info): Likewise. * stack.c (print_frame_args, print_block_frame_locals): Likewise. (print_frame_arg_vars): Likewise. * symmisc.c (print_symbol): Likewise. * symtab.c (lookup_block_symbol): Likewise. * tracepoint.c (collect_symbol, add_local_symbols): Likewise. (scope_info): Likewise.
* * symtab.h (enum address_class): Remove LOC_LOCAL_ARG.Ulrich Weigand2008-05-221-1/+0
| | | | | | | | | | | | | | | | | * ada-exp.y (select_possible_type_sym): Do not handle LOC_LOCAL_ARG. * ada-lang.c (resolve_subexp, symtab_for_sym): Likewise. (ada_add_block_symbols): Likewise. * ax-gdb.c (gen_var_ref): Likewise. * buildsyms.c (finish_block): Likewise. * findvar.c (symbol_read_needs_frame, read_var_value): Likewise. * m2-exp.y (yylex): Likewise. * mi/mi-cmd-stack.c (list_args_or_locals): Likewise. * printcmd.c (address_info): Likewise. * stack.c (print_frame_args, print_frame_arg_vars): Likewise. * symmisc.c (print_symbol, print_partial_symbols): Likewise. * symtab.c (lookup_block_symbol): Likewise. * tracepoint.c (collect_symbol, add_local_symbols): Likewise. (scope_info): Likewise.
* * symtab.h (lookup_symbol_in_language): Remove SYMTAB parameter.Ulrich Weigand2008-05-191-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (lookup_symbol): Likewise. * symtab.c (lookup_symbol_in_language): Remove SYMTAB parameter. (lookup_symbol): Likewise. (search_symbols): Update. * linespec.c (find_methods, collect_methods): Update. (add_matching_methods, add_constructors): Update. (decode_compound, decode_dollar, decode_variable): Update. (lookup_prefix_sym): Update. (symbol_found): Remove SYM_SYMTAB parameter. Use SYMBOL_SYMTAB (sym) instead. * gdbtypes.c (lookup_typename): Update. (lookup_struct, lookup_union, lookup_enum): Update. (lookup_template_type): Update. (check_typedef): Update. * language.c (lang_bool_type): Update. * mdebugread.c (parse_procedure): Update. * mi/mi-cmd-stack.c (list_args_or_locals): Update. * parse.c (write_dollar_variable): Update. * printcmd.c (address_info): Update. * source.c (select_source_symtab): Update. * stack.c (print_frame_args, print_frame_arg_vars): Update. * valops.c (find_function_in_inferior): Update. (value_struct_elt_for_reference): Update. * value.c (value_static_field, value_fn_field): Update. * alpha-mdebug-tdep.c (find_proc_desc): Update. * arm-tdep.c (arm_skip_prologue): Update. * mt-tdep.c (mt_skip_prologue): Update. * xstormy16-tdep.c (xstormy16_skip_prologue): Update. * ada-lang.h (struct ada_symbol_info): Remove SYMTAB member. * ada-lang.c (ada_add_block_symbols): Remove SYMTAB parameter. (add_defn_to_vec): Likewise. (ada_add_block_symbols): Likewise. (lookup_cached_symbol, cache_symbol): Likewise. (standard_lookup): Update. (ada_lookup_symbol_list): Update. * c-valprint.c (c_val_print): Update. * cp-support.c (cp_lookup_rtti_type): Update. * jv-lang.c (java_lookup_class, get_java_object_type): Update. * objc-lang.c (lookup_struct_typedef, find_imps): Update. * p-valprint.c (pascal_val_print): Update. * scm-lang.c (scm_lookup_name): Update. * c-exp.y: Update. * f-exp.y: Update. * jv-exp.y: Update. * m2-exp.y: Update. * objc-exp.y: Update. * p-exp.y: Update.
* * valprint.c (val_print): Add new language parameter and use itJoel Brobecker2008-05-062-4/+9
| | | | | | | | | | | | | | | | | | | instead of using the current_language. Update calls to val_print throughout. (common_val_print): Add new langauge parameter and pass it to val_print. * value.h (struct language_defn): Add opaque declaration. (val_print, common_val_print): Update declarations. * stack.c (print_frame_args): Update call to common_val_print using the appropriate language. * mi/mi-cmd-stack.c (list_args_or_locals): Likewise. * c-valprint, f-valprint.c, m2-valprint.c, mt-tdep.c, infcmd.c, mi/mi-main.c, jv-valprint.c, ada-valprint.c, varobj.c, p-valprint.c, scm-valprint.c, cp-valprint.c, sh64-tdep.c, printcmd.c: #include "language.h" if necessary. Update calls to val_print and common_val_print. * Makefile.in (mt-tdep.o, sh64-tdep.o, mi-cmds.o, mi-main.o): Update dependencies.
* 2008-05-03 Pedro Alves <pedro@codesourcery.com>Vladimir Prus2008-05-031-1/+15
| | | | | | | * thread.c (delete_thread): Call observer_notify_thread_exit. * mi/mi-interp.c (mi_interpreter_init): Register mi_thread_exit as thread_exit observer. (mi_thread_exit): New.
* * mi/mi-interp.c (mi_new_thread): Quote the thread id.Vladimir Prus2008-04-261-1/+1
|
* * mi/mi-cmds.h (mi_cmd_args_ftype): Remove.Vladimir Prus2008-04-244-180/+182
| | | | | | | | | | | | | | | | | Adjust all prototypes using mi_cmd_args_ftype to use mi_cmd_argv_ftype. (struct mi_cmd): Remove the args_func field. * mi/mi-cmds.c: Don't provide value for the args_func field. * mi/mi-main.c (mi_execute_async_cli_command) (mi_cmd_exec_run, mi_cmd_exec_next, mi_cmd_exec_next_instruction) (mi_cmd_exec_step, mi_cmd_exec_step_instruction) (mi_cmd_exec_finish, mi_cmd_exec_until, mi_cmd_exec_return) (mi_cmd_exec_continue, mi_cmd_exec_interrupt) (mi_cmd_target_download): Adjust. (mi_cmd_target_select): Adjust. Pass 0 for from_tty parameter. (mi_cmd_execute): Do not check for args_func. (mi_execute_async_cli_command): Adjust. * mi/mi-parse.c: Don't check for args_func.
* * mi/mi-main.c (last_async_command): Rename to current_token.Vladimir Prus2008-04-241-56/+18
| | | | | | | | | | | | | (previous_async_command): Remove. (mi_cmd_gdb_exit): Adjust. (mi_cmd_exec_interrupt): Don't dance with previous_async_command. (mi_cmd_target_select): Adjust. (mi_cmd_execute): Don't set previous_async_command. Free token here even in async mode. (mi_execute_async_cli_command): Adjust. (mi_exec_async_cli_cmd_continuation): Adjust. Do not free the token. (mi_load_progress): Adjust.
* exec_cleanup murder.Vladimir Prus2008-04-242-26/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * breakpoint.c (until_break_command_continuation): Add the 'error' parameter. Directly delete the breakoint as opposed to running cleanups. (until_break_command): Install continuation only after starting the target. Don't use exec cleanups, use ordinary cleanups. Discard cleanups is successfully started the target in async mode. (make_cleanup_delete_breakpoint): Remove. * breakpoint.h (make_cleanup_delete_breakpoint): Remove declaration. * defs.h (do_exec_cleanups, make_exec_cleanup): Remove declarations. (struct continations): Add the 'error' parameter to the continuation_hook field. (add_continuation, do_all_continuations) (add_intermediate_continuation) (do_all_intermediate_continuations): Add the 'error' parameter. * exceptions.c (throw_exception): Don't call do_exec_cleanups. * inf-loop.c (inferior_event_handler): Instead of calling discard_all_continuations, use do_all_continuations with 1 as 'error' parameter. Pass 0 as 'error' parameter in existing uses of discard_all_continuations. * infcmd.c (step_1): Do not use exec cleanup. For async case, discard cleanups. (step_once): Install continuation only after resuming the target. (step_1_continuation): Disable longjmp breakpoint on error. (finish_command_continuation): Add the error parameter. Delete the finish breakpoint directly, do not use cleanups. (finish_command): Do not use exec_cleanups. Always setup continuation. For sync case, immediately run them. (attach_command_continuation): Add the error parameter. * infrun.c (fetch_inferior_event): Do not use exec cleanups to remove step_resume_breakpoint -- adjust delete it directly. * interps.c (interp_set): Adjust call to do_all_continations. * mi/mi-interp.c (mi_interpreter_exec_continuation): Do not do exec cleanups. * mi/mi-main.c (mi_cmd_target_select): Do not do exec cleanups. (mi_cmd_execute): Do not use exec_cleanup. (mi_execute_async_cli_command): Simplify the string concatenation logic. Do no use exec cleanup. (mi_exec_async_cli_cmd_continuation): New parameter error. Free last_async_command. * top.c (command_line_handler_continuation): New parameter error. * utils.c (exec_cleanup_chain, make_exec_cleanup) (do_exec_cleanups): Remove. (add_continuation, do_all_continations) (add_intermediate_continuation) (do_all_intermediate_continuations): New parameter error.
* * mi/mi-cmd-var.c (varobj_update_one): Print newVladimir Prus2008-04-191-0/+2
| | | | value for variable objects that changed type.
* Fix @-varobjs.Vladimir Prus2008-04-131-0/+1
| | | | | | | * varobj.c (value_of_root): Update the expression for floating varobjs. * mi/mi-cmd-var.c (varobj_update_one): If type has changed, report that.
* gdb/ChangeLogMarc Khouzam2008-04-091-27/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-04-09 Marc Khouzam <marc.khouzam@ericsson.com> * mi/mi-cmd-var.c: Include "mi-getopt.h". (mi_parse_format): New. Factored out from mi_cmd_var_set_format. (mi_cmd_var_set_format): Use new mi_parse_format. (mi_cmd_var_evaluate_expression): Support for -f option to specify format. * Makefile.in (mi-cmd-var.o): Update dependencies. * varobj.h (varobj_get_formatted_value): Declare. * varobj.c (my_value_of_variable): Added format parameter. (cplus_value_of_variable): Likewise. (java_value_of_variable): Likewise. (c_value_of_variable): Likewise. Evaluate expression based on format parameter. (struct language_specific): Add format parameter to function member *value_of_variable. (varobj_get_formatted_value): New. (varobj_get_value): Added format parameter to method call. gdb/doc/ChangeLog 2008-04-09 Marc Khouzam <marc.khouzam@ericsson.com> * gdb.texinfo (GDB/MI Variable Objects): Add anchor to -var-set-format. Add -f option to -var-evaluate-expression. gdb/testsuite/ChangeLog 2008-04-09 Marc Khouzam <marc.khouzam@ericsson.com> * gdb.mi/mi2-var-display.exp: Added tests for the new -f option of -var-evaluate-expression. * gdb.mi/mi2-var-display.exp: Likewise.
* gdb/Pedro Alves2008-04-043-193/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-04-04 Pedro Alves <pedro@codesourcery.com> * mi/mi-cmds.h (enum mi_cmd_result): Delete MI_CMD_ERROR. (mi_error_message): Delete declaration. * mi/mi-interp.c (mi_cmd_interpreter_exec): Call error instead of returning MI_CMD_ERROR. * mi/mi-main.c (mi_error_message): Delete. (mi_cmd_exec_interrupt): (mi_cmd_thread_select, mi_cmd_thread_list_ids) (mi_cmd_thread_info): Call error instead of returning MI_CMD_ERROR. (mi_cmd_data_list_register_values): Call error instead of returning MI_CMD_ERROR. Adapt to new get_register interface. (get_register): Change return typo to void. Call error instead of returning MI_CMD_ERROR. (mi_cmd_data_write_register_values): Call error instead of returning MI_CMD_ERROR. (mi_cmd_list_features): Return MI_CMD_DONE. (captured_mi_execute_command): Remove MI_CMD_ERROR handling. (mi_execute_command): Always print exceptions with -error. gdb/testsuite/ 2008-04-04 Pedro Alves <pedro@codesourcery.com> * gdb.mi/mi-disassemble.exp, gdb.mi/mi-stack.exp, gdb.mi/mi-syn-frame.exp, gdb.mi/mi-var-block.exp, gdb.mi/mi-var-cmd.exp, gdb.mi/mi-var-display.exp, gdb.mi/mi2-disassemble.exp, gdb.mi/mi2-stack.exp, gdb.mi/mi2-syn-frame.exp, gdb.mi/mi2-var-block.exp, gdb.mi/mi2-var-cmd.exp, gdb.mi/mi2-var-display.exp: Update to not expect an mi error duplicated in stderr.
* (enum captured_mi_execute_command_actions):Nick Roberts2008-03-271-4/+4
| | | | Spell suppress in EXECUTE_COMMAND_SUPPRESS_PROMPT correctly.
* * varobj.h (varobj_floating_p): Declare.Vladimir Prus2008-03-261-2/+3
| | | | | | * varobj.c (varobj_floating_p): New. * mi/mi-cmd-var.c (mi_cmd_var_update): When passed '@' as the name, update all floating varobjs.
* * varobj.c (struct varobj_root): New component thread_id.Vladimir Prus2008-03-241-0/+5
| | | | | | | | | | (varobj_get_thread_id, check_scope): New functions. (c_value_of_root): Use check_scope. Switch to the proper thread if necessary. * varobj.h (varobj_get_thread_id): New extern. * mi/mi-cmd-var.c (print_varobj): Add thread-id field.
* Implement -thread-info.Vladimir Prus2008-03-153-2/+21
| | | | | | | | | | | | | | | | * gdbthread.h (print_thread_info): Declare. * thread.c (print_thread_info): New, extracted from info_threads_command and adjusted to work for CLI and MI. (info_threads_command): Use print_thread_info. * Makefile.in: Update dependencies. * mi/mi-cmds.c (mi_cmds): Specify a handler for -thread-info. * mi/mi-cmds.h (mi_cmd_thread_info): Declare. * mi/mi-main.c (mi_cmd_thread_info): New. (mi_cmd_list_features): Include 'thread-info'.
* Async mode fixes.Vladimir Prus2008-03-141-17/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Makefile.in (infcmd.o, inf-loop.o): Update dependencies. * breakpoint.c (bpstat_do_actions): In async mode, don't jump to top expecting stop_bpstat to be already updated. * event-loop.c (start_event_loop): Call async_enable_stdin on exception. * event-top.c (async_enable_stdin): Do nothing if sync_execution is not set. (command_handler): Do not setup continuation here. (command_line_handler_continuation): Move to... * top.c (command_line_handler_continuation): ... here. (execute_command): In async mode, register continuation. Don't check frame's language in running in async mode. * exceptions.c (throw_exception): Don't do exec_error_cleanups. * inf-loop.c (complete_execution): Inline into... (inferior_event_handler): ... here. Clear target_executing before doing any cleanups. Don't try to show prompt if the target was resumed. * infcmd.c (signal_command): Add support for async mode. (finish_command): Only add continuation if the target was successfully resumed. * remote.c (init_async_opts): Register to_get_thread_local_address handler. * mi/mi-interp.c (mi_cmd_interpreter_exec): Don't mess with sync_execution. * tui/tui-interp.c (tui_command_loop): Call async_enable_stdin on exception.
* Implement MI notification for new threads.Vladimir Prus2008-03-141-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/observer.texi (new_thread): Document. * observer.sh: Forward declare struct thread_info. * thread.c (add_thread): Notify observer. * interps.h (interp_init_ftype): New parameter top_level. (interp_set): Likewise. (top_level_interpreter_data): Declare. * interps.c (interp_set): New parameter top_level. Pass it to interpreter's init function. Remember top level interpreter. (interpreter_exec_cmd): Adjust. (top_level_interpreter_data): New. * main.c (captured_main): Pass 1 for top_level parameter of interp_set. * cli/cli-interp.c (cli_interpreter_init): New parameter top_level. * tui/tui-interp.c (tui_init): New parameter top_level. * mi/mi-interp.c (mi_new_thread): New. (mi_interpreter_init): If top level, register observer for new threads. * Makefile.in (mi-interp.o, thread.o): Update dependencies.
* * mi/mi-interp.c (mi_command_loop): RemoveVladimir Prus2008-03-081-38/+0
| | | | commented-out code.
* * breakpoint.c (break_command_1): Return void.Vladimir Prus2008-02-011-30/+32
| | | | | | | | | | | | (break_command_really): Return void. Rethrow exceptions instead of returning. (gdb_breakpoint): Remove the error_message parameter. Return void. Rename to set_breakpoint. * gdb.h (gdb_breakpoint): Rename and move to... * breakpoint.h (set_breakpoint): ...here. * mi/mi-cmb-break.c (mi_cmd_break_insert): Restore event hooks even if exception is thrown. Adjust to gdb_breakpoint interface changes.
* Use vector for varobj_list_children interface.Vladimir Prus2008-01-301-15/+10
| | | | | | | | | | | * gdb/varobj.c (varobj_list_children): Return vector of varobjs. * gdb/varobj.h (varobj_list_children): Adjust prototype. (varobj_p): Declare. Declare vector thereof. * mi/mi-cmd-var.c (mi_cmd_var_list_children): Adjust for varobj_list_children change. * Makefile.in (varobj_h): Update dependencies.
* (mi_cmd_file_list_exec_source_file): Add fieldNick Roberts2008-01-301-4/+6
| | | | for preprocessor macro information. Formatting changes.
* (mi_cmd_var_set_format): Add value field to output.Nick Roberts2008-01-231-0/+3
|
* Updated copyright notices for most files.Daniel Jacobowitz2008-01-0124-24/+27
|
* * mi/mi-main.c (mi_cmd_list_features): AnnounceVladimir Prus2007-12-181-0/+1
| | | | the 'pending-breakpoints' feature.
* * mi/mi-main.c: Remove code that was commented out in 1999.Joel Brobecker2007-12-161-30/+0
|
* Add support for pending breakpoints in MI.Vladimir Prus2007-12-141-9/+10
| | | | | | | | * gdb.h (gdb_breakpoint): Add parameter pending. * breakpoint.c (gdb_breakpoint): Add parameter pending. * mi/mi-cmd-break.c (mi_break_insert): Change comment to refer to manual. Add support for the -f flag, for pending breakpoint.
* * remote.c (remote_cmdlist): New variable.Daniel Jacobowitz2007-11-303-0/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (PACKET_vFile_open, PACKET_vFile_pread, PACKET_vFile_pwrite) (PACKET_vFile_close, PACKET_vFile_unlink): New constants. (remote_buffer_add_string, remote_buffer_add_bytes) (remote_buffer_add_int, remote_hostio_parse_result) (remote_hostio_send_command, remote_hostio_open, remote_hostio_pwrite) (remote_hostio_pread, remote_hostio_close, remote_hostio_unlink) (remote_fileio_errno_to_host, remote_hostio_error, fclose_cleanup) (remote_hostio_close_cleanup, remote_file_put, remote_file_get) (remote_file_delete, remote_put_command, remote_get_command) (remote_delete_command, remote_command): New functions. (_initialize_remote): Register new packets and commands. * Makefile.in (gdb_fileio_h): New variable. (remote.o): Update. (SUBDIR_MI_OBS): Add mi-cmd-target.o. (SUBDIR_MI_SRCS): Add mi/mi-cmd-target.c. (mi-cmd-target.o): New rule. * mi/mi-cmd-target.c: New file. * mi/mi-cmds.c (mi_cmds): Add target-file-delete, target-file-get, and target-file-put. * mi/mi-cmds.h (mi_cmd_target_file_get, mi_cmd_target_file_put) (mi_cmd_target_file_delete): Declare. * remote.h (remote_file_put, remote_file_get, remote_file_delete): Declare. * NEWS: Describe new file transfer support. * gdb.texinfo (Debugging Programs with Multiple Processes): Correct formatting. (Remote Debugging): Add File Transfer section. (Remote Configuration): Document Host I/O packets. (GDB/MI): Add GDB/MI File Transfer Commands section. (Remote Protocol): Add Host I/O Packets section. (Packets): Add vFile. * Makefile.in (OBS): Add hostio.o. (hostio.o): New rule. * server.h (handle_vFile): Declare. * hostio.c: New file. * server.c (handle_v_requests): Take packet_len and new_packet_len for binary packets. Call handle_vFile. (main): Update call to handle_v_requests. * gdb.server/file-transfer.exp, gdb.server/transfer.txt, gdb.mi/mi-file-transfer.exp: New.
* (print_varobj): Revert change from 2007-08-31.Nick Roberts2007-11-271-8/+12
| | | | (mi_print_value_p): Guard against type = NULL.