This commit merges both the registers and $_siginfo "thread running/executing" checks into a single function. Accessing $_siginfo from a "catch signal" breakpoint condition doesn't work. The condition always fails with "Selected thread is running": (gdb) catch signal Catchpoint 3 (standard signals) (gdb) condition $bpnum $_siginfo.si_signo == 5 (gdb) continue Continuing. Error in testing breakpoint condition: Selected thread is running. Catchpoint 3 (signal SIGUSR1), 0x0000003615e35877 in __GI_raise (sig=10) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig); (gdb) When accessing the $_siginfo object, we check whether the thread is marked running (external/public) state and refuse the access if so. This is so "print $_siginfo" at the prompt fails nicelly when the current thread is running. While evaluating breakpoint conditionals, we haven't decided yet whether the thread is going to stop, so is_running still returns true, and we thus always error out. Evaluating an expression that requires registers access is really conceptually the same -- we could think of $_siginfo as a pseudo register. However, in that case we check whether the thread is marked executing (internal/private state), not running (external/public state). Changing the $_siginfo validation to check is_executing as well fixes the bug in question. Note that checking is_executing is not fully correct, not even for registers. See PR 19389. However, I think this is the lesser of two evils and ends up as an improvement. We at least now have a single place to fix. Tested on x86_64 GNU/Linux. gdb/ChangeLog: 2016-01-13 Pedro Alves <palves@redhat.com> PR breakpoints/19388 * frame.c (get_current_frame): Use validate_registers_access. * gdbthread.h (validate_registers_access): Declare. * infrun.c (validate_siginfo_access): Delete. (siginfo_value_read, siginfo_value_write): Use validate_registers_access. * thread.c (validate_registers_access): New function. gdb/testsuite/ChangeLog: 2016-01-13 Pedro Alves <palves@redhat.com> PR breakpoints/19388 * gdb.base/catch-signal-siginfo-cond.c: New file. * gdb.base/catch-signal-siginfo-cond.exp: New file.
127 lines
3.8 KiB
Plaintext
127 lines
3.8 KiB
Plaintext
2016-01-13 Pedro Alves <palves@redhat.com>
|
||
|
||
PR breakpoints/19388
|
||
* frame.c (get_current_frame): Use validate_registers_access.
|
||
* gdbthread.h (validate_registers_access): Declare.
|
||
* infrun.c (validate_siginfo_access): Delete.
|
||
(siginfo_value_read, siginfo_value_write): Use
|
||
validate_registers_access.
|
||
* thread.c (validate_registers_access): New function.
|
||
|
||
2016-01-12 Josh Stone <jistone@redhat.com>
|
||
Philippe Waroquiers <philippe.waroquiers@skynet.be>
|
||
|
||
* NEWS (Changes since GDB 7.10): Mention QCatchSyscalls and the
|
||
syscall_entry and syscall_return stop reasons. Mention GDB
|
||
support for remote catch syscall.
|
||
* remote.c (PACKET_QCatchSyscalls): New enum.
|
||
(remote_set_syscall_catchpoint): New function.
|
||
(remote_protocol_features): New element for QCatchSyscalls.
|
||
(remote_parse_stop_reply): Parse syscall_entry/return stops.
|
||
(init_remote_ops): Install remote_set_syscall_catchpoint.
|
||
(_initialize_remote): Config QCatchSyscalls.
|
||
* linux-nat.h (struct lwp_info) <syscall_state>: Comment typo.
|
||
|
||
2016-01-12 Yao Qi <yao.qi@linaro.org>
|
||
|
||
* nat/linux-ptrace.c (linux_child_function): Cast child_stack
|
||
to gdb_byte * and pass to linux_fork_to_function.
|
||
|
||
2016-01-12 Yao Qi <yao.qi@linaro.org>
|
||
|
||
* nat/linux-ptrace.c (linux_fork_to_function): Change type
|
||
of argument 'function'.
|
||
(linux_grandchild_function): Change return type to 'int'.
|
||
Change child_stack's type to 'void *'.
|
||
(linux_child_function): Likewise.
|
||
|
||
2016-01-12 Pedro Alves <palves@redhat.com>
|
||
|
||
Remove use of the registered trademark symbol throughout.
|
||
|
||
2016-01-12 Thomas Schwinge <thomas@codesourcery.com>
|
||
|
||
* reply_mig_hack.awk: Rewrite one regular expression.
|
||
|
||
2016-01-11 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* acinclude.m4: Include new warning.m4 file.
|
||
* configure: Regenerated.
|
||
* configure.ac: Move all warning logic ...
|
||
* warning.m4: ... here.
|
||
|
||
2016-01-08 Yao Qi <yao.qi@linaro.org>
|
||
|
||
* extension.c: Include target.h.
|
||
(set_active_ext_lang): Only call install_gdb_sigint_handler,
|
||
check_quit_flag, and set_quit_flag if target_terminal_is_ours
|
||
returns false.
|
||
(restore_active_ext_lang): Likewise.
|
||
* target.c (target_terminal_is_ours): New function.
|
||
* target.h (target_terminal_is_ours): Declare.
|
||
|
||
2016-01-07 Maciej W. Rozycki <macro@imgtec.com>
|
||
|
||
* mips-tdep.c (mips_breakpoint_from_pc): Rename local `status'
|
||
to `err' in the little-endian leg.
|
||
|
||
2016-01-06 Yao Qi <yao.qi@linaro.org>
|
||
|
||
* arch/arm-get-next-pcs.c (arm_get_next_pcs): Move it to some
|
||
lines below.
|
||
(thumb_get_next_pcs_raw): Make it static.
|
||
(arm_get_next_pcs_raw): Likewise.
|
||
* arch/arm-get-next-pcs.h (thumb_get_next_pcs_raw): Remove the
|
||
declaration.
|
||
(arm_get_next_pcs_raw): Likewise.
|
||
|
||
2016-01-05 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* version.in: Change cvs to git.
|
||
|
||
2016-01-05 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* configure.tgt (score-*-*): Delete gdb_sim assignment.
|
||
|
||
2016-01-05 Pedro Alves <palves@redhat.com>
|
||
|
||
PR sim/13418
|
||
* configure.ac: Define WITH_PPC_SIM when linking in the sim and
|
||
the target is powerpc*.
|
||
* rs6000-tdep.c (init_sim_regno_table): Check WITH_PPC_SIM instead
|
||
of WITH_SIM.
|
||
* configure: Regenerate.
|
||
* config.in: Regenerate.
|
||
|
||
2016-01-04 Markus Metzger <markus.t.metzger@intel.com>
|
||
|
||
* btrace.c (btrace_pt_readmem_callback): Do not return in TRY/CATCH.
|
||
|
||
2016-01-02 Mike Frysinger <vapier@gentoo.org>
|
||
|
||
* configure.tgt (powerpc*-*-*): Delete test call and
|
||
always assign gdb_sim.
|
||
|
||
2016-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
Update year range in copyright notice of all files.
|
||
|
||
2016-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* top.c (print_gdb_version): Change copyright year in version
|
||
message.
|
||
|
||
2016-01-01 Joel Brobecker <brobecker@adacore.com>
|
||
|
||
* config/djgpp/fnchange.lst: Add entry for gdb/ChangeLog-2015.
|
||
|
||
For older changes see ChangeLog-2015.
|
||
|
||
Local Variables:
|
||
mode: change-log
|
||
left-margin: 8
|
||
fill-column: 74
|
||
version-control: never
|
||
coding: utf-8
|
||
End:
|