运行我的应用程序时,我间歇性地看到此问题。
应用程序崩溃并显示消息
6 APP.BIN[5959]: unhandled signal 5 at 0ee786f8
当我检查导致崩溃的堆栈跟踪时,它指向clock_gettime()
调用。
定期进行呼叫以执行一些监视任务。
我没有运行gdb /调试器,该代码是使用-g -ggdb
标志和-O
优化构建的
# cat /proc/75/maps
0edb6000-0ee59000 r-xp 00000000 01:00 4222 /usr/lib/libc-2.17.so
0ee59000-0ee74000 ---p 001a3000 01:00 4222 /usr/lib/libc-2.17.so
0ee74000-0ee76000 r--p 001ae000 01:00 4222 /usr/lib/libc-2.17.so
0ee76000-0ee79000 rwxp 001b0000 01:00 4222 /usr/lib/libc-2.17.so <<< 0ee786f8
从libc.so看故障地址
我正在使用RHEL 7.1 OS的PPC 476内核(32位嵌入式处理器)
问题:
我的理解-在调试器下运行时使用SIGTRAP
,在我的情况下,我没有这样做。
为什么进行SIGTRAP
调用时会触发clock_gettime()
,是什么导致此问题断断续续的?
当我将gdb实际附加到我的应用程序并尝试单步执行时,我确实看到了这个问题。
此SIGTRAP
间歇性问题是否是由于某些运行时问题引起的?像是内存损坏?
我可以忽略signal(SIGTRAP, SIG_IGN)
发出的信号,但不想尝试。
请帮助您了解此问题的背景。