"bus error" correspond au "segmentation fault" de Linux ou Windows.
En gros ça signifie que l'on tente d'écrire dans une zone mémoire interdite (le plus souvent).
J'ai tenté de débugguer le programme avec GDB.
La ligne qui pose problème est la suivante:
Bloc de code:
retval=usb_bulk_read(ifmidi_handle, 0x81, buffer, 64, 100);
buffer étant un tableau de 64 cases. Cette ligne fonctionne sous Linux.
GDB me sort une erreur détaillée au moment de l'exécution de cette ligne:
Bloc de code:
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x0166a196 in usb_bulk_read (dev=0x302220, ep=129, bytes=0xbffffaa4 "?#", size=64, timeout=100) at darwin.c:907
907 device = dev->impl_info;