Что означает _dopr - PullRequest
       11

Что означает _dopr

1 голос
/ 22 августа 2011

У меня есть дамп сбоя gdb, произошедший сбой на допре

Что это делает?Я не определил эту функцию и нигде не использую вызов.Является ли libc функцией?

[Switching to thread 1 (Thread 5339)]#0  0x00000000005f0937 in _dopr ()
(gdb) bt
#0  0x00000000005f0937 in _dopr ()
#1  0x00000000000003ff in ?? ()
#2  0x000000000111c3b0 in ?? ()
#3  0x00007fced1fe1f80 in ?? ()
#4  0x0000000000000000 in ?? ()

1 Ответ

4 голосов
/ 22 августа 2011

Как уже упоминалось в комментариях, _dopr не ваша проблема.То, на что вы обращаете внимание - это повреждение стека, и, опять же, в комментариях наиболее вероятной проблемой является переполнение буфера.

Предполагая, что вы компилируете свое приложение с помощью gcc, добавьте параметр:

-fstack-protector-all

к вашим параметрам компиляции и ссылки.Это закрепит пару дополнительных сторожевых битов вокруг стека, и когда произойдет переполнение буфера, в GDB вы увидите гораздо более полезное сообщение «Обнаружено разрушение стека» вместе с трассировкой стека вашего приложения, прежде чем оно фактически разрушит стек.

...