[Pythonmac-SIG] PyObjC ScreenSaver on 10.7

Berg, Stuart bergs at janelia.hhmi.org
Wed Dec 26 22:35:28 CET 2012


Hi Ronald,

Still trying to crack this nut….

If I open the screensaver from the command line using the System Preferences app, I get this error.  It doesn't seem to happen with other screensavers (e.g. if I build the original (objective-c) SillyBalls screensaver, there are no errors.

$ /Applications/System\ Preferences.app/Contents/MacOS/System\ Preferences dist/SillyBalls.saver
System Preferences(7983,0x7fff7e816960) malloc: reference count underflow for 0x4003b38e0, break on auto_refcount_underflow_error to debug.
System Preferences(7983,0x7fff7e816960) malloc: reference count underflow for 0x400352b80, break on auto_refcount_underflow_error to debug.

Unfortunately, I'm a little out of my comfort-zone here.  Could this error be causing my problem?  Here's a log of a gdb session showing the backtrace at the site of the refcount error.  (Note the "br" command before the "run" command.)

(By the way, if you try this yourself, ignore any "invalid frame buffer operation" errors you may see, which are probably coming from the built-in "Flurry" screensaver.)

Thanks again for any ideas you've got…
Stuart

$ gdb --args /Applications/System\ Preferences.app/Contents/MacOS/System\ Preferences dist/SillyBalls.saver
GNU gdb 6.3.50-20050815 (Apple version gdb-1822) (Sun Aug  5 03:00:42 UTC 2012)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ............. done

(gdb) br auto_refcount_underflow_error
Function "auto_refcount_underflow_error" not defined.
Make breakpoint pending on future shared library load? (y or [n]) y
Breakpoint 1 (auto_refcount_underflow_error) pending.

(gdb) run
Starting program: /Applications/System Preferences.app/Contents/MacOS/System Preferences dist/SillyBalls.saver
Reading symbols for shared libraries ++++++++++++.................................................................................................................................... done
Breakpoint 1 at 0x7fff9766d0c4
Pending breakpoint 1 - "auto_refcount_underflow_error" resolved
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries ......... done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .. done
Reading symbols for shared libraries .............................. done
Reading symbols for shared libraries ............... done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
Reading symbols for shared libraries . done
System Preferences(8058,0x7fff7e816960) malloc: reference count underflow for 0x4003b8a20, break on auto_refcount_underflow_error to debug.

Breakpoint 1, 0x00007fff9766d0c4 in auto_refcount_underflow_error ()

(gdb) backtrace
#0  0x00007fff9766d0c4 in auto_refcount_underflow_error ()
#1  0x00007fff976a19c7 in Auto::SubzoneBlockRef::dec_refcount_no_lock ()
#2  0x00007fff976a19fa in Auto::SubzoneBlockRef::dec_refcount ()
#3  0x00007fff9766821e in Auto::sieve_base::sieve_base_pointer<Auto::auto_refcount_sieve<1> > ()
#4  0x00007fff9766474c in auto_zone_release ()
#5  0x00007fff8d86ea9a in CFRelease ()
#6  0x00007fff8ffd91c7 in -[NSWindow _cancelPerformSelectors] ()
#7  0x00007fff9043e716 in -[NSWindow finalize] ()
#8  0x00007fff9464c57c in finalizeOneObject ()
#9  0x00007fff9767a07e in Auto::foreach_block_do ()
#10 0x00007fff9464c4ac in batchFinalize ()
#11 0x00007fff9464b219 in batchFinalizeOnMainThread ()
#12 0x00007fff9464afdc in objc_collect ()
#13 0x00007fff8d901d65 in __NSArrayEnumerate ()
#14 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#15 0x00007fff8d901cee in __NSArrayEnumerate ()
#16 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#17 0x00007fff8d901cee in __NSArrayEnumerate ()
#18 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#19 0x00007fff8d901cee in __NSArrayEnumerate ()
#20 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#21 0x00007fff8d901cee in __NSArrayEnumerate ()
#22 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#23 0x00007fff8d901cee in __NSArrayEnumerate ()
#24 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#25 0x00007fff8d901cee in __NSArrayEnumerate ()
#26 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#27 0x00007fff8d901cee in __NSArrayEnumerate ()
#28 0x00007fff8fe67aeb in -[NSView(NSInternal) _updateTrackingAreas] ()
#29 0x00007fff8fe67444 in __-[NSWindow _postInvalidCursorRects]_block_invoke_1 ()
#30 0x00007fff8d8c98e7 in __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ ()
#31 0x00007fff8d8c9846 in __CFRunLoopDoObservers ()
#32 0x00007fff8d89eaf9 in __CFRunLoopRun ()
#33 0x00007fff8d89e486 in CFRunLoopRunSpecific ()
#34 0x00007fff909a22bf in RunCurrentEventLoopInMode ()
#35 0x00007fff909a956d in ReceiveNextEventCommon ()
#36 0x00007fff909a93fa in BlockUntilNextEventMatchingListInMode ()
#37 0x00007fff8fda1779 in _DPSNextEvent ()
#38 0x00007fff8fda107d in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#39 0x00007fff8fd9d9b9 in -[NSApplication run] ()
#40 0x00007fff90019eac in NSApplicationMain ()
#41 0x0000000100001b30 in ?? ()



More information about the Pythonmac-SIG mailing list