This is the mail archive of the
archer@sourceware.org
mailing list for the Archer project.
Re: Problem with merge
- From: Jan Kratochvil <jan dot kratochvil at redhat dot com>
- To: Rick Moseley <rmoseley at redhat dot com>
- Cc: Project Archer <archer at sourceware dot org>, SÃrgio Durigan JÃnior <sergiodj at linux dot vnet dot ibm dot com>
- Date: Wed, 7 Jan 2009 18:57:46 +0100
- Subject: Re: Problem with merge
- References: <4964D295.1070003@redhat.com>
Hi Rick,
the problem IMO comes from archer-sergio-catch-syscall and some of its
interaction with the other patches.
The problem can be reproduced just on the archer-sergio-catch-syscall branch
by:
$ ../gdb -nx -ex start -ex 'set debug infrun 1' -ex 'p marker2(99)' -ex bt gdb.base/break
which ends on the FSF GDB by:
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x400530
infrun: BPSTAT_WHAT_STOP_SILENT
infrun: stop_stepping
$1 = 1
#0 main (argc=1, argv=0x7fffffffd438, envp=0x7fffffffd448) at ../.././gdb/testsuite/gdb.base/break.c:86
(gdb) q
but on the archer-sergio-catch-syscall branch it ends up with:
infrun: TARGET_WAITKIND_STOPPED
infrun: stop_pc = 0x400530
infrun: BPSTAT_WHAT_CHECK_SHLIBS
infrun: stop_stepping
$1 = 1
#0 main (argc=1, argv=0x7fffffffd438, envp=0x7fffffffd448) at ../.././gdb/testsuite/gdb.base/break.c:86
(gdb) q
This causes the crash-loop on the archer-rmoseley-demo-merge branch due to
some other correlations I did not analyse.
The attached patch IMO makes the `entrybp' state less intrusive (=not
corrupting the current state if not required) while still
`gdb.base/catch-syscall.exp' fully PASSes there. It also fixed the
`gdb.base/break.exp' testcase for archer-rmoseley-demo-merge.
I did not compare the full testsuite runs on the both branches.
Regards,
Jan
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index c85f90b..7c9860e 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -3147,21 +3147,21 @@ bpstat_what (bpstat bs)
/* kc ss sn sgl slr clr sr shl shlr entrybp
*/
/*no_effect */
- {kc, ss, sn, sgl, slr, clr, sr, shl, shlr, shlr},
+ {kc, ss, sn, sgl, slr, clr, sr, shl, shlr, kc},
/*wp_silent */
- {ss, ss, sn, ss, ss, ss, sr, shl, shlr, shlr},
+ {ss, ss, sn, ss, ss, ss, sr, shl, shlr, ss},
/*wp_noisy */
- {sn, sn, sn, sn, sn, sn, sr, shl, shlr, shlr},
+ {sn, sn, sn, sn, sn, sn, sr, shl, shlr, sn},
/*bp_nostop */
- {sgl, ss, sn, sgl, slr, slr, sr, shl, shlr, shlr},
+ {sgl, ss, sn, sgl, slr, slr, sr, shl, shlr, sgl},
/*bp_silent */
- {ss, ss, sn, ss, ss, ss, sr, shl, shlr, shlr},
+ {ss, ss, sn, ss, ss, ss, sr, shl, shlr, ss},
/*bp_noisy */
- {sn, sn, sn, sn, sn, sn, sr, shl, shlr, shlr},
+ {sn, sn, sn, sn, sn, sn, sr, shl, shlr, sn},
/*long_jump */
- {slr, ss, sn, slr, slr, err, sr, shl, shlr, shlr},
+ {slr, ss, sn, slr, slr, err, sr, shl, shlr, slr},
/*long_resume */
- {clr, ss, sn, err, err, err, sr, shl, shlr, shlr},
+ {clr, ss, sn, err, err, err, sr, shl, shlr, clr},
/*step_resume */
{sr, sr, sr, sr, sr, sr, sr, sr, sr, sr},
/*shlib */
@@ -3170,7 +3170,7 @@ bpstat_what (bpstat bs)
{shlr, shlr, shlr, shlr, shlr, shlr, sr, shlr, shlr, shlr},
/* entry_breakpoint */
{entrybp, entrybp, entrybp, entrybp, entrybp, entrybp, sr, entrybp,
- entrybp, entrybp}
+ shlr, entrybp}
};
#undef kc