Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Aleksandar Ristovski <aristovski@qnx.com>
To: Joel Brobecker <brobecker@adacore.com>
Cc: gdb@sources.redhat.com
Subject: Re: catchpoint - bptype
Date: Mon, 28 Apr 2008 20:09:00 -0000	[thread overview]
Message-ID: <48160959.2050404@qnx.com> (raw)
Message-ID: <20080428200900.1ijOYHoNfWdzWXyfVlkzD5HoYmE5pxn-jfoDEWACv3M@z> (raw)
In-Reply-To: <20080428162109.GE16574@adacore.com>

Joel Brobecker wrote:
>> I see that bp_catch_catch and bp_catch_trhow were removed in Dec. 2007 and 
>> this confuses me a bit: what is the intention? To get rid of all 
>> bp_catch_*? 
> 
> I haven't looked at the implementation of the other catchpoints, but
> when I implemented Ada exception catchpoints, I really appreciated
> the new infrastructure which allowed me to use bp_breakpoint instead
> of having to add my own new bp_catchpoint enums (I tried the latter
> first). It allowed me to basically implement the functionality in
> a couple of functions instead of littering "case bp_catchpoint_exception..."
> everywhere in breakpoint.c.
This is where breakpoint_ops could be used... but I first want to understand the intent and what conceptually makes more sense, and then we can talk about the implementation details.

> 
> I am not sure about the long term intentions in this area.  I think
> that the new approach based on breakpoint_ops can be extremely effective,

I agree, but without knowing the long term intent it is hard to tell. At the moment it introduces slight complication since only "catch" and "throw" use ops and nothing else (and, therefore, take different printing route than anything else). I can see how breakpoint_ops can be very useful, if used consistently - it could be used to, for example, get rid of the switch statements you mentioned above.

> I don't understand why you think that not having their own bp_catch
> enum makes them less equal than the others.  Like I said above, it
> certainly made the implementation more compact and easier to maintain.
> At the user level, I don't think he's seeing much of a difference either.
 
For example:
(gdb) catch catch
Catchpoint 2 (catch)
(gdb) catch fork
Catchpoint 3 (fork)
(gdb) info b
Num     Type           Disp Enb Address    What
2       breakpoint     keep y   0xb7f75896 exception catch
3       catch fork     keep y
(gdb)

See how "fork" is cool and "catch" isn't. "Catch" looks just like any other breakpoint; the only diff. is in "What" field, while catch fork is clearly a catchpoint.


  reply	other threads:[~2008-04-28 17:29 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-28 18:13 Aleksandar Ristovski
2008-04-28 18:22 ` Joel Brobecker
2008-04-28 20:51   ` Aleksandar Ristovski [this message]
2008-04-28 20:09     ` Aleksandar Ristovski
2008-04-28 21:08     ` Daniel Jacobowitz
2008-04-29 17:05       ` Aleksandar Ristovski
2008-04-29 17:49         ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=48160959.2050404@qnx.com \
    --to=aristovski@qnx.com \
    --cc=brobecker@adacore.com \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox