繁体   English   中英

在32位模式下调试Java应用程序

[英]Debug java application in 32bit mode

由于JNI本机代码,在OS X Lion上从命令行使用OpenJDK 7,如何使用jdb调试需要在32位JVM下执行的应用程序?

我知道我可以像java -d32一样调用java ,它将使用32位JVM。 我也可以将-d32标志-d32传递给jdb ,但它似乎没有任何作用:当应用程序尝试链接其本机代码时,我仍然收到相同的错误消息。 传递-J-d32表现出相同的行为。

通过从两个不同的Terminal窗口中将javajdb作为单独的进程启动,可以实现上述目的。 因此,请在各自的窗口中执行以下命令:

java -d32 -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=127.0.0.1:5463 -classpath . MainClass
jdb -attach 127.0.0.1:5463

第一个将启动应用程序的JVM,但在创建后立即将其挂起。 第二个将启动调试器,并将其附加到刚刚创建的JVm。 然后,您可以在第二个窗口中键入run以启动该应用程序。 另外,应用程序和调试器的输出不会混合在一起,因为它们各自都有自己的窗口。

参考: jdb帮助列出了可能的命令行参数,并且JPDA的 专门 介绍了transports

尽管上面的方法对我有用,但我还是欢迎其他答案,它们提供了更简单的解决方案,最好是单个命令和/或无需以任意方式选择端口号。 共享内存连接器似乎不适用于我的JVM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM