How to determine reason of pthread_raise(sig=6) in core file with gdb

1

My app crashes sometime and I cant find the cause. My app is multithread (QThread) and use several QUdpSockets. I think it happens due to the simultaneous access to the socket, but I dont know when and where.

There is results of bt from core file:

#0 0x414596e1 in ?? ()
#1 0x412d731b in pthread_kill (thread=1649, signo=6) at signals.c:69
#2 0x412d76a0 in __pthread_raise (sig=6) at signals.c:200
#3 0x41459395 in ?? ()
#4 0x00000006 in ?? ()
#5 0x41546ff4 in ?? ()
#6 0xbd5fd8bc in ?? ()
#7 0x4145a87d in ?? ()
#8 0x00000006 in ?? ()
#9 0x00000020 in ?? ()
#10 0x00000000 in ?? ()
  1. What is sig=6 and when it emited?
  2. How can I determine the reason of this behavior?
  3. How do I know which -dev libraries are missing (??? positions of the stack)?
gdb
pthreads
core
qthread
raise
asked on Stack Overflow Jul 20, 2016 by portinary • edited Jul 21, 2016 by caf

1 Answer

0

Signal number 6 on Linux is SIGABRT - the fact that it's being raised with pthread_raise() seems to indicate that the application has directly called abort() or a failed assert().

It's likely that the missing parts of your backtrace are in the QT libraries, so try installing the debugging symbols for all of those.

answered on Stack Overflow Jul 21, 2016 by caf

User contributions licensed under CC BY-SA 3.0