JNI环境下用GDB调试C++代码(31)
- 前言
HelloWorld
2. 环境
3. WSL Ubuntu 安装 java 环境
- 生成完整的 JNI 工程代码
1、IDEA 编写 JNIHelloWorldjava 端代码。以下示例的代码路径为:/mnt/e/云文件/Repository/JNI/src
JNI.zip
HelloWorld.h
HelloWorld.h
HelloWorld.class
HelloWorld.classjavac HelloWorld.java
注意:HelloWorld.h HelloWorld.class HelloWorld.hError: Could not find class file for ‘HelloWorld’.
/mnt/e/云文件/Repository/JNI/src HelloWorld.cpp
HelloWorld.cpp
部分参数说明:
- -I/usr/lib/jvm/java-11-openjdk-amd64/include/linux/ -I/usr/lib/jvm/java-11-openjdk-amd64/include/HelloWorld.cpp


5. JNI 环境下用 GDB 调试 C++ 代码
注意:
- Step 8 这里第一次用n 进入到 C++ GDB 调试环境,如果提示“没有行数信息”等错误,那么第一次改为用c 进入到 C++ GDB 调试环境
- jdb 进入 java 调试环境 > 设置 java 断点 > gdb attach 到 java 进程 > 设置 C++ 断点 > 继续运行 java > 进入 C++ GDB 调试环境在调用 JNI 函数之前,设置一个等待键盘输入的语句 > gdb attach 到 java 进程 > 设置 C++ 断点 > java 获取键盘输入,运行 JNI 函数 > 进入 C++ GDB 调试环境
图片步骤总结:
注意:但是不包含源码如果移动了动态库或者源码的位置list gdb调试解决找不到源代码的问题
注意:Java_HelloWorld_printHelloWorld.cpp
