On 28 May 2014 15:30, Aurelien Jarno <aurel...@aurel32.net> wrote:
> On Wed, May 28, 2014 at 03:20:24PM +0200, Raphael Geissert wrote:
>> On 28 May 2014 15:03, Aurelien Jarno <aurel...@aurel32.net> wrote:
>> > On Wed, May 28, 2014 at 12:31:00PM +0200, Raphael Geissert wrote:
>> [...]
>> > With a backtrace, it will be difficult to debug this kind of problem.
>> > You said that the backtrace is not useful with the wheezy -dbg package,
>> > but there is not such a package on wheezy...
>>
>> Good point, perhaps I confused it with the dbg package of one of the
>> other libusb*. Will check and get back to you on that.

Actually it's the -dbg in wheezy-backports

>> > Could you please provide the backtrace or the core file, so that we can
>> > see at least the libusb function where the crash occurs?
>>
>> Will rebuild with debugging symbols and see what I can get out of it, sure.
>
> Ok, great. I hope it will give us more details.

I rebuilt pcscd and libusb with -O0 -ggdb3 and I still don't get
anything useful out of the backtrace, the stack seems to have been
corrupted. valgrind's memcheck doesn't show anything interesting,
neither does wheezy's helgrind.
The strace shows that the thread that segfaults is the one that reads
from /sys/bus/usb/devices, the segfault occurs right after its call to
poll(2) returns when the device is plugged. ltracing pcscd doesn't
help much either, because libusb is dlopen'ed, so it is not seen by
ltrace.

Looking for conflicting symbols (who knows, just a possibility)
between libudev, libusb and libccid, I don't see any. However, I see
that newer libusbs call libudev directly, and apparently do some
thread handling on its own: pthread_create and pthread_join are now
used by libusb (cf. attached nm -D output, with addresses modified for
easier diff'ing).

Does that give you any hint already?

Cheers,
-- 
Raphael Geissert - Debian Developer
www.debian.org - get.debian.net

Attachment: wheezy.sym
Description: Binary data

Attachment: wheezybpo.sym
Description: Binary data

Reply via email to