This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Thanks,
Jan


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]