| I have an applet which reliably crashes the VM during garbage
collection
| (at least, I presume it is during garbage collection because of the
| following message). For example:
|
| objc: FREED(id): message finish sent to freed object=0x3ad3c0
|
| Does anyone have any recommendations for debugging this (obviously I
am
| in search of a workaround that will avoid the VM crashing)?
I wouldn't be so quick to chalk this up to GC. The
JVM makes use of many Cocoa objects under the hood.
The message clearly suggests premature deallocation
of an Objective-C object, but it could well be a
native Cocoa object created by the JVM, rather than
a Java object. IIRC, the Swing Aqua PLAF uses native
Cocoa objects. If your applet uses Swing, try using
the Metal PLAF and see if that fixes things. If so,
the bug likely is in the Aqua PLAF implementation.
An AWT native peer would be another candidate, and
there are surely others. There are native memory
system debug flags that you can turn on to help
diagnose problems with native memory (see man malloc).
These may not help with Cocoa's memory model (which
has things like auto-release pools that can easily
cause this kind of behaviour when used incorrectly).
You could also look at the Obj-C memory model:
I'm assuming here you have no Objective-C JNI code
in your applet (if you did, that would be the first
place to look).
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Java-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/java-dev/email@hidden