Ok, can you get me a stack trace as well. I have an idea where the crash might 
be but I need to stack trace to be sure. Please get a stack trace for libusbx 
compiled with -g3 so I can see line numbers.

-Nathan

On Jul 16, 2013, at 1:56 PM, Lilk <notificati...@github.com> wrote:

> 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.
> 
> ------------------------------------------------------------------------------
> 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

------------------------------------------------------------------------------
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

Reply via email to