5589af0e66
Executing a gdb script that runs the inferior (from the command line with -x), and has it hit breakpoints with breakpoint commands that themselves run the target, is currently broken on async targets (Linux, remote). While we're executing a command list or a script, we force the interpreter to be sync, which results in some functions nesting an event loop and waiting for the target to stop, instead of returning immediately and having the top level event loop handle the stop. The issue with this bug is simply that bpstat_do_actions misses checking whether the interpreter is sync. When we get here, in the case of executing a script (or, when the interpreter is sync), the program has already advanced to the next breakpoint, through maybe_wait_sync_command_done. We need to process its breakpoints immediately, just like with a sync target. Tested on x86_64 Fedora 20. gdb/ 2015-01-14 Pedro Alves <palves@redhat.com> PR gdb/17525 * breakpoint.c: Include "interps.h". (bpstat_do_actions_1): Also check whether the interpreter is async. gdb/testsuite/ 2015-01-14 Pedro Alves <palves@redhat.com> Joel Brobecker <brobecker@adacore.com> PR gdb/17525 * gdb.base/bp-cmds-execution-x-script.c: New file. * gdb.base/bp-cmds-execution-x-script.exp: New file. * gdb.base/bp-cmds-execution-x-script.gdb: New file.
330 lines
12 KiB
Text
330 lines
12 KiB
Text
2015-01-14 Pedro Alves <palves@redhat.com>
|
||
|
||
PR gdb/17525
|
||
* breakpoint.c: Include "interps.h".
|
||
(bpstat_do_actions_1): Also check whether the interpreter is
|
||
async.
|
||
|
||
2015-01-14 Pedro Alves <palves@redhat.com>
|
||
|
||
PR cli/17828
|
||
* infrun.c (reinstall_readline_callback_handler_cleanup): Don't
|
||
reinstall if the interpreter is sync.
|
||
|
||
2015-01-13 Doug Evans <dje@google.com>
|
||
|
||
* objfiles.c (objfile_filename): New function.
|
||
* objfiles.h (objfile_filename): Declare it.
|
||
(objfile_name): Add function comment.
|
||
* python/py-objfile.c (objfpy_lookup_objfile_by_name): Try both the
|
||
bfd file name (which may be realpath'd), and the original name.
|
||
|
||
2015-01-13 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* NEWS: Create a new section for the next release branch.
|
||
Rename the section of the current branch, now that it has
|
||
been cut.
|
||
|
||
2015-01-13 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
GDB 7.9 branch created (92fc2e6978d9a7c8324c7e851dbee59e22ec7a37):
|
||
* version.in: Bump version to 7.9.50.DATE-cvs.
|
||
|
||
2015-01-13 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* nat/linux-procfs.c (linux_proc_attach_tgid_threads):
|
||
Remove trailing new-line in argument of call to warning.
|
||
|
||
2015-01-13 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* linux-nat.c (attach_proc_task_lwp_callback): Remove trailing
|
||
new-line in argument of call to "warning".
|
||
|
||
2015-01-13 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* ada-lang.c (ada_lookup_symbol_nonlocal): If name not found
|
||
in static block, then try searching for primitive types.
|
||
|
||
2015-01-12 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* top.h (gdb_add_history): Declare.
|
||
* top.c (command_count): New variable.
|
||
(gdb_add_history): New function.
|
||
(gdb_safe_append_history): New static function.
|
||
(quit_force): Call it.
|
||
(command_line_input): Use gdb_add_history instead of
|
||
add_history.
|
||
* event-top.c (command_line_handler): Likewise.
|
||
|
||
2015-01-12 James Clarke <jrtc27@jrtc27.com> (tiny patch)
|
||
|
||
PR gdb/17046
|
||
* darwin-nat.c: Replace <machine/setjmp.h> #include by
|
||
<setjmp.h> #include.
|
||
|
||
2015-01-11 Doug Evans <xdje42@gmail.com>
|
||
|
||
* dwarf2read.c (compute_delayed_physnames): Use TYPE_FN_FIELD_PHYSNAME.
|
||
|
||
2015-01-11 Doug Evans <xdje42@gmail.com>
|
||
|
||
PR gdb/15830
|
||
* NEWS: The "maint demangle" command is renamed as "demangle".
|
||
* demangle.c: #include cli/cli-utils.h, language.h.
|
||
(demangle_command): New function.
|
||
(_initialize_demangle): Add new command "demangle".
|
||
* maint.c (maintenance_demangle): Stub out.
|
||
(_initialize_maint_cmds): Update help text for "maint demangle",
|
||
and mark as deprecated.
|
||
|
||
2015-01-11 Mark Kettenis <kettenis@gnu.org>
|
||
|
||
* inf-ptrace.c (inf_ptrace_follow_fork): Adjust now that
|
||
inferior_thread is a function.
|
||
|
||
2015-01-09 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* Makefile.in (.y.c): Don't munge yacc's #line
|
||
directives.
|
||
|
||
2015-01-09 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* utils.c (defaulted_query): Rewrite to use gdb_readline_wrapper
|
||
to prompt for input.
|
||
* tui/tui-hooks.c (tui_query_hook): Remove.
|
||
(tui_install_hooks): Don't set deprecated_query_hook.
|
||
* tui/tui-io.c (tui_redisplay_readline): Fix off-by-one error in
|
||
height calculation. Always update the command window's cur_line.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* breakpoint.c (hardware_breakpoint_inserted_here_p): New
|
||
function.
|
||
* breakpoint.h (hardware_breakpoint_inserted_here_p): New
|
||
declaration.
|
||
* linux-nat.c (linux_nat_status_is_event): Move higher up in file.
|
||
(linux_resume_one_lwp): Store the thread's PC. Adjust to clear
|
||
stop_reason.
|
||
(check_stopped_by_watchpoint): New function.
|
||
(save_sigtrap): Reimplement.
|
||
(linux_nat_stopped_by_watchpoint): Adjust.
|
||
(linux_nat_lp_status_is_event): Delete.
|
||
(stop_wait_callback): Only call save_sigtrap after storing the
|
||
pending status.
|
||
(status_callback): If the thread had been stopped for a breakpoint
|
||
that has since been removed, discard the event and resume the LWP.
|
||
(count_events_callback, select_event_lwp_callback): Use
|
||
lwp_status_pending_p instead of linux_nat_lp_status_is_event.
|
||
(cancel_breakpoint): Rename to ...
|
||
(check_stopped_by_breakpoint): ... this. Record whether the LWP
|
||
stopped for a software breakpoint or hardware breakpoint.
|
||
(select_event_lwp): Only give preference to the stepping LWP in
|
||
all-stop mode. Adjust comments.
|
||
(stop_and_resume_callback): Remove references to new_pending_p.
|
||
(linux_nat_filter_event): Likewise. Leave exit events of the
|
||
leader thread pending here. Handle signal short circuiting here.
|
||
Only call save_sigtrap after storing the pending waitstatus.
|
||
(linux_nat_wait_1): Remove 'retry' label. Remove references to
|
||
new_pending. Don't handle leaving events the caller is not
|
||
interested in pending here, nor handle signal short-circuiting
|
||
here. Also give equal priority to all LWPs that have had events
|
||
in non-stop mode. If reporting a software breakpoint event,
|
||
unadjust the LWP's PC.
|
||
* linux-nat.h (enum lwp_stop_reason): New.
|
||
(struct lwp_info) <stop_pc>: New field.
|
||
(struct lwp_info) <stopped_by_watchpoint>: Delete field.
|
||
(struct lwp_info) <stop_reason>: New field.
|
||
* x86-linux-nat.c (x86_linux_prepare_to_resume): Adjust.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* linux-nat.c (linux_handle_extended_wait) <PTRACE_EVENT_EXEC>:
|
||
Set the LWP's 'resumed' flag.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* linux-nat.c (linux_resume_one_lwp): New function.
|
||
(resume_lwp): Use lwp_status_pending_p and linux_resume_one_lwp.
|
||
(linux_nat_resume): Use lwp_status_pending_p and
|
||
linux_resume_one_lwp.
|
||
(linux_handle_syscall_trap): Use linux_resume_one_lwp.
|
||
(linux_handle_extended_wait): Use linux_resume_one_lwp.
|
||
(status_callback, running_callback): Use lwp_status_pending_p.
|
||
(lwp_status_pending_p): New function.
|
||
(stop_and_resume_callback): Use lwp_status_pending_p.
|
||
(linux_nat_filter_event): Use linux_resume_one_lwp.
|
||
(linux_nat_wait_1): Always use status_callback to look for an LWP
|
||
with a pending status. Use linux_resume_one_lwp.
|
||
(resume_stopped_resumed_lwps): Use lwp_status_pending_p and
|
||
linux_resume_one_lwp.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* breakpoint.c (bp_location_inserted_here_p): New function,
|
||
factored out from ...
|
||
(breakpoint_inserted_here_p): ... here. Use
|
||
ALL_BP_LOCATIONS_AT_ADDR.
|
||
(software_breakpoint_inserted_here_p): Use
|
||
bp_location_inserted_here_p and ALL_BP_LOCATIONS_AT_ADDR.
|
||
|
||
2014-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
Skip enabling event reporting if the kernel supports
|
||
PTRACE_EVENT_CLONE.
|
||
* linux-thread-db.c: Include "nat/linux-ptrace.h".
|
||
(thread_db_use_events): New function.
|
||
(try_thread_db_load_1): Check thread_db_use_events before enabling
|
||
event reporting.
|
||
(update_thread_state): New function.
|
||
(attach_thread): Use it. Check thread_db_use_events before
|
||
enabling event reporting.
|
||
(thread_db_detach): Check thread_db_use_events before disabling
|
||
event reporting.
|
||
(find_new_threads_callback): Check thread_db_use_events before
|
||
enabling event reporting. Update the thread's state if not using
|
||
libthread_db events.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* linux-nat.c (lin_lwp_attach_lwp): Assert that the lwp id we're
|
||
about to wait for is > 0.
|
||
* linux-thread-db.c (find_new_threads_callback): Ignore thread if
|
||
the kernel thread ID is -1.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* linux-nat.c (attach_proc_task_lwp_callback): New function.
|
||
(linux_nat_attach): Use linux_proc_attach_tgid_threads.
|
||
(wait_lwp, linux_nat_filter_event): If not set yet, set the lwp's
|
||
ptrace option flags.
|
||
* linux-nat.h (struct lwp_info) <must_set_ptrace_flags>: New
|
||
field.
|
||
* nat/linux-procfs.c: Include <dirent.h>.
|
||
(linux_proc_get_int): New parameter "warn". Handle it.
|
||
(linux_proc_get_tgid): Adjust.
|
||
(linux_proc_get_tracerpid): Rename to ...
|
||
(linux_proc_get_tracerpid_nowarn): ... this.
|
||
(linux_proc_pid_get_state): New function, factored out from
|
||
(linux_proc_pid_has_state): ... this. Add new parameter "warn"
|
||
and handle it.
|
||
(linux_proc_pid_is_gone): New function.
|
||
(linux_proc_pid_is_stopped): Adjust.
|
||
(linux_proc_pid_is_zombie_maybe_warn)
|
||
(linux_proc_pid_is_zombie_nowarn): New functions.
|
||
(linux_proc_pid_is_zombie): Use
|
||
linux_proc_pid_is_zombie_maybe_warn.
|
||
(linux_proc_attach_tgid_threads): New function.
|
||
* nat/linux-procfs.h (linux_proc_get_tgid): Update comment.
|
||
(linux_proc_get_tracerpid): Rename to ...
|
||
(linux_proc_get_tracerpid_nowarn): ... this, and update comment.
|
||
(linux_proc_pid_is_gone): New declaration.
|
||
(linux_proc_pid_is_zombie): Update comment.
|
||
(linux_proc_pid_is_zombie_nowarn): New declaration.
|
||
(linux_proc_attach_lwp_func): New typedef.
|
||
(linux_proc_attach_tgid_threads): New declaration.
|
||
* nat/linux-ptrace.c (linux_ptrace_attach_fail_reason): Adjust to
|
||
use nowarn functions.
|
||
(linux_ptrace_attach_fail_reason_string): Move here from
|
||
gdbserver/linux-low.c and rename.
|
||
(ptrace_supports_feature): If the current ptrace options are not
|
||
known yet, check them now, instead of asserting.
|
||
* nat/linux-ptrace.h (linux_ptrace_attach_fail_reason_string):
|
||
Declare.
|
||
|
||
2015-01-09 Pedro Alves <palves@redhat.com>
|
||
|
||
* linux-thread-db.c (thread_db_find_new_threads_silently)
|
||
(try_thread_db_load_1, try_thread_db_load, thread_db_load_search)
|
||
(find_new_threads_once): Print debug output on gdb_stdlog.
|
||
|
||
2015-01-09 Chen Gang <gang.chen.5i5j@gmail.com>
|
||
Pedro Alves <palves@redhat.com>
|
||
|
||
* compile/compile.c: Include "gdb_wait.h".
|
||
(do_rmdir): Check return value, and free 'zap'.
|
||
|
||
2015-01-08 Pedro Alves <palves@redhat.com>
|
||
Yao Qi <yao@codesourcery.com>
|
||
|
||
* dwarf2loc.c (indirect_pieced_value): Don't call
|
||
gdb_sign_extend. Call extract_signed_integer instead.
|
||
* utils.c (gdb_sign_extend): Remove.
|
||
* utils.h (gdb_sign_extend): Remove declaration.
|
||
|
||
2015-01-07 Pierre Muller <muller@sourceware.org>
|
||
|
||
PR symtab/17811
|
||
* stabsread.c (define_symbol): Set language for C++ special symbols.
|
||
|
||
2015-01-07 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* inflow.c (initial_gdb_ttystate): Tweak comment.
|
||
|
||
2015-01-07 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* inflow.c (set_initial_gdb_ttystate): Add empty line after
|
||
comment documenting function.
|
||
|
||
2015-01-07 Patrick Palka <patrick@parcs.ath.cx>
|
||
|
||
* terminal.h (set_initial_gdb_ttystate): Declare.
|
||
* inflow.c (initial_gdb_ttystate): New static variable.
|
||
(set_initial_gdb_ttystate): New setter.
|
||
(child_terminal_init_with_pgrp): Copy initial_gdb_ttystate
|
||
instead of our current terminal state.
|
||
* top.c (gdb_init): Call set_initial_gdb_ttystate.
|
||
|
||
2015-01-07 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* guile/scm-type.c (tyscm_array_1): Add comment.
|
||
* python/py-type.c (typy_array_1): Add comment.
|
||
|
||
2015-01-06 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* guile/scm-type.c (tyscm_array_1): Do not raise out-of-range
|
||
error if N2 is equal to N1 - 1.
|
||
|
||
2015-01-06 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* python/py-type.c (typy_array_1): Do not raise negative-length
|
||
exception if N2 is equal to N1 - 1.
|
||
|
||
2015-01-03 Doug Evans <xdje42@gmail.com>
|
||
|
||
* c-exp.y: Whitespace cleanup.
|
||
(classify_inner_name): Remove extra ;.
|
||
|
||
2015-01-02 Maciej W. Rozycki <macro@codesourcery.com>
|
||
|
||
* mips-tdep.c (mips32_scan_prologue): Keep the extracted stack
|
||
offset signed.
|
||
|
||
2015-01-02 Doug Evans <dje@google.com>
|
||
|
||
* dwarf2read.c (setup_type_unit_groups): Remove outdated comment.
|
||
|
||
2015-01-02 Doug Evans <dje@google.com>
|
||
|
||
* symtab.h (struct symbol): Fix typo in comment.
|
||
|
||
2015-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
2015-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* top.c (print_gdb_version): Update copyright year to 2015.
|
||
|
||
2015-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2014.
|
||
|
||
For older changes see ChangeLog-2014.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
coding: utf-8
|
||
End:
|