Re: [Sablevm-developer] Problems with 1.0.3 - java/lang/UnsatisfiedLinkError
Brought to you by:
egagnon
From: Etienne M. G. <eti...@uq...> - 2002-08-21 15:20:28
|
On Wed, Aug 21, 2002 at 09:25:08AM +0200, Mark Wielaard wrote: > I think the assembler is OK. I found a different implementation in > libgcj (which is similar but a little but more clever by using xor to > use just one register where I use one for tmp and result. And John > Leuner said he used the same assembler code for Kissme on powerpc. > But I have changed it to just the plain C version of the code for now. You can probably simply revert to the assembly version; the CAS operation is unlikely to cause important side effects in single threaded code, other than causing an IllegalMonitorStateException, if the code does not assing the right value in the object header (*pword). > I am using the debug build from build-many: > > ./configure \ > --prefix=$LOCATION \ > --program-suffix=-debug \ > --libdir=$LOCATION/lib/sablevm-debug \ > --enable-debugging-features \ > --disable-signals-for-exceptions \ > --with-gc=copying \ > --with-obj-layout=bidirectional \ > --with-threading=switch > Good. > Didn't make a difference :{ > And it always gives the same result (this is with patched 1.0.1). The fist thing we want to do it to locate the problem more precisely, using sablevm-debug. So, here are 3 things to do: 1- Run: $ sablevm-debug -p "sablevm.verbose.methods" HelloWorld 2>&1 | tail -1000 > output-methods.txt 2- Run: $ sablevm-debug -p "sablevm.verbose.methods" -p "sablevm.verbose.instructions" HelloWorld 2>&1 | tail -1000 > output-instructions.txt 3- After doihg 1 and 2 above (not before), modify src/libsablevm/interpreter.c, replacing the "#ifdef COMMENT" at the start of the exception handling code by "#ifndef COMMENT", then rebuild and re-install sablevm-debug. 4- Run: $ sablevm-debug HelloWorld 2>&1 > output-exceptions.txt 5- Send a gzipped version of output-*.txt files to this list, for investigation. 6- Revert back the src/libsablevm/interpreter.c change in 3. 7- Rebuild and reinstall sablevm-debug. Be warned that verbose instruction and method trace options are extremely verbose (due to the important number of executd methods and instructions). This is why the "tail" filter is important... Have fun! Etienne -- Etienne M. Gagnon http://www.info.uqam.ca/~egagnon/ SableVM: http://www.sablevm.org/ SableCC: http://www.sablecc.org/ |