Подтвердить что ты не робот

Почему я не могу отлаживать?

Когда я собирался отлаживать программу на С++ в VS2005, программа не останавливалась на точки останова.

VS сказал: "Никакие символы не загружаются для любого стека стека вызовов. Исходный код не может быть отображен".

Что я могу сделать?

4b9b3361

Ответ 1

Спасибо всем.

Наконец, я нашел решение здесь.

Чтобы включить отладку:

1) Перейти к Project- > Свойства HelloWorld

2) Слева разверните "Свойства конфигурации"

3) Разверните "C/С++"

4) Слева выберите "Общие"

5) Справа измените "Формат отладочной информации" на "Запрограммировать базу данных для редактирования и продолжения (/ZI)"

5) Слева выберите "Оптимизация"

6) Справа измените "Оптимизация" на "Отключено (/Od)"

7) Слева откройте "Linker"

8) Слева выберите "Отладка"

9) Справа измените "Генерировать информацию отладки" на "Да"

10) Нажмите ok

11) Установите точки останова

12) Перестройте приложение

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

Ответ 2

Несколько шагов, чтобы попробовать:

  • Debug- > Step Into (это обеспечит остановку сразу после запуска)
  • Debug- > Windows- > Модули
  • Найдите ваш файл foo.exe в списке.
  • Проверить статус символа. Скажет ли он, что он загружен?
  • Если нет, перейдите на путь и убедитесь, что:  a) есть файл foo.pdb там  b) метка времени на foo.pdb соответствует foo.exe(или действительно близко)

Ответ 3

По какой-либо причине у вас нет правильных символов (.pdb файлов) в пути символа. Это может быть по нескольким причинам:

1) Ваш двоичный файл был скомпилирован совсем недавно, чем файлы .pdb. Попробуйте перекомпилировать все.

2) Вы пытаетесь отладить DLL и забыли скопировать файлы .pdb. Скопируйте эти файлы.

Также возможно, что ваш код не выполняется, как вы думаете.

Ответ 4

Похоже, вы привязываетесь к процессу, а не к обычной сессии отладки? Если вы действительно подключаетесь к процессу, важно убедиться, что двоичные файлы, которые вы пытаетесь отлаживать, были построены с тем же исходным кодом, который в настоящее время открыт в вашей среде IDE.

Ответ 5

Полностью очистить и перестроить, убедиться, что .pdb создан?

Ответ 6

Я испытал эту проблему (используя С# в VS) при попытке отладки моих модульных тестов.

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

System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();

Ответ 7

Просто добавьте еще одну возможность, еще не охваченную MainID:

При отладке я на самом деле запустил какую-то программу, которая вызывается в классы, которые я хотел отлаживать (это что-то вроде добавления). Вызываемая программа частично написана в неуправляемом С++. Когда я проверил "Включить неуправляемую отладку кода", возникла бы ошибка (и впоследствии программа потерпела крах), потому что у программы не было никакой информации об отладке.

Ответ 8

Я решил эту проблему в WP7, выполнив следующее:

  • Щелкните правой кнопкой мыши проект из обозревателя решений (Ctrl+W+S)
  • Выберите "Перестроить".
  • Снова выберите проект, щелкните его правой кнопкой мыши и выберите "Развернуть".
  • Начать отладки (F5)

Надеюсь, это поможет вам!