Присоединение к стороннему исполняемому файлу в Visual C ++ 2003 - PullRequest
0 голосов
/ 27 августа 2008

У меня есть исполняемый файл (скомпилированный кем-то еще), который находится рядом с моим кодом. Я работаю над кодом в Visual C ++ 2003, но у меня нет файла проекта для этого конкретного исполняемого файла (код используется для создания множества различных инструментов). Можно ли запустить двоичный файл в отладчике Visual C ++ и просто сказать ему, где находятся источники? Я делал это раньше в GDB, поэтому знаю, что это должно быть возможно.

Ответы [ 3 ]

2 голосов
/ 05 сентября 2008

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

Предполагается, что файл PDB КОГДА-ЛИБО создавался для этого приложения - что, я думаю, не является конфигурацией по умолчанию для проектов VC ++ в режиме выпуска. Поскольку вы утверждаете, я предполагаю, что это конфигурация отладки?

0 голосов
/ 28 августа 2008

Да, это возможно. Просто настройте пустой проект и укажите нужный файл .exe в качестве цели отладки. Я точно не помню, как, но я знаю, что это выполнимо, потому что я использовал winamp.exe в качестве цели отладки, когда разрабатывал плагины для Winamp.

Поскольку у вас нет исходного файла, он будет показывать только код сборки, но это все равно может быть полезно, так как вы также можете проверять память, регистры и т. Д.

Обновление

Если вы отлаживаете утверждение в своей собственной программе, вы сможете увидеть исходный код очень хорошо, поскольку путь к исходному файлу сохраняется в исполняемом файле, когда вы компилируете его с отладочной информацией.

0 голосов
/ 28 августа 2008

Если не считать других ответов, я бы попробовал присоединить к исполняемому процессу в Visual Studio, установить точку останова в вашем коде, и когда вы входите в процесс, к которому у вас нет исходного кода, он должен запросить исходный файл .

...