C ++: с чего начать, когда мое приложение падает в случайных местах? - PullRequest
6 голосов
/ 07 июля 2010

Я занимаюсь разработкой игры, и когда я выполняю в игре определенное действие, она вылетает. Итак, я пошел на отладку и увидел, что мое приложение зависало при простых инструкциях C ++, таких как if, return, ... Каждый раз, когда я перезапускался, он зависал случайным образом на одной из 3 строк и никогда не выполнялся.

строка 1:

if (dynamic) { ... } // dynamic is a bool member of my class

строка 2:

return m_Fixture; // a line of the Box2D physical engine. m_Fixture is a pointer.

строка 3:

return m_Density; // The body of a simple getter for an integer.

Я не получаю ошибок ни из приложения, ни из ОС ...

Существуют ли подсказки, советы или рекомендации для более эффективной отладки и получения информации о происходящем?

Вот почему я люблю Java ...

Спасибо

Ответы [ 15 ]

1 голос
/ 07 июля 2010

У меня были такие проблемы раньше.Я пытался обновить графический интерфейс из разных потоков.

0 голосов
/ 07 июля 2010

используйте отладчик GNU

0 голосов
/ 07 июля 2010

Рефакторинг.

Отсканируйте весь код, сделайте его более понятным, если неясно при первом прочтении, попытайтесь понять, что вы написали, и сразу же исправьте то, что кажется неправильным.* Вы непременно обнаружите проблему (и) таким образом и исправите множество других проблем.

0 голосов
/ 07 июля 2010

Я обнаружил «случайные» сбои, когда есть какая-то ссылка на удаленный объект.Поскольку память не обязательно перезаписывается, во многих случаях вы не замечаете этого, и программа работает правильно, а затем происходит сбой после обновления памяти и больше не действует.некоторые подозрительные «удаляет».Тогда, если он больше не падает, вот оно где.

0 голосов
/ 07 июля 2010

Проверьте указатели.По-видимому, вы разыменовываете нулевой указатель.

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