Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hopelessly bad GC crash question



Alex Nicolaou wrote:

| 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:

http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ RuntimeOverview/chapter_4_section_2.html#//apple_ref/doc/uid/20001425/ TPXREF101

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

This email sent to email@hidden


Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.