This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: another gdb question
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.