Точки останова для C ++ в Visual Studio - PullRequest
0 голосов
/ 01 ноября 2010

Точки останова, установленные в Visual Studio для проекта C ++, не достигаются при запуске отладчика.

Когда я запускаю отладчик, я получаю предупреждение

Не удалось найти информацию об отладке для IEXPLORER.EXE или она не совпадает. Символы не загружены. Вы хотите начать отладку?

Я нажимаю "Да", чтобы продолжить, но затем установленные точки останова имеют предупреждение о том, что:

Точка останова в настоящее время не будет достигнута. Для этого документа не было загружено ни одного символа

Как загрузить символы при отладке проекта? Нужно ли менять способ его построения?

Ответы [ 5 ]

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

Последний Internet Explorer имеет другую модель процессов, которая по своей сути отключает отладку элементов управления ActiveX (которую, я полагаю, вы пытаетесь отлаживать).Однако существует параметр реестра, который может вам помочь.

HKLM \ Software \ Microsoft \ Internet Explorer \ Main> TabProcGrowth: DWORD

Установите это значение равным 0, и вы сможете отладить элементы управления.

1 голос
/ 08 ноября 2010

Вы должны быть уверены в трех вещах:

  • создайте файл .pdb библиотеки DLL, которая содержит код, который вы пытаетесь разбить, и убедитесь, что этот файл .pdb содержит информацию об источнике. Если вы скажете мне, какой IDE / язык вы используете, я могу помочь вам в этом.
  • убедитесь, что ваш отладчик находит этот .pdb файл; Самый простой способ - скопировать файл .pdb рядом с вашим двоичным файлом. Если файл .pdb загружен, в окне инструмента, доступном в меню Debug\Windows\Modules в Visual Studio, должно быть написано «Symbol Loaded» в столбце «Symbol Status» в строке вашего DLL-файла.
  • если вы используете для отладки другой компьютер, а не тот, который использовался для создания вашего DLL-файла, убедитесь, что у вас есть исходный файл по одному и тому же пути на обоих компьютерах.

С этим ваша точка останова должна быть в порядке.

1 голос
/ 02 ноября 2010

Похоже, вы пытаетесь отладить расширение для Internet Explorer (панель инструментов, bho и т.специально, а затем JIT отладить его.Для этого используйте DbgBreakPoint в DllMain.Visual Studio должна открыть окно с вопросом, хотите ли вы его отладить.Это немного отсталый, но должен помочь вам избежать всего процесса, который может сделать IE.

Это также позволит вам увидеть выходные данные отладки из вашего другого вопроса, так как вы подключитесь к правильному процессу.

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

Я столкнулся с этой проблемой, и единственный способ обойти ее - переопределить опцию «Автоматически определять тип кода для отладки» в «Присоединении к процессу». Как только я очистил тип отладки Silverlight, все нужные модули обнаружились в iexplore.exe, мои точки останова загорелись, и я смог отладить соответствующим образом. Не уверен, почему это было необходимо, или если это все время, но это то, что сработало для меня.

0 голосов
/ 01 ноября 2010

Первое, что я хотел бы проверить, это то, что вы строите в режиме отладки. На панели инструментов есть поле со списком, в котором вы можете выбрать между режимом выпуска и отладки.

В Release отладочная информация не включена.

Во-вторых, убедитесь, что вы подключаете отладку к правильному процессу. Вы можете либо начать присоединяться к процессу (F5), либо начать без присоединения (Ctr-F5), а затем присоединиться вручную (через меню «Отладка» присоединить к процессу).

IEXPLORER - это процесс, к которому вы сейчас подключаетесь. Вы уверены, что это правильно?

...