Я периодически вижу эту проблему при запуске моего приложения.
Приложение вылетает с сообщением
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)
, но не хочу этого пробовать.
Пожалуйста, помогите понять причину этой проблемы.