After upgrading from 1.0.15 to 1.0.16 my application crashes in libusb io.c,
line 1534
(int usbi_handle_transfer_completion(struct usbi_transfer *itransfer,
enum libusb_transfer_status status)) when unplugging a device with
active transfers. (incoming endpoints that is waiting for interrupt transfers
from device).
Unplugging did function properly in 1.0.15.
The crash is a BAD ACCESS, the inferior stopped because it received a signal
from the operating system.
Below you will find an excerpt of variable values on the stack when crash
occurs, please note that status != transfer->status (idk if this is important).
Locals
ctx @0x102136c10 libusb_context
ctrl_pipe [2] int [2]
debug 2 int
debug_fixed 0 int
event_handler_active 1 int
event_waiters_cond pthread_cond_t
event_waiters_lock pthread_mutex_t
events_lock pthread_mutex_t
fd_added_cb 0 libusb_pollfd_added_cb
fd_cb_user_data 0x0 void *
fd_removed_cb 0 libusb_pollfd_removed_cb
flying_transfers list_head
flying_transfers_lock pthread_mutex_t
hotplug_cbs list_head
hotplug_cbs_lock pthread_mutex_t
hotplug_pipe [2] int [2]
list list_head
open_devs list_head
open_devs_lock pthread_mutex_t
pollfd_modify 0 unsigned int
pollfd_modify_lock pthread_mutex_t
pollfds list_head
pollfds_lock pthread_mutex_t
usb_devs list_head
usb_devs_lock pthread_mutex_t
flags 40 '(' uint8_t
itransfer @0x102136d28 usbi_transfer
flags 1 '\001' uint8_t
list list_head
next 0x0 list_head *
prev 0x206000000000 list_head *
lock pthread_mutex_t
__opaque [56] char [56]
__sig 4329794884 long
num_iso_packets 1297437784 int
timeout timeval
tv_sec 27111757724013315 __darwin_time_t
tv_usec 953444 __darwin_suseconds_t
transferred 34827584 int
status LIBUSB_TRANSFER_COMPLETED enum
libusb_transfer_status
transfer @0x109b84700 libusb_transfer
actual_length 0 int
buffer @0x102408230 "" unsigned char *.
*buffer 0 '\0' unsigned char
callback 0x10000ec46
<UsbWorker::handle_transfer(libusb_transfer*)> libusb_transfer_cb_fn
dev_handle @0x10408d600 libusb_device_handle *.
auto_detach_kernel_driver 0 int
claimed_interfaces 1 unsigned long
dev @0x1014d0840 libusb_device *.
attached 0 int
bus_number 20 '\024' uint8_t
ctx 0x102136c10 libusb_context *
device_address 24 '\030' uint8_t
device_descriptor
libusb_device_descriptor
list list_head
lock pthread_mutex_t
num_configurations 1 '\001'
uint8_t
os_priv [-1] unsigned char [0]
parent_dev 0x10213d4a0
libusb_device *
port_number 1 '\001' uint8_t
refcnt 1 int
session_data 89433533131011
unsigned long
speed LIBUSB_SPEED_FULL enum
libusb_speed
list list_head
next 0x102136c70 list_head *
prev 0x102136c70 list_head *
lock pthread_mutex_t
__opaque [56] char [56]
__sig 1297437784 long
os_priv [-1] unsigned char [0]
endpoint 131 unsigned char
flags 0 '\0' uint8_t
iso_packet_desc [-1] libusb_iso_packet_descriptor [0]
length 64 int
num_iso_packets 0 int
status LIBUSB_TRANSFER_NO_DEVICE enum
libusb_transfer_status
timeout 0 unsigned int
type 3 unsigned char
user_data @0x102408170 void *.
*user_data 0 void
Inspector
Expressions
list_del <not in scope>
Return Value
Tooltip
---
Reply to this email directly or view it on GitHub:
https://github.com/libusbx/libusbx/issues/121
------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
libusbx-devel mailing list
libusbx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libusbx-devel