[MacRuby] #876: EXC_BAD_ACCESS using IOBluetooth

MacRuby ruby-noreply at macosforge.org
Sat Aug 28 04:47:13 PDT 2010


#876: EXC_BAD_ACCESS using IOBluetooth
-------------------------------------------+--------------------------------
 Reporter:  matt.wizeman@…                 |       Owner:  lsansonetti@…        
     Type:  defect                         |      Status:  new                  
 Priority:  critical                       |   Milestone:                       
Component:  MacRuby                        |    Keywords:                       
-------------------------------------------+--------------------------------

Comment(by matt.wizeman@…):

 Sorry for the confusion on the attachment. I didn't want you to have to
 use an actual bluetooth device to try out the code, so I was attempting to
 demonstrate the problem without using IOBluetooth. The IOBluetooth
 callback that causes the crash is:

 {{{
 - (void)l2capChannelData:(IOBluetoothL2CAPChannel*)l2capChannel data:(void
 *)dataPointer length:(size_t)dataLength;
 }}}

 which I've implemented in my ruby code as:

 {{{
 def l2capChannelData l2capChannel, data:data, length:dataLength
 }}}

 At least I think this is the case because if I comment out that method the
 application no longer crashes. I tried to get the method name in the
 debugger as requested but didn't have any luck. I got:

 {{{
 (gdb) bt
 #0  0x00007fff80bbc5f0 in object_getClass ()
 #1  0x00000001000ed2d3 in rb_objc_nsnumber2numeric ()
 #2  0x0000000103f09630 in ?? ()
 #3  0x00007fff86c1ddd6 in -[IOBluetoothL2CAPChannel processIncomingData:]
 ()
 #4  0x00007fff86c1c767 in -[IOBluetoothL2CAPChannel handleMachMessage:] ()
 #5  0x00007fff820bf07f in __NSFireMachPort ()
 #6  0x00007fff831b7bce in __CFMachPortPerform ()
 #7  0x00007fff83190171 in __CFRunLoopRun ()
 #8  0x00007fff8318e84f in CFRunLoopRunSpecific ()
 #9  0x00007fff8766491a in RunCurrentEventLoopInMode ()
 #10 0x00007fff8766471f in ReceiveNextEventCommon ()
 #11 0x00007fff876645d8 in BlockUntilNextEventMatchingListInMode ()
 #12 0x00007fff838ed29e in _DPSNextEvent ()
 #13 0x00007fff838ecbed in -[NSApplication
 nextEventMatchingMask:untilDate:inMode:dequeue:] ()
 #14 0x00007fff838b28d3 in -[NSApplication run] ()
 #15 0x00007fff838ab5f8 in NSApplicationMain ()
 #16 0x0000000103f02dcd in ?? ()
 #17 0x0000000100140c94 in rb_vm_dispatch ()
 #18 0x0000000103f01260 in ?? ()
 #19 0x0000000103f00a1b in ?? ()
 #20 0x000000010014ec08 in rb_vm_run ()
 #21 0x0000000100040650 in ruby_run_node ()
 #22 0x000000010014f06d in macruby_main ()
 #23 0x0000000100000efe in main (argc=1, argv=0x7fff5fbff640)
 (gdb) p rb_symbolicate(0x0000000103f09630)
 warning: Cancelling call - objc code on the current thread's stack makes
 this unsafe.
 warning: Canceling call as the ObjC runtime would deadlock.
 Unable to call function "rb_symbolicate" at 0x100147be0: no return type
 information available.
 To call this function anyway, you can cast the return type explicitly
 (e.g. 'print (float) fabs (3.0)')
 }}}

-- 
Ticket URL: <http://www.macruby.org/trac/ticket/876#comment:7>
MacRuby <http://macruby.org/>



More information about the macruby-tickets mailing list