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/

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

Reply via email to