WEB开发网
开发学院软件开发Java 调试集成 Java 和 C/C++ 的代码 阅读

调试集成 Java 和 C/C++ 的代码

 2010-01-25 00:00:00 来源:WEB开发网   
核心提示: 步骤 2.在 GDB 中重复遍历循环,以在 Java 的“三倍数字”方法中设置断点,调试集成 Java 和 C/C++ 的代码(8),当 JDB 响应时,只需继续遍历循环,这里,我已经在 goTest() 方法的末端设置了一个断点,可以通过添加例如休眠等操作使它更复杂,

步骤 2.在 GDB 中重复遍历循环,以在 Java 的“三倍数字”方法中设置断点。当 JDB 响应时,只需继续遍历循环。可以通过添加例如休眠等操作使它更复杂。


清单 7. 当 JDB 响应时,继续遍历循环
main[1] main[1] stop at JNITest:58 
Deferring breakpoint JNITest:58. 
It will be set after the class is loaded. 
main[1]  

步骤 3. 在完成了步骤 2 之后,就可以在 GDB 中停止循环,继续进行调试。这里,我已经在 goTest() 方法的末端设置了一个断点,使所有的 JNI 调用都可以执行。


清单 8. 断点使所有的 JNI 调用执行
(gdb) print loop 
$1 = 0 
(gdb) set loop=1 
(gdb) next 
42     goTest(pEnv); 
(gdb) step 
goTest (pEnv=0x3f4e58) at main.c:53 
53     javaClass = (*pEnv)->FindClass(pEnv,"JNITest"); 
(gdb) list 
48 
49     jclass  javaClass; 
50     jmethodID mid; 
51     jint   result; 
52 
53     javaClass = (*pEnv)->FindClass(pEnv,"JNITest"); 
54 
55     mid = (*pEnv)->GetStaticMethodID(pEnv,javaClass,"java_tripleNumber",'(I)I"); 
56 
57     result = (*pEnv)->CallStaticIntMethod(pEnv,javaClass,mid,42) ; 
(gdb) break main.c:58 
Breakpoint 2 at 0x401474: file main.c, line 58. 
(gdb) c 
Continuing. 

上一页  3 4 5 6 7 8 9 10  下一页

Tags:调试 集成 Java

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接