Отладка между решениями с помощью Visual Studio - PullRequest
2 голосов
/ 16 июля 2010

Одна из замечательных вещей, которые я помню в Visual Basic 6 много лет назад, это то, что вы можете просто загрузить exe-проект ActiveX в IDE, установить точку останова, нажать «Выполнить» и всякий раз, когда кто-либо (либо EXE, либо проект в другомIDE) вызвал эту DLL, ваша точка останова достигла бы.

Возможно ли что-то подобное в Visual Studio 2008?Можно ли загрузить проект WinForms в одну IDE, а проект библиотеки классов - в другую IDE, и чтобы проект WinForms вызвал проект библиотеки классов?

Ответы [ 2 ]

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

В VS нельзя подключить два отладчика к одному процессу ( возможно , чтобы подключить VS и WinDbg к одному и тому же процессу, но не по умолчанию).

Дело в том, что вам не нужно использовать два отладчика. или включают вспомогательный проект в ваше решение. Сразу после загрузки dll вы сможете пройти через нее и установить в ней точки останова, как если бы это было решение, которое вы только что скомпилировали - все, что вам нужно, это символы отладки dll (pdb). Обычно время загрузки dll находится при запуске процесса, но если он загружается динамически, вы можете захотеть прервать его сразу после вызова LoadLibrary и только после этого установить точки останова в dll. Вы можете установить точки останова заранее, но вам все равно придется где-то разрывать после загрузки dll, чтобы разрешить перевод точек останова в адреса команд.

[Edit:] Это (я надеюсь) отвечает на вопрос, как вы его сформулировали, но это не будет воспроизводить опыт VB, который вы описываете. AFAIK нет способа установить точки останова в библиотеке, которые будут применяться к каждому процессу, который загружает эту библиотеку. Самое близкое, о чем я могу подумать, - это установить MessageBox, отображающий идентификатор процесса в подпрограмме инициализации библиотеки (по сути, DllMain), затем вручную подключить к этому процессу отладчик и установить точки останова по желанию.

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

Вы можете:

1) Добавьте проект с DLL к решению с помощью EXE (это не совсем то, что вы просите).

2) Вы можете присоединить IDE с проектом DLL к процессу, выполняющему EXE, из Debug -> Attach to process. Я никогда не пытался подключить два отладчика к одному и тому же процессу одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...