Robert Schuster schrieb:
> Hi,
> I haven't looked deeply into this but kaffe
Now I did. Have a look at this gdb log.

Breakpoint 2, threadMain (arg=0x0) at Test.c:42
42        JNIEnv* env = NULL;
(gdb) s

43        (*cachedJavaVM)->AttachCurrentThread(cachedJavaVM, (void **) &env,
NULL);
(gdb) s
Kaffe_AttachCurrentThread (vm=0xb7f19c80, penv=0xb718a3d0, args=0x0)
    at ../../../kaffe/kaffe/kaffevm/jni/jni.c:773

773             if (KTHREAD(attach_current_thread) (false)) {
(gdb) s
jthread_attach_current_thread (isDaemon=false)
    at
../../../../../kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:696

696       if (jthread_current() != NULL)
(gdb) p jthread_current
$1 = {jthread_t (void)} 0xb7f013ac <jthread_current>
(gdb) s
jthread_current ()
    at
../../../../../kaffe/kaffe/kaffevm/systems/unix-pthreads/thread-impl.c:1790

1790      if (!jthreadInitialized)
(gdb) p jthreadInitialized
$2 = 1 '\001'
(gdb) s

1793        void* specific = pthread_getspecific(ntKey);
(gdb) n

1795        if (specific != NULL)
(gdb) p specific

$3 = (void *) 0x0
(gdb) s
1798          perror(NULL);

As you can see it thinks it can get a thread specific value out of it. I
saw the code doing this stuff in cacao and I think there is a call
missing that stores first whatever 'ntKey' should store.

AttachCurrentThread with pthreads and boehm is a bit broken in cacao,
too. I wanted to have a look at how kaffe does it. The interesting bit
is, how do you get the boehm GC to claim the stack of the attached thread.

Regards
Robert

My .gdbinit file:

handle SIGSEGV nostop noprint pass
handle SIGILL nostop noprint pass
handle SIGXCPU nostop noprint pass
handle SIGPWR nostop noprint pass
file /home/rob/classpath/INSTALL/kaffe/jre/bin/kaffe-bin
#file cacao
set args -Djava.library.path=. Test
set breakpoint pending on

# notice whether this happens
break threadMain

define hook-stop
  handle SIGSEGV stop print
end

define nosegf
  handle SIGSEGV nostop noprint pass
end



Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
kaffe mailing list
[email protected]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to