因工作需要将java工程与c++工程混合编译调试,所以一直在网上搜寻java与C++的混合调试,但是一直未找到,所以只能自己摸索,终于被我弄成功了。
在Linux下,为了能混合调试java与C++代码,即能从java进入C++代码进行跟踪调试,现对eclipse设置如下:
1.首先eclipse必须既能编译java代码,又能编译C++代码,现假设同一个eclipse已能同时单独编译java工程和C++工程;
2.现在eclipse的workspace中已创建一个java工程“enterprise”和一个C++工程“Dijkstra”,其中java工程“enterprise”需要加载C++工程的动态库“libDijkstra.so”,单独运行C++工程生成动态库,然后将动态库“libDijkstra.so”放入java工程相应的位置(动态库的加载请查看相关文档),在你需要的地方设置断点;
3.首先,运行java工程,右击所要运行的“.java”文件,出现如下图所示的选项,选择“Debug As—Java Application”,可以看到java文件开始Debug运行;
4.然后运行C++工程“Dijkstra”,在工程名上右击出现如下图的选项,选择“Debug As—Debug Configurations”;
5.然后就会出现如下图所示的对话框,选择“C/C++ Attach to Application”,右击选择“new”选项;
6.进入new选项后会出现以下对话框,在对应的工程名处写上工程名“Dijkstra”,其中“Main”选项卡下的“C/C++ Application:”下填写你所需的动态库“Debug/libDijkstra.so”
“Debugger”选项卡填写按下图所示:
7.按上述顺序填好后,点击右下角的“Debug”按钮,跳出如下对话框,选择“java”,只会出现一个正在运行的java,如果出现多个说明你有没有关闭的java工程,最好是关闭多余的工程,否则无法弄清选择哪一个,点击“OK”按钮,就会进入你想要的Debug调试界面,剩下的就按你设置的断点进入跟踪调试了:
希望对大家有帮助!