我一直在撕掉我的头发,试图找出某些在Windows/Visual Studio中的braindead。我在OS X 10.6下有一个JNI库,我想用Java可执行文件调试并在Xcode下进行调试:单步执行代码,检查JNI库中的变量,设置断点等。使用Xcode 4/OS X调试JNI代码10.6
这是一个可用的JNI示例编译并从命令行运行良好。如果有人可以告诉我如何在Xcode中设置,我会永远感激。理想情况下,我希望从Xcode中从头开始逐步执行指令,并根据需要从下面的代码中剪切并粘贴,从而产生可在Xcode 4下调试的内容,并允许我在JNI代码中设置断点,检查变量,请参阅堆栈追踪等。
为了表示感谢,我会将20美元寄给第一位给我的指令,如果您给我一个PayPal地址,我可以在我的最后复制这些指令。
在此先感谢!
HelloWorld.java
class HelloWorld {
public native String displayHelloWorld();
static {
System.loadLibrary("HelloWorldImp");
}
public static void main(String[] args) {
System.out.println("--> "+new HelloWorld().displayHelloWorld());
}
}
HelloWorldImp.mm
#include <stdio.h>
#include <jni.h>
#include <string>
#import <Foundation/Foundation.h>
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jstring JNICALL
Java_HelloWorld_displayHelloWorld(JNIEnv *env, jobject obj)
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString* name = @"Yo Cocoa";
std::string s = [name UTF8String];
jstring ret = env->NewStringUTF(s.c_str());
[pool drain];
return ret;
}
#ifdef __cplusplus
}
#endif
buildjni.sh
gcc -bundle -I/System/Library/Frameworks/JavaVM.framework/Headers -lstdc++ -o libHelloWorldImp.jnilib -framework Foundation HelloWorldImp.mm
由于没有这方面的一个蹦极,我要补充的是,20 $的报价,只要我找到一个解决自己和张贴在这里失效。 :) – membar