Отладочная информация о обработчике сигналов, который вызывает calloc? - PullRequest
0 голосов
/ 02 февраля 2019

Calloc вызывается из некоторого обработчика сигнала в моем производственном коде.Я знаю, что вызывать calloc из обработчика сигнала небезопасно.Мне нужно найти точку, где это делается в моем производственном коде, но обратная трассировка не поможет.Пожалуйста, руководство

print $_siginfo.si_signo

Я знаю выше, говорит номер сигнала текущего сигнала.Но это не помогает мне найти точку.

Ниже приведен стек вызовов, трассировка стека чуть ниже calloc бесполезна.

#26 0x00002aaaaaccfec9 in calloc () from 
#27 0x00000000047c522f in Ox4074f61149c39b9f ()
#28 0x00000000047aa93a in Ox4074ff7b773cfdf6 ()
#29 0x000000000468c981 in Ox4074ea3d1f5df78f ()
#30 0x000000000468e667 in ?? ()
#31 0x000000000468f2dd in ?? ()
#32 0x0000000004686f2c in Ox4074ea18721a0b5d ()
#33 0x00000000047b3727 in Ox4075027a04de15e3 ()
#34 0x00000000047efdd4 in ?? ()
#35 <signal handler called>
#36 0x00002aaabc5d0332 in __lll_lock_wait () from /lib64/libpthread.so.0
#37 0x00002aaabc5cb5d8 in _L_lock_854 () from /lib64/libpthread.so.0
#38 0x00002aaabc5cb4a7 in pthread_mutex_lock () from 
    /lib64/libpthread.so.0

1 Ответ

0 голосов
/ 02 февраля 2019

Пожалуйста, указывайте

Наиболее вероятное объяснение трассировки стека, которую вы наблюдали: вы анализируете дамп core с рабочей машины на другой машине ,и используя неправильные системные библиотеки для этого.

См. этот ответ о том, как это сделать правильно.

...