Запустите внешнее приложение из программы C ++ и присоедините его к отладчику Visual 2008 во время отладки хоста в WinAPI - PullRequest
1 голос
/ 19 февраля 2011

В основном у меня есть программа Host and Child.У меня нет источников для ребенка, поэтому я ничего не могу изменить в нем.Я хочу запустить Host из отладчика, который в какой-то момент должен запустить дочернюю программу.Я хочу автоматически присоединить Child для сеанса отладки (поэтому все точки останова, установленные в исходных файлах DLL, загруженных в дочерний процесс, попадут).

Как это сделать в Visual Studio 2008 C ++ со стандартным WinAPI?

Я пробовал это:

SHELLEXECUTEINFO sei = {0};

sei.cbSize = sizeof (SHELLEXECUTEINFO);
sei.fMask  = SEE_MASK_NOCLOSEPROCESS;
sei.lpVerb = "open";
sei.lpFile = "Child.exe";
sei.lpParameters = "/Param";
sei.nShow  = SW_SHOWNORMAL;

if (ShellExecuteEx (&sei))
{
    WaitForSingleObject (sei.hProcess, INFINITE);
}

Но это не прикрепляет отладчик для Child.exe

1 Ответ

3 голосов
/ 19 февраля 2011

Вы можете использовать программу gflags.exe. Это будет доступно из командной строки VS. Вы можете указать отладчик для запуска при запуске дочерней программы. Указав vsjitdebugger.exe в качестве отладчика в gflags.exe, вы можете выбрать текущий запущенный экземпляр VS в качестве отладчика.

Edit:

Извините за путаницу. Gflags НЕ используется по умолчанию в Visual Studio. Вам понадобятся Средства отладки для Windows . Однако, если все, что вы хотите сделать, это установить отладчик по умолчанию для определенного изображения, вы можете использовать IFEO , что в любом случае делает gflags.exe:)

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