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

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

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

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

8 ответов

Решение

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

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

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

1) Перейти к проекту-> HelloWorld Properties

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

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

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

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

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

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

7) Слева разверните "Линкер"

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

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

10) Нажмите ОК

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

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

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

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

  1. Debug-> Step Into (это гарантирует, что вы остановитесь сразу после запуска)
  2. Debug-> Модули> Windows-
  3. Ищите свой foo.exe в списке.
  4. Проверьте статус символа. Это говорит, что он загружен?
  5. Если нет, перейдите по пути и убедитесь, что: а) там есть файл с именем foo.pdb; б) метка времени в файле foo.pdb соответствует файлу foo.exe (или действительно близко)

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

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

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

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

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

Завершите чистку и перестройку, убедившись, что.pdb создан?

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

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

Я надеюсь, что это поможет вам!

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

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

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

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

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

Другие вопросы по тегам