2013-06-04 2 views
0

У меня проблема с повреждением памяти в моей программе. Я понял, что указатель класса написан на место безумного. Я хочу проследить все назначения этого типа объектов, проверить их один за другим.как отслеживать все назначения определенного объекта класса в C++?

В моих кодах, вероятно, полмиллиона строк. Я не могу сделать это вручную. Есть ли какие-нибудь инструменты или параметры компиляции, которые мне помогут?

+8

Seen http://valgrind.org? –

+0

«Указатель класса, написанный на место безумного», не очень помогает. Но часть «трассировка всего этого типа объектов» может быть выполнена путем перегрузки оператора = и copy-constructor этого класса? – GadaaDhaariAvi

ответ

0

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

Для GDB просто введите watch foo и запустить код

Подробнее здесь:

http://sourceware.org/gdb/onlinedocs/gdb/Set-Watchpoints.html

How can I use "watch" GDB?

В качестве альтернативы, просто использовать valgrind найти свою порчу памяти, очень хорош в этом.

Смежные вопросы