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


[I srewed up the header first time, hopefully not this time, apologies if you
get two copies.  I'm not subscribed to gdb-patches and would like to be cc'ed
in any threads on MI, if possible.]

I've not used catchpoints, so I just have a couple of minor observations.


>      case bp_catch_vfork:
>        annotate_catchpoint (bs->breakpoint_at->number);
> -      printf_filtered (_("\nCatchpoint %d (vforked process %d), "),
> -		       bs->breakpoint_at->number, 
> -		       bs->breakpoint_at->forked_inferior_pid);
> +      ui_out_text (uiout, "\nCatchpoint ");
> +      if (ui_out_is_mi_like_p (uiout))
> +	ui_out_field_string (uiout, "reason",
> +			     async_reason_lookup (EXEC_ASYNC_BREAKPOINT_HIT));
> +      ui_out_field_int (uiout, "bkptno", bs->breakpoint_at->number);
> +      ui_out_text (uiout, " (vforked process ");
> +      ui_out_field_int (uiout, "vforked-process",
> +			bs->breakpoint_at->forked_inferior_pid);

I realise that this method of combining CLI and MI output is already used in
breakpoint.c but presumably it has the unfortunate side effect of not
translating some CLI output intended for the user.  For example "breakpoint"
and "catchpoint may be translated in some places but not others.

The manual says:

    `exec'
          A call to `exec'.  This is currently only available for HP-UX.

    `fork'
          A call to `fork'.  This is currently only available for HP-UX.

    `vfork'
          A call to `vfork'.  This is currently only available for
          HP-UX.

Is that still true?  I can certainly set catchpoints for these with GNU/Linux.

> > *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.

With reason="breakpoint-hit" it's nature (catch vfork) can be deduced from
bkptno="1" and -break-list or just "-break-info 1" but I guess there's no harm
in redundant information.


Nick                                           http://www.inet.net.nz/~nickrob


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