Больше не могу отлаживать элементы управления ActiveX в Visual Studio 2008 - PullRequest
2 голосов
/ 11 июня 2010

В течение долгого времени я вызывал бы DebugBreak () или ASSERT (false) в коде запуска моего элемента управления ActiveX, загружал IE, переходил на страницу localhost, на которой размещен мой элемент управления, ждал появления диалогового окна, затем отладить мое приложение. Я также мог запустить его под отладчиком, установив IE в качестве контейнера.

Я попробовал снова впервые за 2 месяца, и теперь это больше не работает. Если я использую метод ASSERT (false), когда я получаю диалоговое окно «Отладка Visual C ++» и нажимаю «повторить», IE просто закрывается без каких-либо действий отладчика. Когда я пытаюсь запустить из VS2008 и надеюсь, что после загрузки страницы будет запущен DebugBreak (), VS2008 прекратит работу, но в нем будет указано «сервер RPC недоступен» или «сбой вызова клиента RPC». Мне никогда не разрешается размещать мое приложение в отладчике, и оно не отображается в списке модулей VS. Трассировка стека в VS2008 содержит только библиотеки DLL DLL и модули, а не подсказку моего кода.

Полагаю, что-то, что я обнаружил в Центре обновления Windows, сломало это. Кто-нибудь еще видел эту проблему и знает, как ее устранить? В настоящее время я полностью не могу отладить свой элемент ActiveX.

Ответы [ 4 ]

2 голосов
/ 22 июля 2010

Обратите внимание, что если вы используете 64-разрядную версию Windows, вам необходимо создать TabProcGrowth в 32-разрядном реестре, а НЕ в обычном реестре.

Для этого откройте% systemroot% \ syswow64 \ regedit вместо просто regedit.

Подробнее см. http://support.microsoft.com/kb/305097

1 голос
/ 17 июля 2010

Я столкнулся с точно такой же проблемой, как и вы, но оказалось, что причиной является сам IE, а не Visual Studio - вот что мне показал мой друг:
- IE8 открывает много процессов, по крайней мере, один для каждой вкладки плюс еще один. Это смущает отладчик.
- Вы можете отключить эту «функцию» и (для меня) отладка начала работать,
- Я все еще не могу «Присоединиться к процессу», но установка IE в качестве отладочного приложения - это нормально.

Вот как это отключить:

Чтобы преодолеть эту проблему, вам нужно отключить функцию роста процесса LCIE, выполнив следующие шаги:

1) Открыть RegEdit
2) Перейдите к HKEY_LOCALMACHINE -> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ -> Microsoft -> Internet Explorer -> Main
3) Добавьте меч под этим ключом с именем TabProcGrowth
4) Установите TabProcGrowth на 0

Если вы столкнулись с той же проблемой в Vista или новее, вам также необходимо отключить> защищенный режим.

До сих пор я тестировал на Win XP. Помощь пришла по этой ссылке: http://weblogs.asp.net/abdullaabdelhaq/archive/2009/06/01/VS-Debug-Problem-with-IE8.aspx

Удачи!

0 голосов
/ 27 апреля 2014

Как отлаживать C ++ в IE.10 + WIN8 64bit + VS2008

  1. Сохранить TabProcGrowth со Medium (не изменяется !!)

  2. Настройка проекта VS2008 OCX Отладка с помощью команды C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe, Attach = Да, тип отладчика = только собственный

  3. Открытие панели задач WIN8 из Internet Explore 10.

  4. Введите целевой путь файла ocx htm в URL-адресе Internet Explorer 10. и нажмите клавишу ввода, чтобы загрузить htm.

  5. Включить режим IEX ActiveX.

  6. Когда IE10 был готов к работе в режиме ActiveX, запустите проект VS2008 OCX, который подключит IE10 с вашей точкой останова.

  7. Снова обновите IE.10 html, чтобы начать отладку исходного кода ocx.

0 голосов
/ 11 июня 2010

Можно ли использовать «Присоединить к процессу» в Visual Studio и убедиться, что для «Присоединить к» задано значение «Собственный код»?

...