This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Fix problem with scope.exp test, skipping past init0 call
- From: Daniel Jacobowitz <drow at false dot org>
- To: Fred Fish <fnf at specifix dot com>
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 13 Feb 2006 10:39:04 -0500
- Subject: Re: [PATCH] Fix problem with scope.exp test, skipping past init0 call
- References: <200602121510.01657.fnf@specifix.com>
While Jim's already approved the patch, and it's fine, some other
notes...
On Sun, Feb 12, 2006 at 03:10:01PM -0500, Fred Fish wrote:
> I noticed the following failures while running the gdb testsuite and
> decided to investigate:
>
> Running /src/latest/trunk/src/gdb/gdb/testsuite/gdb.base/scope.exp ...
> FAIL: gdb.base/scope.exp: next over init0() in main
> FAIL: gdb.base/scope.exp: print filelocal_bss
> FAIL: gdb.base/scope.exp: print 'scope0.c'::filelocal_bss in test_at_main
> FAIL: gdb.base/scope.exp: print 'scope1.c'::filelocal_bss
What platform and compiler version is this? It doesn't fail for me.
> The problem was triggered by the fact that the breakpoint on main was
> being set at the opening brace and then the first next only took us to
> the init0 call. This might be a bug in it's own right, but scope.exp
> is supposed to handle this as a side effect of an attempt to skip
> __main:
>
> # skip past init. There may be a call to __main at the start of
> # main, so the first next may only get us to the init0 call.
> if [gdb_test "next" "$decimal.*foo \\(\\);" "next over init0() in main" "$decimal.*init0 \\(\\);" "next"] {
> gdb_suppress_tests ;
> }
Well, that's supposed to skip a call to __main(), which GCC generates
on very few platforms... stopping at the opening brace is definitely
a bug in its own right, in the debug info or in the prologue skipper.
--
Daniel Jacobowitz
CodeSourcery