plus~ example Xcode external crashes Max


    Jul 14 2006 | 9:56 pm
    Hi all,
    I have tried to use the example plus~ external that I built using the plus~.xcodeproj included in the MaxMSP UB SDK. The external compiles well, finds its frameworks nicely, but crashes Max on load. (See Crash Log below). I am using the Development build configuration for the Xcode project which compiles and links only ppc code.
    The plus~.mxo file created looks file, and is readily identified:
    [Casper] penrose % file plus~ plus~: Mach-O bundle ppc
    I tried this first on an old 500MHz Powerbook G4 (running 10.4.7). I installed Xcode 2.3 and had this behavior. I downgraded to Xcode 2.2.1 hoping that there was a subtlety with bundles between versions. The external compiled on Xcode 2.2.1 also has this identical behavior.
    I hoped that the problem was machine specific, however, a Dual 2.5 GHz Power Mac running 10.4.7 produced the crash log you see below. The crash logs are quite similar on both machines.
    Christopher penrose@music.princeton.edu
    Date/Time: 2006-07-14 11:41:44.218 -0700 OS Version: 10.4.7 (Build 8J135) Report Version: 4
    Command: MaxMSP Path: /Applications/MaxMSP 4.6/MaxMSP.app/Contents/MacOS/MaxMSP Parent: WindowServer [62]
    Version: ??? (4.6b11)
    PID: 702 Thread: 0
    Exception: EXC_BAD_ACCESS (0x0001) Codes: KERN_PROTECTION_FAILURE (0x0002) at 0x00000000
    Thread 0 Crashed: 0 <> 0x00000000 0 + 0 1 com.cycling74.plus~ 0x01ed731c main + 104 (plus~.c:33) 2 com.cycling74.MaxMSP46 0x00034740 external_bundleload (char*, char*, char*, short) + 940 (install.c:816) 3 com.cycling74.MaxMSP46 0x0003492c external_load + 244 (install.c:215) 4 com.cycling74.MaxMSP46 0x00036770 extload + 140 (loader.c:528) 5 com.cycling74.MaxMSP46 0x00036cc0 newload_internal + 868 (loader.c:622) 6 com.cycling74.MaxMSP46 0x00036e04 newload + 64 (loader.c: 564) 7 com.cycling74.MaxMSP46 0x000449f8 typedmess_fun + 2332 (message.c:630) 8 com.cycling74.MaxMSP46 0x00045000 typedmess + 104 (message.c:399) 9 com.cycling74.MaxMSP46 0x000460c8 aeval + 1804 (message.c:1061) 10 com.cycling74.MaxMSP46 0x0000bc38 atombuf_eval + 216 (atombuf.c:234) 11 com.cycling74.MaxMSP46 0x00108460 patcher_vnewex + 208 (vnewobj.c:486) 12 com.cycling74.MaxMSP46 0x00044288 typedmess_fun + 428 (message.c:492) 13 com.cycling74.MaxMSP46 0x00045000 typedmess + 104 (message.c:399) 14 com.cycling74.MaxMSP46 0x000460c8 aeval + 1804 (message.c:1061) 15 com.cycling74.MaxMSP46 0x00013c10 bf_fastload + 944 (binfile.c:447) 16 com.cycling74.MaxMSP46 0x000350e8 lowload_type(char*, short, long, short, atom*, short) + 748 (loader.c:145) 17 com.cycling74.MaxMSP46 0x000359f0 fileload_extended + 240 (loader.c:397) 18 com.cycling74.MaxMSP46 0x00035a88 fileload_type + 88 (loader.c:379) 19 com.cycling74.MaxMSP46 0x00035dd8 dropload + 532 (loader.c:260) 20 com.cycling74.MaxMSP46 0x00008f84 ae_openfile(FSSpec*) + 32 (appleevent.c:38) 21 com.cycling74.MaxMSP46 0x00123a6c sysiac_iterate + 376 (sysiac.c:157) 22 com.cycling74.MaxMSP46 0x00009134 ae_docopen(AEDesc const*, AEDesc*, long) + 56 (appleevent.c:71) 23 com.apple.AE 0x914f9960 aeDispatchAppleEvent (AEDesc const*, AEDesc*, unsigned long, unsigned char*) + 208 24 com.apple.AE 0x914f97fc dispatchEventAndSendReply(AEDesc const*, AEDesc*) + 44 25 com.apple.AE 0x914f9654 aeProcessAppleEvent + 284 26 com.apple.HIToolbox 0x931edeb0 AEProcessAppleEvent + 60 27 com.apple.HIToolbox 0x93231b24 ProcessHighLevelEvent + 140 28 com.apple.HIToolbox 0x93231a7c StandardApplicationEventHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 328 29 com.apple.HIToolbox 0x931ea554 DispatchEventToHandlers (EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 692 30 com.apple.HIToolbox 0x931e9cac SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372 31 com.apple.HIToolbox 0x931e9b28 SendEventToEventTargetWithOptions + 40 32 com.apple.HIToolbox 0x931f0e9c ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 704 33 com.apple.HIToolbox 0x931ea7a4 DispatchEventToHandlers (EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 1284 34 com.apple.HIToolbox 0x931e9cac SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372 35 com.apple.HIToolbox 0x931f0a60 SendEventToEventTarget + 40 36 com.apple.HIToolbox 0x932317a0 ToolboxEventDispatcher + 92 37 com.apple.HIToolbox 0x9323172c HLTBEventDispatcher + 16 38 com.apple.HIToolbox 0x9322fce4 RunApplicationEventLoop + 148 39 com.cycling74.MaxMSP46 0x00038584 app_run + 96 (main.c: 1460) 40 com.cycling74.MaxMSP46 0x0003885c main + 708 (main.c:416) 41 com.cycling74.MaxMSP46 0x00001f18 _start + 340 (crt.c:272) 42 com.cycling74.MaxMSP46 0x00001dc0 start + 60
    Thread 1: 0 libSystem.B.dylib 0x900551a8 semaphore_timedwait_signal_trap + 8 1 libSystem.B.dylib 0x90071828 pthread_cond_timedwait_relative_np + 556 2 ...ple.CoreServices.CarbonCore 0x90bf4550 TSWaitOnSemaphoreCommon + 176 3 ...ple.CoreServices.CarbonCore 0x90bfc4ec TimerThread + 60 4 libSystem.B.dylib 0x9002bc28 _pthread_body + 96
    Thread 2: 0 libSystem.B.dylib 0x9000b268 mach_msg_trap + 8 1 libSystem.B.dylib 0x9000b1bc mach_msg + 60 2 com.apple.audio.midi.CoreMIDI 0x97036ac8 XServerMachPort::ReceiveMessage(int&, void*, int&) + 84 3 com.apple.audio.midi.CoreMIDI 0x97029c80 MIDIInPortThread::Run () + 64 4 com.apple.audio.midi.CoreMIDI 0x9702df44 XThread::RunHelper (void*) + 28 5 com.apple.audio.midi.CoreMIDI 0x9703787c CAPThread::Entry (CAPThread*) + 96 6 libSystem.B.dylib 0x9002bc28 _pthread_body + 96

    • Jul 15 2006 | 9:35 am
      On 14-Jul-2006, at 23:56, Christopher Penrose wrote:
      > 0 <> 0x00000000 0 + 0 > 1 com.cycling74.plus~ 0x01ed731c main + 104 (plus~.c:33)
      Line 33 of plus~.c is the call to dsp_initclass(). So I'm wondering if the MaxAudioAPI.framework is linked properly and found at runtime?
      You might want to trace through main() using the GNU debugger and Max/ MSP Runtime.
      Hope this helps, Peter
      -------------- http://www.bek.no/~pcastine/Litter/ ------------- Peter Castine +--> Litter Power & Litter Bundle for Jitter Universal Binaries on the way iCE: Sequencing, Recording & Interface Building for |home | chez nous| Max/MSP Extremely cool |bei uns | i nostri| http://www.dspaudio.com/ http://www.castine.de
    • Jul 15 2006 | 5:54 pm
      Thanks Peter,
      I had used the GNU debugger on my Powerbook to see where in main the crash was occurring, and I verified that it is the same on my PowerMac.
      It crashes on the first line of the main() function which is the msp setup() call specified in plus~.c from the UB SDK.
      void main(void) { setup((t_messlist **)&plus_class, (method)plus_new, (method) dsp_free, (short)sizeof(t_plus), 0L, A_DEFFLOAT, 0);
      Christopher penrose@music.princeton.edu
      On Jul 15, 2006, at 2:35 AM, Peter Castine wrote:
      > On 14-Jul-2006, at 23:56, Christopher Penrose wrote: > >> 0 <> 0x00000000 0 + 0 >> 1 com.cycling74.plus~ 0x01ed731c main + 104 (plus~.c: >> 33) > > Line 33 of plus~.c is the call to dsp_initclass(). So I'm wondering > if the MaxAudioAPI.framework is linked properly and found at runtime? > > You might want to trace through main() using the GNU debugger and > Max/MSP Runtime.
    • Jul 15 2006 | 6:27 pm
      Thanks again Peter,
      I just verified that MaxAPI.framework and MaxAudioAPI.framework found in /Library/Frameworks were the versions provided in the UB SDK. However, I discovered that I had older copies of these frameworks inside of ~/Library/Frameworks Oops. For some reason Xcode was linking against these at compile time =( Problem solved.
      Christopher
      On Jul 15, 2006, at 10:54 AM, Christopher Penrose wrote:
      > > Thanks Peter, > > I had used the GNU debugger on my Powerbook to see where in main > the crash was occurring, and I verified that it is the same on my > PowerMac. > > It crashes on the first line of the main() function which is the > msp setup() call specified in plus~.c from the UB SDK. > > void main(void) > { > setup((t_messlist **)&plus_class, (method)plus_new, (method) > dsp_free, (short)sizeof(t_plus), 0L, A_DEFFLOAT, 0); > > > Christopher > penrose@music.princeton.edu > > > > On Jul 15, 2006, at 2:35 AM, Peter Castine wrote: > >> On 14-Jul-2006, at 23:56, Christopher Penrose wrote: >> >>> 0 <> 0x00000000 0 + 0 >>> 1 com.cycling74.plus~ 0x01ed731c main + 104 >>> (plus~.c:33) >> >> Line 33 of plus~.c is the call to dsp_initclass(). So I'm >> wondering if the MaxAudioAPI.framework is linked properly and >> found at runtime? >> >> You might want to trace through main() using the GNU debugger and >> Max/MSP Runtime. > > > >