Как отлаживать в visual studio 2008 - PullRequest
1 голос
/ 27 ноября 2010

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

Как получить строку, в которой мой код вызвал эту ошибку?Или, по крайней мере, понять, какая часть моего кода вызывает этот сбой ...

Иногда он даже не сообщает номер строки, я не совсем понимаю, как работает этот режим отладки.Я использовал верификатор приложения, и иногда он дает номера строк.Похоже, это говорит мне случайно эти вещи ... как мне решить это?

Вот что я получаю:

First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dd4c..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dc50..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dc50..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dd48..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012d9a8..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dc6c..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dcd0..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dabc..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dabc..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dabc..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db5c..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dabc..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dc30..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db48..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db64..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db5c..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db48..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012db04..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dabc..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012da04..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dc30..
First-chance exception at 0x7c812aeb in test.exe: Microsoft C++ exception: std::bad_alloc at memory location 0x0012dcd0..

Ответы [ 2 ]

4 голосов
/ 27 ноября 2010

Отладчик MSVC чрезвычайно мощный.Цена, которую вы платите за это, также сложна.

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

Перейдите в раздел «Отладка> Исключения ...». В появившемся диалоговом окне установите флажки рядом с «Исключениями C ++» и «Исключениями Win32».

Запустите программу.При возникновении этих исключений оно должно сломаться.

Имейте в виду, что исключения первого шанса широко используются в MFC для связи между компонентами.Это не ошибки.Но вы увидите их сообщение в окне вывода.Если они останутся необработанными, тогда вам придется решить проблему.

2 голосов
/ 27 ноября 2010

Используйте точки останова в строке кода, где вы хотите «приостановить» выполнение программы. Таким образом, вы сможете увидеть состояние программы (значения переменных и т. Д. И т. Д.).

Здесь у вас есть серия руководств по настройке всего, чтобы получить возможность отладки.

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