This is the mail archive of the gdb@sources.redhat.com 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: Catchpoint in GDB/MI


> 
> On Tue, May 06, 2003 at 12:12:10PM -0400, Alain Magloire wrote:
> > > 
> > > On Tue, May 06, 2003 at 11:15:50AM -0400, Alain Magloire wrote:
> > > > > 
> > > > > On Tue, May 06, 2003 at 10:50:47AM -0400, Alain Magloire wrote:
> > > > > > Bonjour
> > > > > > 
> > > > > > 	Anyone working on putting catchpoints in GDB/MI.
> > > > > > If yes what is the semantics.
> > > > > > If no what is the best semantic?  Completely OOB:
> > > > > > 
> > > > > > -catch load
> > > > > > ^done
> > > > > > ...
> > > > > > 
> > > > > > *stop,reason="shared-loaded",shared="libm.so"
> > > > > 
> > > > > Do we even have any targets besides HP/UX where shared library
> > > > > catchpoints _work_?
> > > > 
> > > > Probably none, in the gdb source tree.  For example, catching exceptions
> > > > is probably compiler dependent 8-( .. I think.  Do remember Daniel Berlin
> > > > proposing a scheme for gcc long long time ago, could not retrace the email
> > > > though ... darn!
> > > 
> > > I've actually added catchpoints for exceptions back; but they'll just
> > > show up as breakpoints for now.  If we want them to show up differently
> > > someone's going to have to work out (both CLI and MI) what they should
> > > look like.
> > > 
> > 
> > Details please? 8-)
> > 
> > Do you mean setting breakpoint on some special function used to throw
> > exception __raise_exception(..)?
> > 
> > How does it work ?
> 
> Yes.  It's __cxa_throw and __cxa_begin_catch; I only implemented them
> for the GCC 3.x (i.e. multivendor) ABI.  You can find the patch in the
> archives if you want to know more :)
> 

Are you refering to this:
	http://sources.redhat.com/ml/gdb/2002-07/msg00191.html

Very informative, thanks.

Reading your exchange, I probably can implement your scheme whithout
having to change gdb; setting the breakpoint in __cxa_throw and examining
the arguments.

It seems straightforward enough, so why not put it in gdb?  Unless
of course I do not grasp the entire complexity of the problem 8-)
True it is compiler specific unless the cxxabi becomes more widespread
but at least a start.

> 
> > > > > We need to fix them before we talk about their MI
> > > > > syntax, IMO.  Similarly for most of the others.
> > > > > 
> > > > 
> > > > True, but there are a lot of MI commands that are define but
> > > > not implemented in the current tree or rather can not be implemented
> > > > in a clean way to be submit back.  So not all gdb/mi are equal depending
> > > > on the distribution.  But having the MI framework already in place is
> > > > a good step in normalizing(sp?).
> > > 
> > > I'm not sure that catchpoints _can_ be normalized.  The ones we have
> > > now are mostly extremely system dependent.
> > > 
> > 
> > Yes and with this in mind, I would advocate to put the MI framework/commands
> > in place  even if they endup throwing "(not implemented)" on many platforms
> > or c++ compilers.
> 
> My point is that the available information and semantics will vary a
> lot.  For instance, which frame you're in when you hit them, et cetera.
> 
> Perhaps you're right.
> 
> -- 
> Daniel Jacobowitz
> MontaVista Software                         Debian GNU/Linux Developer
> 


-- 
au revoir, alain
----
Aussi haut que l'on soit assis, on est toujours assis que sur son cul !!!


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