This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
gdb and binutils branch master updated. 8213266aeadc6cfae8313f1335f33a43e40f0a8c
- From: palves at sourceware dot org
- To: gdb-cvs at sourceware dot org
- Date: 14 Jan 2014 18:25:28 -0000
- Subject: gdb and binutils branch master updated. 8213266aeadc6cfae8313f1335f33a43e40f0a8c
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".
The branch, master has been updated
via 8213266aeadc6cfae8313f1335f33a43e40f0a8c (commit)
from f44a1f8e513b37bcc52ba9ea0c172c3e94852756 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=8213266aeadc6cfae8313f1335f33a43e40f0a8c
commit 8213266aeadc6cfae8313f1335f33a43e40f0a8c
Author: Pedro Alves <palves@redhat.com>
Date: Tue Jan 14 16:12:19 2014 +0000
Fix "is a record target open" checks.
RECORD_IS_USED and record_full_open look at current_target.to_stratum
to determine whether a record target is in use. This is wrong because
arch_stratum is greater than record_stratum, so if an arch_stratum
target is pushed, RECORD_IS_USED and record_full_open will miss it.
To fix this, we can use the existing find_record_target instead, which
looks up for a record stratum target across the target stack. Since
that means exporting find_record_target in record.h, RECORD_IS_USED
ends up redundant, so the patch eliminates it.
That exercise then reveals other issues:
- adjust_pc_after_break is gating record_full_... calls based on
RECORD_IS_USED. But, record_full_ calls shouldn't be made when
recording with the record-btrace target. So this adds a new
record_full_is_used predicate to be used in that spot.
- record_full_open says "Process record target already running", even
if the recording target is record-btrace ("process record" is the
original complete name of the record-full target). record_btrace_open
only says "The process is already being recorded." and does not
suggest "record stop", like record-full does. The patch factors out
and merges that error to a new record_preopen function that all record
targets call in their open routine.
Tested on x86_64 Fedora 17.
gdb/
2014-01-14 Pedro Alves <palves@redhat.com>
Tom Tromey <tromey@redhat.com>
* infrun.c (use_displaced_stepping): Use find_record_target
instead of RECORD_IS_USED.
(adjust_pc_after_break): Use record_full_is_used instead of
RECORD_IS_USED.
* record-btrace.c (record_btrace_open): Call record_preopen
instead of checking RECORD_IS_USED.
* record-full.c (record_full_shortname)
(record_full_core_shortname): New globals.
(record_full_is_used): New function.
(find_full_open): Call record_preopen instead of checking
RECORD_IS_USED.
(init_record_full_ops): Set the target's shortname to
record_full_shortname.
(init_record_full_core_ops): Set the target's shortname to
record_full_core_shortname.
* record-full.h (record_full_is_used): Declare.
* record.c (find_record_target): Make extern.
(record_preopen): New function.
* record.h (RECORD_IS_USED): Delete macro.
(find_record_target, record_preopen): Declare functions.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 24 ++++++++++++++++++++++++
gdb/infrun.c | 4 ++--
gdb/record-btrace.c | 3 +--
gdb/record-full.c | 18 ++++++++++++++----
gdb/record-full.h | 4 ++++
gdb/record.c | 15 +++++++++++++--
gdb/record.h | 10 ++++++++--
7 files changed, 66 insertions(+), 12 deletions(-)
hooks/post-receive
--
gdb and binutils