Каков хороший способ отладки повреждения значения стека. В моей программе иногда адрес указателя this меняется после возврата метода, который завершает работу файлового дескриптора. Я отлаживал программу часами, но не могу найти проблему.
Каков хороший способ узнать, что изменяет адрес этого указателя? Когда я вручную добавляю часы к указателю this, ошибка не возникает. Ошибка по-прежнему возникает, когда я максимально упрощаю свой код. Я попробовал Valgrind, но он не обнаружил никаких ранних повреждений стека.
Мне удалось обнаружить, когда возникает ошибка, я скомпилировал код в 64-битном режиме. Адрес этого изменен с 0xxxxxxx на 0x1000000xxxxxxx. Я проверяю адрес этого в методах, где возникает ошибка, которую я узнал при изменении адреса (см. Первый параграф для этого).
Есть ли другой способ выяснить причину этой проблемы?
-fstack-protector
или-fstack-protector-all
? - person Brett Hale   schedule 28.01.2014