Mirror of the gdb mailing list
 help / color / mirror / Atom feed
* catch-throw conditions?
@ 2008-02-21 19:46 Craig Miller
  2008-02-22 11:28 ` Andrew STUBBS
  2008-02-22 14:20 ` Thiago Jung Bauermann
  0 siblings, 2 replies; 8+ messages in thread
From: Craig Miller @ 2008-02-21 19:46 UTC (permalink / raw)
  To: gdb

Does anyone know if there is a way to set a condition on breakpoints
created using the "catch throw" command?  Specifically to be able to
only cause a break when a specific C++ Exception is thrown?

CentOS 4.5
gdb Red Hat Linux (6.3.0.0-1.143.el4rh)
gcc 3.4.6

Thanks for any help you might be able to lend.  I've hit a dead end
with google and the GDB docs.


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-21 19:46 catch-throw conditions? Craig Miller
@ 2008-02-22 11:28 ` Andrew STUBBS
  2008-02-22 14:20 ` Thiago Jung Bauermann
  1 sibling, 0 replies; 8+ messages in thread
From: Andrew STUBBS @ 2008-02-22 11:28 UTC (permalink / raw)
  To: Craig Miller; +Cc: gdb

Craig Miller wrote:
> Does anyone know if there is a way to set a condition on breakpoints
> created using the "catch throw" command?  Specifically to be able to
> only cause a break when a specific C++ Exception is thrown?

In general, conditions work like this (not that the help command will 
tell you so):

	catch throw if myerror == 42

I'm not sure where the exception flavour is kept though.

Hope that helps

Andrew


(Actually, on the GDB I have the conditions do not show on info break, 
and I don't have any C++ code handy to test, so it might be broken. If 
the condition doesn't work then try this:

    catch throw
    commands
      if myerror != 42
        continue
      end
    end
)


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-21 19:46 catch-throw conditions? Craig Miller
  2008-02-22 11:28 ` Andrew STUBBS
@ 2008-02-22 14:20 ` Thiago Jung Bauermann
  2008-02-22 14:25   ` Daniel Jacobowitz
  1 sibling, 1 reply; 8+ messages in thread
From: Thiago Jung Bauermann @ 2008-02-22 14:20 UTC (permalink / raw)
  To: Craig Miller; +Cc: gdb

On Thu, 2008-02-21 at 11:24 -0800, Craig Miller wrote:
> Does anyone know if there is a way to set a condition on breakpoints
> created using the "catch throw" command?  Specifically to be able to
> only cause a break when a specific C++ Exception is thrown?
> 
> CentOS 4.5
> gdb Red Hat Linux (6.3.0.0-1.143.el4rh)
> gcc 3.4.6
> 
> Thanks for any help you might be able to lend.  I've hit a dead end
> with google and the GDB docs.

I have absolutely no experience with gdb's C++ support, but I saw with
"help catch" that  gdb 6.7.1 (the current GDB release) has this command:

        catch throw <exceptname>  - a particular exception, when thrown

Is it available in your GDB version (which is very old, BTW)? If not, I
suggest obtaining the new GDB and trying it out.
-- 
[]'s
Thiago Jung Bauermann
Software Engineer
IBM Linux Technology Center


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-22 14:20 ` Thiago Jung Bauermann
@ 2008-02-22 14:25   ` Daniel Jacobowitz
  2008-02-22 16:48     ` Daniel Jacobowitz
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2008-02-22 14:25 UTC (permalink / raw)
  To: Thiago Jung Bauermann; +Cc: Craig Miller, gdb

On Fri, Feb 22, 2008 at 10:25:17AM -0300, Thiago Jung Bauermann wrote:
> I have absolutely no experience with gdb's C++ support, but I saw with
> "help catch" that  gdb 6.7.1 (the current GDB release) has this command:
> 
>         catch throw <exceptname>  - a particular exception, when thrown

"help catch", unfortunately, is incorrect :-(

IIRC this was implemented for HP aCC.  The GNU support does not (yet)
handle an exceptname.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-22 14:25   ` Daniel Jacobowitz
@ 2008-02-22 16:48     ` Daniel Jacobowitz
  2008-02-22 17:45       ` Doug Evans
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2008-02-22 16:48 UTC (permalink / raw)
  To: Thiago Jung Bauermann, Craig Miller, gdb

On Fri, Feb 22, 2008 at 09:19:40AM -0500, Daniel Jacobowitz wrote:
> "help catch", unfortunately, is incorrect :-(
> 
> IIRC this was implemented for HP aCC.  The GNU support does not (yet)
> handle an exceptname.

... But if someone is interested, this would not be a huge project.
Ada already supports something similar.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-22 16:48     ` Daniel Jacobowitz
@ 2008-02-22 17:45       ` Doug Evans
  2008-02-22 18:59         ` Daniel Jacobowitz
  0 siblings, 1 reply; 8+ messages in thread
From: Doug Evans @ 2008-02-22 17:45 UTC (permalink / raw)
  To: gdb; +Cc: Thiago Jung Bauermann, Craig Miller

On Fri, Feb 22, 2008 at 6:24 AM, Daniel Jacobowitz <drow@false.org> wrote:
> On Fri, Feb 22, 2008 at 09:19:40AM -0500, Daniel Jacobowitz wrote:
>  > "help catch", unfortunately, is incorrect :-(
>  >
>  > IIRC this was implemented for HP aCC.  The GNU support does not (yet)
>  > handle an exceptname.
>
>  ... But if someone is interested, this would not be a huge project.
>  Ada already supports something similar.

Ok if I add something like the following to the ProjectIdeas page?
[what are the rules for editing the wiki btw?]

C++
 * Implement catching of specific exceptions.
   Currently GDB does not support specifying a catchpoint for a
particular exception.
   "catch catch" and "catch throw" work, but "catch catch exception_name"
   and "catch throw exception_name" do not.

[or some such]


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-22 17:45       ` Doug Evans
@ 2008-02-22 18:59         ` Daniel Jacobowitz
  2008-02-22 19:51           ` Adrian Jones
  0 siblings, 1 reply; 8+ messages in thread
From: Daniel Jacobowitz @ 2008-02-22 18:59 UTC (permalink / raw)
  To: Doug Evans; +Cc: gdb, Thiago Jung Bauermann, Craig Miller

On Fri, Feb 22, 2008 at 09:36:50AM -0800, Doug Evans wrote:
> On Fri, Feb 22, 2008 at 6:24 AM, Daniel Jacobowitz <drow@false.org> wrote:
> > On Fri, Feb 22, 2008 at 09:19:40AM -0500, Daniel Jacobowitz wrote:
> >  > "help catch", unfortunately, is incorrect :-(
> >  >
> >  > IIRC this was implemented for HP aCC.  The GNU support does not (yet)
> >  > handle an exceptname.
> >
> >  ... But if someone is interested, this would not be a huge project.
> >  Ada already supports something similar.
> 
> Ok if I add something like the following to the ProjectIdeas page?
> [what are the rules for editing the wiki btw?]

There aren't any.  Far as I'm concerned you can add anything you want
:-)

Another useful thing would be to display the exception and to
automatically show the frame with the throw/catch.  I think Ada does
those, too.

-- 
Daniel Jacobowitz
CodeSourcery


^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: catch-throw conditions?
  2008-02-22 18:59         ` Daniel Jacobowitz
@ 2008-02-22 19:51           ` Adrian Jones
  0 siblings, 0 replies; 8+ messages in thread
From: Adrian Jones @ 2008-02-22 19:51 UTC (permalink / raw)
  To: gdb

On 22/02/2008, Daniel Jacobowitz <drow@false.org> wrote:
> On Fri, Feb 22, 2008 at 09:36:50AM -0800, Doug Evans wrote:
>  > On Fri, Feb 22, 2008 at 6:24 AM, Daniel Jacobowitz <drow@false.org> wrote:
>  > > On Fri, Feb 22, 2008 at 09:19:40AM -0500, Daniel Jacobowitz wrote:
>  > >  > "help catch", unfortunately, is incorrect :-(
>  > >  >
>  > >  > IIRC this was implemented for HP aCC.  The GNU support does not (yet)
>  > >  > handle an exceptname.
>  > >
>  > >  ... But if someone is interested, this would not be a huge project.
>  > >  Ada already supports something similar.
>  >
>  > Ok if I add something like the following to the ProjectIdeas page?
>  > [what are the rules for editing the wiki btw?]
>
>
> There aren't any.  Far as I'm concerned you can add anything you want
>  :-)
>
>  Another useful thing would be to display the exception and to
>  automatically show the frame with the throw/catch.  I think Ada does
>  those, too.


I suppose just adding a breakpoint in the exception constructor is a
little hacky for what you are after here
-Adrian


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2008-02-22 18:59 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-21 19:46 catch-throw conditions? Craig Miller
2008-02-22 11:28 ` Andrew STUBBS
2008-02-22 14:20 ` Thiago Jung Bauermann
2008-02-22 14:25   ` Daniel Jacobowitz
2008-02-22 16:48     ` Daniel Jacobowitz
2008-02-22 17:45       ` Doug Evans
2008-02-22 18:59         ` Daniel Jacobowitz
2008-02-22 19:51           ` Adrian Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox