2009-02-05 2 views
8

Возможно ли удаленно отлаживать процесс, запущенный вне VB6?Удаленная отладка в VB6

Приложение представляет собой приложение VB6 с довольно большим количеством ресурсов dll/ocx. Я пытаюсь настроить развертывание ClickOnce, используя Free-Free COM, приложения VB6, но получал ошибки при его выполнении.

Мое понимание того, как VB6 перенаправляет записи COM, вероятно, будет означать, что это невозможно, но я думал, что у кого-то может быть лучшая идея.

ответ

3

Я считаю, что при отладке в VB6 он не привязывается к исполняемому двоичному файлу, но вместо этого интерпретирует код внутри своего собственного процесса. Вот почему Диспетчер задач и Win32 API показывают VB6.exe как запущенное приложение при отладке.

Также, как вы говорите, VB6 иногда вызывает короткое замыкание вызовов в библиотеках COM, поэтому перехват этих вызовов не всегда возможен.

Возможно, вам придётся прибегнуть к интеллектуальному протоколированию (т.е. регистрировать значения переменных вокруг точек, где возникают ошибки, в надежде найти строку кода, на которой она происходит, и/или состояние соответствующих переменных.)

Успехов

+0

Ведение журнала - это путь, который, как я предполагал, мне нужно будет принять. Просто не ожидал ретро-установки большого количества дополнительных протоколов к существующему приложению. – benPearce

3

вы пробовали windbg? Просто убедитесь, что у вас есть файлы pdb для проекта.

8

Чтобы поддержать ответ Дэррил в предлагая Windbg - вот 2006 blog post парнем Microsoft об использовании Windbg с VB6, и 2004 blog post другим парнем Microsoft с кратким введением в Windbg.

EDIT: Просто, чтобы сделать его полностью понятным. Windbg - бесплатный автономный отладчик от Microsoft. Скомпилируйте ваши VB6 EXE, DLL и OCX в собственный код с символами (создайте файлы PDB), и вы сможете отладить ваше приложение ClickOnce.