Hotspot Debugger on Mac OS X Java 1.6 32-bit
Greg Lewis
glewis at eyesbeyond.com
Thu Feb 4 08:05:07 PST 2010
On Wed, Feb 03, 2010 at 08:47:22PM +0000, Derek Shinaberry wrote:
> All I know for certain about the source is that MacPorts pulls the
> source tarball from the link http://download.java.net/openjdk/jdk6/promoted/b16/openjdk-6-src-b16-24_apr_2009.tar.gz
> . It looks like there is now a b17, but I have no idea whether it
> would build on a Mac or if it would work if it did build.
I'm sure that MacPorts then applies some patches to that source since it
won't work out of the box on MacOS X. You could probably get the same
patches working on b17 without a great deal of changes.
> Maybe that's the source of my troubles. I think maybe I'll give that a
> try. I was afraid that maybe HSDB hadn't been ported. Thanks for the
> info about the debug callable functions. Those might go a long way
> towards understanding what's going on. I tried to peek at some of the
> data structures, but quickly descended into casting and pointer
> dereferencing hell.
You could try OpenJDK7 as well. I don't think its part of MacPorts, but you
should be able to build it using openjdk6 from MacPorts as a bootstrap.
It's what is available from the Mercurial repository at
http://hg.openjdk.java.net/bsd-port/bsd-port
I'm not sure that we have HSDB support in there though. If not then its
definitely something to be added to the TODO list.
> On Feb 3, 2010, at 7:32 PM, Tom Rodriguez wrote:
>
> > I assume the bits used by MacPorts are coming from http://hg.openjdk.java.net/bsd-port/bsd-port?
> > That's the only working port of openjdk on the mac as far as I
> > know. I know there are issues with 16 byte alignment in hotspot but
> > I assume all of them had been fixed in the bsd-port. If this is
> > something they missed I'm sure they'd like to know. You might try
> > their alias at http://mail.openjdk.java.net/mailman/listinfo/bsd-port-dev
> > . As far as HSDB I don't believe it's been ported to bsd/mac. It
> > needs either a core file reader, which would be different on the mac
> > since I assume it's Mach-O, or an API for control a live process
> > like ptrace, and I don't think either has been written. If you have
> > a debug build of hotspot there are functions that are callable from
> > the debugger which can be used to figure some things out, like
> > findpc which will try to indentify what a piece of generated code is
> > and ps which will dump a Java stack trace. The full set is in src/
> > share/vm/utilities/debug.cpp.
> >
> > tom
> >
> > On Feb 3, 2010, at 8:06 AM, Daniel D. Daugherty wrote:
> >
> >> Forwarding to hotspot-dev at ...
> >>
> >> Dan
> >>
> >>
> >> Derek Shinaberry wrote:
> >>> I am so far out of my depth here that I am not even sure which
> >>> mailing list to start with, but the serviceability-dev seemed as
> >>> good a place as any to begin.
> >>>
> >>> First of all, I am NOT well versed in Java, particularly the
> >>> minutia and all things VM related. I am well versed in C++, which
> >>> led me to believe that I might have half a chance when it comes to
> >>> debugging a problem inside the VM.
> >>>
> >>> I'm running Mac OS X 10.5.8 on a 32-bit Core Duo processor, which
> >>> doesn't support Java 6. So, I'm attempting to use OpenJDK 6
> >>> installed using MacPorts.
> >>>
> >>> After some issues getting the build to work, I figured out what
> >>> needed patching and succeeded in building and installing
> >>> openjdk6. So far, so good.
> >>>
> >>> The program I'm running that required Java 6, called Marketcetera,
> >>> crashes fairly frequently. Using gdb to investigate the crash, I
> >>> figured out that it has to do with 16-byte stack alignment
> >>> requirements on Mac OS X. I discovered a patch by Landon Fuller
> >>> that attempts to address the issues. I fought for a while to get
> >>> that patch integrated and building, but it finally built and
> >>> installed. Still having the same crash and it is still related to
> >>> stack alignment.
> >>>
> >>> I've tracked it down to code that is being generated at runtime,
> >>> so gdb isn't much use in discovering exactly what code is the
> >>> source of the problem. Enter the Hotspot Debugger. (Finally, he
> >>> gets to the point!)
> >>>
> >>> It doesn't appear that HSDB is built by MacPorts on Mac OS X. It
> >>> doesn't even look like there is a bsd directory which would
> >>> presumably contain that code. Has anyone successfully used HSDB
> >>> on Mac OS X? Can anyone point me in the right direction for being
> >>> able to understand what is going on inside the VM on Mac OS X?
> >>> Any help would be much appreciated.
> >>>
> >>> Cheers,
> >>> Derek
> >
> >
>
--
Greg Lewis Email : glewis at eyesbeyond.com
Eyes Beyond Web : http://www.eyesbeyond.com
Information Technology FreeBSD : glewis at FreeBSD.org
More information about the bsd-port-dev
mailing list