Здравствуйте, black_jesus, Вы писали:
_>Заранее извиняюсь за идиотский вопрос, но ничего не могу найти в документации. Моя программа под MS Visual C++ 6 запускается на выполнение другой программой, написанной на Delphi. Мне требуется, чтобы моя программа выполнялась в отладчике. Перепробовал много вариантов, но ни один не сработал — программа запускается, но отладчик сообщает, что все точки останова недействительны и предлагает остановить программу на первой инструкции, что впоследствии и делает. То есть программа (по видимому та, что запускает мою программу) запускается под отладчиком, но мне-то нужен не ассемблерный листинг, а читаемый код на С++ и не запускающей программы, а моей собственной. При всех этих операциях я указывал в настройках проекта в качестве "Executable for debug session" имя запускающей прграммы. "Attach to process" в настройках проекта не получается по определению (запускающая программа при своем старте запускает мою). Я пробовал размещать все генерируемые двоичные файлы (.obj, .pdb и т.д.) в директории с exe-файлом, но тоже безуспешно. Использование DebugBreak() тоже ничего не дало. Если это вообще возможно, и кто-нибудь знает как это делается пожаллуйста подскажите. Заранее благодарен.
Я бы попробовал либо встроить int 3, либо сгенерить exception (например обратиться по левому адресу).
При этом нужно вообще убедиться, что System Debugger — VC6, а не Delphi (как — не знаю).
А чтобы VC6 было легче искать исходники, собирать это приложение с Debug Info в стиле
Program Database for Edit and Continue (тогда в .exe идут полные пути к исходникам):
Project Settings --> C/C++ --> Category: General, Debug Info
Delphi приложение запускается без Debuger'а, а VC6 свалится и потребует, чтобы его отладили.
Ну и на совсем крайний случай — SoftIce или вообще, писать логи в файл или OutputDebugString(),
а там уже разбираться, что не так работает.
Кажется так (c) Винни Пух.
--
Alter,
http://alter.org.ua