minimalistic MI catch support

Daniel Jacobowitz drow@false.org
Tue Feb 7 03:00:00 GMT 2006


On Mon, Feb 06, 2006 at 08:16:01PM -0500, Bob Rossi wrote:
> On Mon, Feb 06, 2006 at 06:29:13PM -0500, Daniel Jacobowitz wrote:
> > For the patch, in general it's better to avoid ui_out_is_mi_like_p when
> > we can.  Because the text outputs are ignored in non-MI mode, this is
> > usually pretty easy; see the attached.
> 
> Daniel, could you please explain the above in more detail. In
> particular, this patch adds specific functionality when in MI mode. Why
> do we care about how it acts in non-MI mode? Just curious.

Because it prevents the two from diverging, for one thing.  It makes
sure that there is no non-cosmetic output between the two.  This would
be useful for implementing the CLI output on top of the MI output.

> Defiantly this reason is better than the original patch. I think it would be 
> best if we added a new enumeration called EXEC_ASYNC_CATCHPOINT_HIT, and 
> returned that as the reason.  In the future, we could easily return the kind 
> of catchpoint that was caught. For instance,
> 
> *stopped,reason="catchpoint-hit",catchpoint-kind="vfork",bkptno="1",forked-process="6570",thread-id="0",frame={addr="0x00002aaaaaeb6462",func="fork",args=[],from="/lib/libc.so.6"}

I like this.

> Finally, it irks me that all of the bp_catch_* commands are not being
> implemented in this patch. I see these enumeration values:
>   bp_catch_load,
>   bp_catch_unload,
>   bp_catch_fork,
>   bp_catch_vfork,
>   bp_catch_exec,
>   bp_catch_catch,
>   bp_catch_throw
> 
> I would really like to see a patch that supports all of these cases, or
> none. It's just confusing to FE's to have 2/7'ths of the case's
> implemented.
> 
> If no one has time to do this, I will. I certainly am running thin
> though.

The problem with this is that some of those others are ill-defined
and/or broken.  Fork and vfork only work on some targets, and they're
the only ones I would say worked "right".  Load/unload should be
implemented but aren't, exec presents very tricky user interface
and symbol table problems, and catch/throw are hard to present
the correct context to the user.

-- 
Daniel Jacobowitz
CodeSourcery



More information about the Gdb-patches mailing list