我使用Runtime.getRuntime().exec()来执行本机cpp应用程序,并希望在运行时附加/调试本机应用程序。
添加
__asm int 3;在我的本机应用程序中并在java之外执行它时,Windows会提示我是否要调试它,这一切都很好。
但是,在java ().exec()内部运行时,中断被JVM截获并抛出异常。
有没有办法在我的本机应用程序运行在Java Runtime.getRuntime().exec()中时对其进行调试?
发布于 2012-01-18 19:15:24
将一些断点放入您的本机应用程序,并使用调试选项对其进行编译。
在java代码中,将断点放在
Runtime.getRuntime().exec()
调用并启动java应用程序。
打开Visual Studio (假设您在windows下使用它),选择Debug->Attach to process。附加到java进程。
继续使用java (跳过断点),然后您应该看到VS在本机断点处停止。
我这里没有任何安装了VS的Windows机器,所以我不能测试它,但它应该可以工作。我已经有一段时间没有这样做了,但这应该是您需要的全部。
编辑:抱歉,我跳过了“带中断的应用程序”部分。我不知道如何“重新抛出”汇编器中断调用。希望我能帮上忙。)
https://stackoverflow.com/questions/8908611
复制相似问题