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