Как найти то, что хранится рядом с определенной переменной - PullRequest
0 голосов
/ 27 октября 2011

В настоящее время я борюсь с периодической ошибкой. Я создаю плавающий член моего класса. Я инициализирую его до нуля. А затем дать ему значение. Эта переменная используется несколько раз в течение следующих нескольких процессов, и по непонятным причинам она иногда меняет свое значение на действительно небольшое число и вызывает ошибку в моей программе. Я точно определил общую область в моем коде, где это происходит, и клянусь, в моем коде нет ничего, что воздействует на эту переменную. Кроме того, я буду запускать и компилировать одну и ту же программу с одним и тем же точным кодом несколько раз, и эта ошибка появляется только иногда.

Я думаю, что один из моих других массивов или указателей иногда выходит за границы (потому что я еще не реализовал проверку границ) и заменяю значение переменной его собственным, но я не знаю, какой именно. Мне было интересно, есть ли способ в XCode, чтобы узнать, какие переменные хранятся рядом или рядом с этой переменной, так что я могу точно определить, кто может наступить на этого бедного маленького сына из пистолета?

Ответы [ 2 ]

1 голос
/ 27 октября 2011

Вы можете включить «guard malloc» в XCode.Guard malloc может сообщить вам, записан ли ваш код за пределы какой-либо выделенной области.Я не знаю точный способ включить его (больше), но вы определенно найдете что-то в сетях.

0 голосов
/ 27 октября 2011

Если вы хотите посмотреть какое-то место в памяти при отладке кода с помощью gdb, вы можете использовать watch точки останова.

Возможно, у вас поврежденная куча памяти.Использование такого инструмента, как valgrind может помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...