一,附加方式
1,eclipse連接庫引用到vs的debug目錄下 ,例如:
System.load("E:\\vcproject\\debug\\test.dll");
2,在C++的被調用方法中寫入一個死循環。
3,eclipse 運行java程序,調用dll庫方法,這是就卡在DLL內部的死循環中
4,在C++的死循環內設置斷點,VS中debug屬性命令裏面:E:\tools\Java\jdk1.6.0_11\bin\javaw.exe 設置「附加」爲 是
5,VS點擊調試,就進到C++的死循環中了,跳出死循環就能夠開始調試了
二,常規調試
1,eclipse連接庫引用到vs的debug目錄下 ,例如:
System.load("E:\\vcproject\\debug\\test.dll");
2,設置工程屬性
Command設爲java命令的路徑,例如:D:\Java\jdk1.7.0_15\bin\java.exe
Command Arguments設爲須要的java啓動參數,例如:-cp .;resource;lib\*; com.test.MyJNI
Working Directory設置爲java工程的根目錄(這裏是部署目錄,不是IDE中的開發環境目錄,由於這裏調試是經過命令行啓動虛擬機的,因此沒法經過IDE啓動java項目)
3,在JNI的C++代碼中中打好斷點,點擊debug,當java項目運行到JNI調用位置時,就捕獲到斷點進行調試了。
注意,這裏的dll必定要是debug版本且須要生成PDB文件,若是禁用了PDB生成,須要設置generate debug info爲yes
java