another gdb question

Andrew Haley aph@redhat.com
Sat Nov 16 12:20:00 GMT 2002


Nic Ferrier writes:
 > Andrew Haley <aph@redhat.com> writes:
 > 
 > > Nic Ferrier writes:
 > > > Getting paperclips to work natively is like pulling teeth.
 > > >
 > > > Paperclips uses gnujaxp: compiled natively (either from byte code or
 > > > source) it gives an IO error. It's the sort of error that needs
 > > > tracing with the debugger.
 > > >
 > > > I can load paperclips in the debugger easily, but when I try to set a
 > > > break point I get all sorts of problems.
 > > >
 > > > I seem to be able to complete a class name from the paperclips binary
 > > > (but not from the gnujaxp library).
 > > >
 > > > I cannot seem to complete a method name, or get GDB to accept it in
 > > > any form.
 > > 
 > > You can't set a breakpoint in a DSO until it has been loaded. If your
 > > executable is linked against the DSO you should be able to set a
 > > breakpoint once main has started.
 > > 
 > > So:
 > > 
 > > gdb> b foo
 > > gdb> r
 > > ... break
 > > gdb> b 'gnu::jaxp::whatever'
 > > 
 > > Also see 'info share' to see if the DSO has been loaded.
 > 
 > Well, ok... but that doesn't change the fact that I should be able to
 > set one in the debugging target.
 > 
 > For example:
 > 
 > $ gcj ... -shared -o gnujaxp
 > $ gcj ... --main gnu.paperclips.paperclips -o paperclips
 > $ export LD_LIBRARY_PATH=...:./
 > 
 > so now we have a shared library gnujaxp and paperclips as an
 > executable with it's "main" class as gnu.paperclips.paperclips.
You did use '-g' when compiling, didn't you?
 > So now I do:
 > 
 > $ gdb ./paperclips
 > gdb> b gnu.paperclips.paperclips.main
b 'gnu::paperclips::paperclips::main<tab>
does work.
 > and I get the same error, namely this:
 > 
 > the class gnu.paperclips.paperclips does not have any method named main
 > Hint: try 'gnu.paperclips.paperclips.main<TAB> or 'gnu.paperclips.paperclips.main<ESC-?>
 > 
 > 
 > Putting in quotes doesn't work.
 > 
 > Using the C++ scoping operator doesn't work.
 > 
 > Setting the language to C++ and using the C++ scoping operator
 > doesn't work.
 > 
 > 
 > It should do, shouldn't it?
It does, with an up-to-date gdb and current gcj.
Andrew.


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /