From owner-freebsd-java Wed Mar 20 12:19:38 2002 Delivered-To: freebsd-java@freebsd.org Received: from gnuppy.monkey.org (wsip68-15-8-100.sd.sd.cox.net [68.15.8.100]) by hub.freebsd.org (Postfix) with ESMTP id B8BB337B426 for ; Wed, 20 Mar 2002 12:19:11 -0800 (PST) Received: from billh by gnuppy.monkey.org with local (Exim 3.35 #1 (Debian)) id 16nmY3-0000q0-00; Wed, 20 Mar 2002 12:19:03 -0800 Date: Wed, 20 Mar 2002 12:18:58 -0800 To: Richard Tobin Cc: java@FreeBSD.ORG Subject: Re: Mozilla core... & HotSpot update Message-ID: <20020320201858.GA3125@gnuppy.monkey.org> References: <200203201509.PAA29782@sorley.cogsci.ed.ac.uk> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200203201509.PAA29782@sorley.cogsci.ed.ac.uk> User-Agent: Mutt/1.3.27i From: Bill Huey Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Wed, Mar 20, 2002 at 03:09:32PM +0000, Richard Tobin wrote: ... > It turned out that Mozilla was printing out a stack backtrace before > dying, which I didn't see at first because it was going to /dev/ttyv0 > (I started mozilla from a twm menu). It was fairly easy to track down > the function in question, and then it was just a matter of staring at > the code. What you did was good and very perceptive. > It would have been a lot quicker if I could work out how to rebuild > just the (very small) relevant parts of the JDK after making an edit, > rather than waiting while it does a bunch of Java compilations. Just go into the make system subtree for that section and recompile it. That generally works and is what I was doing to propagate changes in the hpi/ library and I would think something like that would also exist for the Motif/awt layer. ... Debugging the Java runtime is just shear hell which is why I was curious as to how you figured it out that quickly. Understanding runtime typing system and related JNI glue stubs is just flat out non-trivial, which is what you were dealing within the Motif layer. Somebody should write a primer on virtual machines and the supporting JNI layer. I personally haven't seen much of the code in that section so I can't gauge how obvious the bug was relative to rest of the code, but having other people like you that can fix those things is good since I know now that a single person can't do the entire JVM port alone properly. That frees up developers to work on other things. I'll have to look at it some time to get an idea of what's going on... :-) "HotSpot" BTW, HotSpot is getting closer. I've delete all of the Solaris LWP code rather carefully and what's left is: [OS glue layer] 1) There's a couple of problems with interruptable IO that are a bit semantically confusing such as the SYSV and BSD behaviors of a syscall during the delivery of a signal. Should it return EINT like in SYSV ? I'm going to have to look at the libc_r system to see how async IO wrappers are collected and the signaling behavior. 2) Fill in all the pthreads creation related code and get rid of all the Solaris-isms. This is the least complete of the sections, but is what I'm going to work on next. [CPU/architecture specifics] 3) Safe-point handling that deals with exceptions thrown in the middle of a JIT block still needs to be fully understood and verified. The call back framework during SIGUSR1 supporting the manipulation of ucontext_t's is now done. That supports the safe-point system. This section is almost complete after the work I've done over the last couple of days. That's all. ;-) bill To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message