![](/img/trans.png)
[英]Run Java application in 32bit mode with Ordinary Object Pointer (OOP) but on 64GB RAM
[英]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窗口中将java
和jdb
作为单独的进程启动,可以实现上述目的。 因此,请在各自的窗口中执行以下命令:
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.