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: minimalistic MI catch support


On Mon, Feb 06, 2006 at 06:29:13PM -0500, Daniel Jacobowitz wrote:
> On Sat, Jan 28, 2006 at 02:04:24PM +0100, Markus Schiltknecht wrote:
> > Hello gdb hackers,
> > 
> > working on an automated debugging layer on top of gdb I figured the
> > catchpoint functions in the MI interface is missing. The attached patch
> > against current CVS at least makes gdb report a catchpoint-break via MI.
> > This is already sufficient for my application. However, I would
> > appreciate a complete catchpoint implementation for the MI interface. I
> > haven't figured out how to implement the '-break-catch' command. If
> > somebody more knowledgable could do that I'd be thankfull.
> > 
> > Please CC me in responses, as I'm not subscribed.
>
> 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.

> This changes from:
> 
> *stopped,thread-id="0",frame={addr="0x00002aaaaaeb6462",func="fork",args=[],from="/lib/libc.so.6"}
> 
> to:
> 
> *stopped,reason="breakpoint-hit",bkptno="1",forked-process="6570",thread-id="0",frame={addr="0x00002aaaaaeb6462",func="fork",args=[],from="/lib/libc.so.6"}
> 
> You used fork and vfork for the reasons; I'm not sure whether these
> should have separate reasons or be marked as catchpoint-hit.  Bob,
> Nick, any opinions on that?

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"}

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.

Thanks,
Bob Rossi


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