Как остановить приложение C ++ во время выполнения для отладки в DLL? - PullRequest
4 голосов
/ 02 июня 2009

У меня есть приложение, для которого у меня нет кода, и DLL, для которого у меня есть код. Мне нужно иметь возможность отладки в DLL, но не хватает исходного файла для EXE, как мне это сделать?

Код DLL - это MFC C ++; Я считаю, что основное приложение тоже самое.

Я попытался заключить сделку «установить целевое приложение», в которой я установил приложение, из которого будет вызываться dll, и приложение вызывало ужасную, ужасную смерть при вызове таким образом. Я не знаю, кроется ли ошибка в этой dll или в исполняемом файле для такого поведения, и это только одна из множества вещей, которые я хотел бы решить.

Я думаю, что должен быть какой-то вызов, позволяющий dll вращаться бесконечно, пока отладчик не присоединится к процессу, и в этот момент я смогу отладить dll, подключившись к процессу. Имеет ли это смысл? Есть ли лучший способ сделать это?

Ответы [ 11 ]

0 голосов
/ 02 июня 2009

Вот простое решение: добавьте Sleep(10000); в DllMain (или некоторый другой код запуска), а затем используйте Tools / Attach to Process, чтобы присоединить ваш отладчик, пока код спит.

...