两种方式调试JNI中DLL(动态链接库)
一,附加方式
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
總結
以上是生活随笔為你收集整理的两种方式调试JNI中DLL(动态链接库)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu14下搭建Web服务器
- 下一篇: 高级NFC