List Info

Thread: Re: catchpoint - bptype




Re: catchpoint - bptype
country flaguser name
Canada
2008-04-28 12:28:57
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.


[1]

about | contact  Other archives ( Real Estate discussion Medical topics )