I'm looking for a Reviewer for the change detailed below. I've added the hotspot-dev alias to the request. For the discussion so far see: http://mail.openjdk.java.net/pipermail/serviceability-dev/2012-May/005979.html
Short version: Add core file parsing to SA on Mac OS X by incorporating the KJDB tool developed by Kevin Walls. Please let me know if you can review the code. It's quite a bit of code. Both myself and Kevin can answer questions on the code. Thanks, /Staffan On 8 maj 2012, at 19:20, Staffan Larsen wrote: > Here are some late breaking additions that Kevin sent me. These are only > changes to the kjdb core. > > Full webrev: http://cr.openjdk.java.net/~sla/kjdb/webrev.02/ > Difference from the last webrev: > http://cr.openjdk.java.net/~sla/kjdb/webrev.02-delta/ > > And I should add credit where credit is due. The kjdb implementation is all > Kevin Walls' great work. Integration in SA and tests are my work. Any errors > are of course my fault as well. > > Thanks, > /Staffan > > On 8 maj 2012, at 14:10, Kevin Walls wrote: > >> >> Hi - >> >> Just a note that I'd like to contribute a cleaner way for the Debugger and >> Process classes here to load a core file, which I hadn't yet handed over. >> I'll have that ready shortly... >> >> Thanks >> Kevin >> >> On 08/05/12 12:11, Staffan Larsen wrote: >>> The Serviceability Agent currently has an outage on Mac OS X compared to >>> other platforms in that we cannot read core files. We plan to address this >>> for 7u6 by incorporating code from a separate tool called "kjdb" developed >>> at Oracle. Kjdb is a cross-platform core-file debugger written completely >>> in Java that currently works on ELF (solaris, linux) and Mach-O (mac) core >>> files. Since it is written in Java it can read core files from a different >>> system than the system you are running kjdb on, which is very useful. >>> >>> The alternative to incorporating the kjdb technology would have been to >>> implement this in C as is done for the other platforms, but reusing >>> existing code saves us some trouble. The kjdb debugger backend will >>> automatically be enabled when you are opening a Mach-O core file (or if you >>> explicitly set the -Duse.kjdb property when starting SA). >>> >>> The risks with this is that this is a large addition of relatively new code >>> to SA (around 100 files). It also means that debugging a live process or a >>> core file on OS X will use different debugger backends which may have >>> different behavior and bugs. >>> >>> This change also adds a basic test that creates a core file and uses SA to >>> print the thread dumps in the core. This test runs on all platforms, not >>> just Mac OS X. Other than that test, some level of manual testing has been >>> done with various core files. >>> >>> Please see the webrev at: http://cr.openjdk.java.net/~sla/kjdb/webrev.01/ >>> <http://cr.openjdk.java.net/%7Esla/kjdb/webrev.01/> >>> >>> There are quite a number of added files in this webrev, so it's probably >>> best to concentrate on the changes in the existing files. >>> >>> Thanks, >>> /Staffan >> >