This is the mail archive of the
mailing list for the GDB project.
Re: [patch 3/3] bpstat_what removal
On Fri, 07 May 2010 18:25:54 +0200, Pedro Alves wrote:
> On Friday 07 May 2010 17:16:48, Jan Kratochvil wrote:
> > This way from existing 24 bp_* breakpoint types you create new artificial
> > 9 BPSTAT_* types with associated 3 STOP_* types, therefore effectively you
> > create new artificial 11 BPSTAT/STOP_* breakpoint events.
> The abstraction is a bit broken currently. Most prominantely,
> all the 'enum bpstat_what_main_action's should be mutually
> exclusive with each other; at least
> BPSTAT_WHAT_CHECK_SHLIBS and BPSTAT_WHAT_CHECK_JIT should _not_ be
> a bpstat_what. Checking for internal events is independent of
> whether to stop or not (noisily or not), and to single-step over
> a breakpoint or not, which is what mostly infrun cares about.
This is one of the reasons of my patch. This was/is the problem of PR 9436
that BPSTAT_WHAT_CHECK_SHLIBS overrides other breakpoint types.
If these actions will no longer be executed immediately in infrun.c there will
have to be more boolean perform_* flags to specify delayed execution of
actions depending on the bp_* types. There is now only perform_shlib (for
former BPSTAT_WHAT_CHECK_SHLIBS) but there will be also perform_jit (and for
ifunc or next-over-throw more such flags). stepping_over_breakpoint setting
may need more abstraction or also just another
perform_stepping_over_breakpoint flag, not sure now.