gpt4 book ai didi

32bit-64bit - 在 32 位模式下调试 java 应用程序

转载 作者:行者123 更新时间:2023-11-30 11:40:16 25 4
gpt4 key购买 nike

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

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

最佳答案

可以通过从两个不同的终端窗口将 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 help列出可能的命令行参数,以及 JPDA有一个section on transports .

虽然以上内容对我有用,但我欢迎提供更简单解决方案的其他答案,最好是作为单个命令和/或不需要以任意方式选择端口号。共享内存连接器似乎不适用于 my JVM .

关于32bit-64bit - 在 32 位模式下调试 java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12844343/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com