6c400b59d5
Commit d3d4baed
(PR python/17372 - Python hangs when displaying
help()) had the side effect of causing 'gdb -batch' to leave the
terminal in the wrong state if the program was run. E.g,.
$ echo 'main(){*(int*)0=0;}' | gcc -x c -; ./gdb/gdb -batch -ex r ./a.out
Program received signal SIGSEGV, Segmentation fault.
0x00000000004004ff in main ()
$
If you start typing the next command, seemingly nothing happens - GDB
left the terminal with echo disabled.
The issue is that that "r" ends up in fetch_inferior_event, which
calls reinstall_readline_callback_handler_cleanup, which causes
readline to prep the terminal (raw, echo disabled). But "-batch"
causes GDB to exit before the top level event loop is first started,
and then nothing de-preps the terminal.
The reinstall_readline_callback_handler_cleanup function's intro
comment mentions:
"Need to do this as we go back to the event loop, ready to process
further input."
but the implementation forgets the case of when the interpreter is
sync, which indicates we won't return to the event loop yet, or as in
the case of -batch, we have not started it yet.
The fix is to not install the readline callback in that case.
For the test, in this case, checking that command echo still works is
sufficient. Comparing stty output before/after running GDB is even
better. Because stty may not be available, the test tries both ways.
In any case, since expect's spawn (what we use to start gdb) creates a
new pseudo tty, another expect spawn or tcl exec after GDB exits would
not see the wrong terminal settings. So instead, the test spawns a
shell and runs stty and GDB in it.
Tested on x86_64 Fedora 20.
gdb/
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.
gdb/testsuite/
2015-01-14 Pedro Alves <palves@redhat.com>
PR cli/17828
* gdb.base/batch-preserve-term-settings.c: New file.
* gdb.base/batch-preserve-term-settings.exp: New file.
323 lines
11 KiB
Text
323 lines
11 KiB
Text
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:
|