seg fault on startup
David Daney
ddaney@avtrex.com
Tue Mar 20 17:50:00 GMT 2007
Andrew Haley wrote:
> Ben Tatham writes:
> > More fuel for the investigation.
> >
> > I have now tried to build our application with GCC-4.2-20070307, with
> > the much simpler -static-libgcj option...
> >
> > %.o : %.jar
> > $(gccdir)/bin/$(platform)-gcj $(includes) -c -g -O $<
> >
> > apollo : $(objects)
> > $(gccdir)/bin/$(platform)-gcj -g -O -static-libgcj -o
> > apollo.debug --main=ca.nanometrics.apollo.taurus.MissionControlTaurus
> > $(objects)
> > $(gccdir)/bin/$(platform)-strip --strip-debug apollo.debug -o apollo
> >
> > Unfortunately, it still seg faults right at startup. This time, I get a
> > backtrace though.
>
> Ah, excellent.
>
> > Does this mean anything to anyone? Why does it say that the
> > language is c++ now though?
>
> Because it is.
>
> > Program terminated with signal 11, Segmentation fault.
> > #0 _Jv_RegisterClasses (classes=0x10f80074)
> > at
> > /disk1/xtool/crosstool-0.43/build/powerpc-860-linux-gnu/gcc-4.2-20070307-glibc-2.3.3/gcc-4.2-20070307/libjava/java/lang/natClassLoader.cc:189
> > 189 _Jv_RegisterClasses (const jclass *classes)
>
> classes is a pointer to an array of pointers, terminated by NULL.
> Every one of those pointers should pointo t a valid class structure
> inside your app. Print them out.
As an aside, I think there were bugs in some part of the mipsel-linux
toolchain (I forget exactly where, but it was either the linker or
glibc) that caused problems like this for me. I think you are on the
right track here. It may be useful to compile libgcj with -O0 -g (edit
the Makefile to change -O2 to -O0 and make clean; make).
David Daney
More information about the Java
mailing list