Java Runtime exec отлаживает нативное приложение cpp с прерыванием - PullRequest
0 голосов
/ 18 января 2012

Я использую Runtime.getRuntime (). Exec () для выполнения моего собственного cpp-приложения и хотел бы присоединить / отладить нативное приложение во время работы внутри Java.

Добавление

 __asm int 3;

в моем родном приложении и его запуске вне Java, Windows запрашивает, хочу ли я его отладить, и это хорошо.

Однако при выполнении INSIDE java Runtime.getRuntime (). Exec () прерывание прерывается JVM, и выдается исключение.

Есть ли способ отладки моего собственного приложения, пока оно работает внутри Java Runtime.getRuntime (). Exec ()?

1 Ответ

1 голос
/ 18 января 2012

Поместите несколько точек останова в ваше собственное приложение и скомпилируйте его с параметрами отладки.

В вашем Java-коде ставьте точку останова перед

Runtime.getRuntime (). Exec ()

позвоните и запустите Java-приложение.

Откройте Visual Studio (вероятно, вы используете это под окнами), выберите Отладка-> Присоединить к процессу. Присоединиться к процессу Java.

Продолжайте в java (перепрыгивайте через точку останова), затем вы должны увидеть остановку VS на исходной точке останова.

У меня нет машины Windows с установленной VS, так что я не могу ее протестировать, но она должна работать. Я давно этого не делал, но это все, что тебе нужно.

Редактировать : Извините, я пропустил часть "приложение с прерыванием". Я понятия не имею, как "перебросить" вызов прерывания ассемблера. Надеюсь, я все равно смогу вам помочь;)

...