执行libc.so代码时,由于SIGTRAP,应用崩溃了

时间:2019-02-23 16:13:38

标签: c linux

运行我的应用程序时,我间歇性地看到此问题。

应用程序崩溃并显示消息

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)发出的信号,但不想尝试。

请帮助您了解此问题的背景。

0 个答案:

没有答案