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

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

17 голосов
/ 12 февраля 2009

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

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

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

Ответы [ 8 ]

20 голосов
/ 14 февраля 2009

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

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

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

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

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

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

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

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

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

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

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

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

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

10) Нажмите ок

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

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

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

4 голосов
/ 12 февраля 2009

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

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

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

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

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

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

1 голос
/ 12 февраля 2009

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

1 голос
/ 12 февраля 2009

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

0 голосов
/ 04 июля 2013

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

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

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

0 голосов
/ 01 августа 2012

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

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

0 голосов
/ 13 февраля 2009

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

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

System.Diagnostics.Debugger.Launch();
System.Diagnostics.Debugger.Break();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...