Как отладить C # программу, запущенную из внешнего exe-файла, написанного на Borland C ++ Builder - PullRequest
0 голосов
/ 28 июня 2018

Вот мой поток

//''''''''''''                             ''''''''''''
//' Program A' --->Call CreateProcess----> ' Program B'
//' BCB6     '                             ' C# 2010  '
//''''''''''''                             '''''''''''' 

Я хочу отладить Program B в Visual Studio 2010. Он написан на C #. Я установил Свойства -> Отладка -> Запустить внешнюю программу для пути к файлу программы А, но не могу ввести точку останова в main().

Кто-нибудь знает, как решить эту проблему?

Обновление : Ниже приведены мои настройки и код. Я до сих пор не могу понять, почему я не могу ввести точку останова в программе C #: - (

image

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Если Программа A использует Программа B , запуск Программа A ; откройте решение для Программа B в Visual Studio; и перейдите в раскрывающемся меню отладки и выберите «Присоединить к процессу» . Это позволит вам устанавливать точки останова и отлаживать ваш код. Вы также можете настроить свои сборки на запуск Программы A при сборке / запуске Программы B в VS, как объяснено в ответе от User4534 ....

0 голосов
/ 28 июня 2018

Вы ошиблись. Если вы хотите отладить 2-е приложение (c #) Программа B , то это проект, который вы должны были загрузить в Visual Studio.

В настройках отладки для приложения c # установите

Свойства -> Отладка -> Запуск внешней программы до Программа A

Это позволит вам затем установить контрольные точки в коде c # программы B.

То же самое происходит, если вы работаете над проектом .dll; вы хотите установить в нем контрольные точки; но DLL вызывается .exe вне вашего контроля (скажем, нативный процесс). Вы устанавливаете Запуск внешней программы, как указано выше, и задаете путь к внешнему процессу.

С другой стороны

Вы можете Debug.Attach to Process, но это требует тщательной синхронизации, процесс должен быть запущен первым, и вам нужно скрестить пальцы, чтобы рассматриваемая строка не была выполнена, прежде чем вы сможете установить точку останова. (Обычно вы не можете установить точку останова, пока не приложите сначала)

...