Сбой приложения из-за SIGTRAP при выполнении кода libc.so - PullRequest
0 голосов
/ 23 февраля 2019

Я периодически вижу эту проблему при запуске моего приложения.

Приложение вылетает с сообщением

6 APP.BIN[5959]: unhandled signal 5 at 0ee786f8

Когда я проверил трассировку стека, которая приводит к сбою, он указывает на вызов clock_gettime().

Периодически вызывается для выполнения некоторых задач мониторинга.

У меня нет запущенного gdb / debugger, код построен с флагами -g -ggdb и оптимизацией -O 1013 *

# 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

Я использую ядро ​​PPC 476 (32-битный встроенный процессор) с использованием ОС RHEL 7.1

Вопрос:

Мое понимание - SIGTRAP используется при работе под отладчиком, в моем случае я этого не делаю.

Почему SIGTRAP срабатывает, когда clock_gettime() вызовсделал и что делает эту проблему прерывистой?

Я вижу эту проблему, когда я на самом деле присоединяю gdb к своему приложению и пытаюсь выполнить один шаг.

Причиной этой неустойчивой проблемы SIGTRAP является некоторая проблема во время выполнения?как повреждение памяти?

Я могу игнорировать сигнал по signal(SIGTRAP, SIG_IGN), но не хочу этого пробовать.

Пожалуйста, помогите понять причину этой проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...