2012-01-18 49 views
0

我使用Runtime.getRuntime()。exec()來執行我的本地cpp應用程序,並希望在Java內部運行時附加/調試本機應用程序。Java Runtime exec調試中斷的本地cpp應用程序

添加

__asm int 3; 

到我的本機應用程序和執行它之外的Java,Windows提示我是否要調試它,這是所有好。

但是,運行INSIDE java Runtime.getRuntime()。exec()時,中斷被JVM攔截並拋出異常。

在Java Runtime.getRuntime()。exec()中運行時,是否有任何方法來調試我的本機應用程序?

回答

1

在您的本地應用程序中放入一些斷點並使用調試選項進行編譯。

在Java代碼中發生的

調用Runtime.getRuntime()。EXEC()

呼叫前一個破發點,並啓動Java應用程序。

打開Visual Studio(猜你使用Windows下)選擇Debug-> Attach to process。附加到java進程。

繼續java(跳過斷點),你應該看到你的VS停在原生斷點。

我沒有任何Windows機器在這裏與VS安裝,所以我不能測試它,但它應該工作。我有一段時間沒有這樣做,但這應該是你需要的一切。

編輯:對不起,我跳過了「帶中斷的應用程序」部分。我不知道如何「重新拋出」彙編程序中斷調用。希望我能幫助你;)

+0

謝謝ortang,我會試試這個 – portoalet 2012-01-18 14:23:53

+0

歡迎:) – 2012-01-19 20:52:40