Подтвердить что ты не робот

Инструмент для отладки приложений Borland & Visual Studio

Иногда мне приходится отлаживать приложение, написанное с помощью Borland С++ Builder. Это приложение загружает dlls, скомпилированные с помощью Visual С++. Есть ли отладчик, который может отлаживать обе части приложения? В настоящее время я должен решить - либо я могу легко установить точки останова и увидеть исходный код в Visual Studio, либо мне нужно запустить Borland С++, но я не могу работать с источником из скомпилированной DLL Visual Studio.

Благодарю вас за помощь, Tobias

4b9b3361

Ответ 1

Вы можете попробовать OllyDbg - версия 1.x, похоже, не поддерживает последнюю версию Win, но есть и 2.0, хотя это все еще в альфа-состоянии (еще не пробовал себя еще).

EDIT - уточнение:

Отладка исходного кода OllyDbg читает отладочную информацию в Borland и Форматы Microsoft. Эта информация включает исходный код и имена функции, метки, глобальные и статические переменные. Поддержка динамических (стек) и структуры очень ограничены.

Вышеприведенный из здесь.

UPDATE:

Я не знаком с Borland С++ Builder, но в этой ссылке вы можете найти некоторые статьи, объясняющие, как справляться с некоторыми проблемами взаимодействия между Borland и MS, которые могут помочь.

Ответ 2

Если обе части построены с использованием ulink linker и имеют информацию об отладке, вы можете попробовать отладчик cdb32 (от автора компоновщика ulink)

cdb32 все еще находится в альфа-стадии, и я лично никогда не пробовал такую ​​ "смешанную" отладку

Ответ 3

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

У меня схожая проблема с твоей работой. Приложения, над которыми я работаю, написаны на Python вместо Borland С++, но, как и ваша ситуация, эти приложения полагаются на довольно большую библиотеку DLL для Visual Studio для некоторых функций.

Мой метод отладки этих приложений включает комбинацию двух стратегий отладки: использование интерактивного отладчика и так называемая технология отладки printf.

В основном я выбираю одну из двух областей в качестве основного фокуса отладки, и это определяет мой подход отладки:

  • Если для данной ситуации я решаю, что мне нужно более подробно отлаживать DLL, тогда я работаю с отладчиком VS. Я установил исполняемый файл для запуска в DLL-проекте как мой python script и который позволяет полностью отлаживать DLL-код. Если мне нужна поддержка отладки со стороны Python, я добавляю инструкции печати. Если мне нужна точка останова на стороне Python для проверки некоторых значений, я просто печатаю все эти значения и сразу после вызова функции С++, которая ничего не делает, но имеет точку останова, установленную в VS.

  • Когда мне нужно больше сосредоточиться на стороне Python, я использую интерактивный отладчик Python, но у меня есть VS с проектом DLL, загруженным сбоку, чтобы я мог быстро добавить любые необходимые printfs в DLL и перекомпилировать, так что, по существу, обратное вышесказанное.

Я знаю, что это не тот ответ, который вы ожидаете, но, по моему мнению, это достойное решение.

Ответ 4

Похоже, что можно конвертировать отладочную информацию, сгенерированную С++ Builder, в формат, понятный WinDbg (ссылка на обсуждение). Если это так, вы можете использовать его для отладки обеих частей вашего приложения (я еще не пробовал это).

Ответ 5

вы можете конвертировать файлы .map в формат отладочного файла Microsoft http://code.google.com/p/map2dbg/

теперь вы можете использовать Windebug; есть также упомянутый инструмент для преобразования в формат pdb, поэтому вы можете попробовать отладчик vС++

Ответ 6

Вы пытались загрузить DLL-код в VS, загружая код приложения в BCB и одновременно добавляя оба отладчика к одному и тому же запущенному процессу? Не уверен, что Windows это разрешит, но, возможно, стоит попробовать.