This is the mail archive of the
gdb-cvs@sourceware.org
mailing list for the GDB project.
gdb and binutils branch master updated. 7e09a22367934a6d53f79d8b01135832b80ab246
- From: qiyao at sourceware dot org
- To: gdb-cvs at sourceware dot org
- Date: 29 Jul 2014 04:04:40 -0000
- Subject: gdb and binutils branch master updated. 7e09a22367934a6d53f79d8b01135832b80ab246
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 7e09a22367934a6d53f79d8b01135832b80ab246 (commit)
from 7ebdbe9292e4b696740b021938369adb1484da27 (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=7e09a22367934a6d53f79d8b01135832b80ab246
commit 7e09a22367934a6d53f79d8b01135832b80ab246
Author: Yao Qi <yao@codesourcery.com>
Date: Mon Jul 28 13:44:57 2014 +0800
Fix PR 17206
As reported in PR 17206, an internal error is triggered when command
until is executed. In infcmd.c:until_next_command, step_range_end is
set to 'pc',
if (!func)
{
struct bound_minimal_symbol msymbol = lookup_minimal_symbol_by_pc (pc);
if (msymbol.minsym == NULL)
error (_("Execution is not within a known function."));
tp->control.step_range_start = BMSYMBOL_VALUE_ADDRESS (msymbol);
tp->control.step_range_end = pc;
}
and later in infrun.c:resume, the assert below is triggered in PR
17206.
if (tp->control.may_range_step)
{
/* If we're resuming a thread with the PC out of the step
range, then we're doing some nested/finer run control
operation, like stepping the thread out of the dynamic
linker or the displaced stepping scratch pad. We
shouldn't have allowed a range step then. */
gdb_assert (pc_in_thread_step_range (pc, tp));
}
In until_next_command, we set step range to [XXX, pc), so pc isn't
within the range. pc_in_thread_step_range returns false and the
assert is triggered. AFAICS, the range we want in until_next_command
is [XXX, pc] instead of [XXX, pc), because we want to program step
until greater than pc. This patch is to set step_range_end to
'pc + 1'. Running until-nodebug.exp with unpatched GDB will get the
following fail,
FAIL: gdb.base/until-nodebug.exp: until 2 (GDB internal error)
and the fail goes away when the fix is applied.
gdb:
2014-07-29 Yao Qi <yao@codesourcery.com>
PR gdb/17206
* infcmd.c (until_next_command): Set step_range_end to PC + 1.
gdb/testsuite:
2014-07-29 Yao Qi <yao@codesourcery.com>
PR gdb/17206
* gdb.base/until-nodebug.exp: New.
-----------------------------------------------------------------------
Summary of changes:
gdb/ChangeLog | 5 ++++
gdb/infcmd.c | 4 ++-
gdb/testsuite/ChangeLog | 5 ++++
.../{source-execution.exp => until-nodebug.exp} | 24 +++++++++++--------
4 files changed, 27 insertions(+), 11 deletions(-)
copy gdb/testsuite/gdb.base/{source-execution.exp => until-nodebug.exp} (60%)
hooks/post-receive
--
gdb and binutils