8

我们这里有使用 Java JNI 调用 C 库中的函数的系统。一切都在 Solaris 上运行。

我在字符串编码的某个地方遇到问题。用 C 编写的函数返回一个阿拉伯字符,但 JNI 方法接收具有另一种编码的字符串。我已经尝试设置 $NLS_LANG 和 vm 参数以相同的方式进行编码,但没有任何效果。所以我需要能够同时调试 C 代码和 Java JNI。

调试它的最佳方法是什么?

4

3 回答 3

3

dbx 调试器(Sun Studio 的一部分)可以附加到 JVM 进程,让您在 Java 代码和本机代码之间单步执行。该功能的代号为“jdbx”,尽管它都是 dbx 的一部分。它还没有被大力推广,所以它可能有错误。当 IDE 有两个调试引擎都处理 Java 时会出现问题,但使用命令行 dbx 可以避免这些问题。

当然,可能有许多更传统的方法来调试您的特定问题,而不必使用可以混合 Java 和 C 代码的源代码级调试。

于 2009-05-26T15:13:00.397 回答
2

带有最新 Android 插件的 Eclipse Juno 版本支持调试。

如何使用 Eclipse 调试 JNI 代码(Java & C/C++)

于 2012-07-24T17:47:50.187 回答
0

ADT Bundle 现在直接支持这一点。任何告诉您除单击 Debug As-> Android Native Application 之外的其他操作的代码在 2013 年 5 月 12 日都已过时,除非您使用的是较旧的开发系统,否则您会感到头疼。如果是这种情况,请下载并安装最新的 ADT 包,因为它会省去很多麻烦。

于 2013-05-12T07:53:01.570 回答