永发信息网

java底层代码使用C写的吗

答案:2  悬赏:20  手机版
解决时间 2021-03-10 05:45
  • 提问者网友:听门外雪花风
  • 2021-03-09 22:52
java底层代码使用C写的吗
最佳答案
  • 五星知识达人网友:纵马山川剑自提
  • 2021-03-09 23:28
java虚拟机根据各个平台进行编写,肯定会用到C,但是不一定完全用C写的
全部回答
  • 1楼网友:轮獄道
  • 2021-03-10 00:56
如果你是windows xp的话直接在想调试的c代码前加 __asm int 0x3; 就好了,到时候,先运行java,等执行到native的时候,它会跳出一个异常,然后你选用vc进行调试就好了,最后在那个dll一起配上你的ilk和pdb文件,这样符号都会在调试时加载,但操作不好的话,你调试的时候会全是汇编而不是显示代码... 如果你是windows vista或更高版本,最好使用__debugbreak(); 函数,然后在vs里的工具菜单下选项里找到调试,里面有实时,把本机勾上,然后再运行java程序,运行到native的时候,它会弹出异常,等那个窗口稳定,然后点调试,就进vs里调试了。。。 比如我调试printf: // c void main(jenv* xxxx) { __debugbreak(); printf("hello world!\n"); } // java public void native main(xxxxx); main(....); 则加上__debugbreak后编译,然后执行java程序,到main以后,系统会跳出异常,然后点调试进入vs就ok! 附加: 你的dll不是自己写的吗?要在想调试的函数最开头加__debugbreak(); 然后编译成新的dll,不要动dll的位置(这样在vs调试本地代码时可以显示dll的源代码而不是汇编代码),用jni直接全路径加载你的dll 然后在java代码中调用本地代码,最好用debug模式单步运行 运行到本地代码,它会出现程序崩溃的框,等待一会它会问你关闭程序还是调试,这时点调试(要在vs中工具菜单下选项里设置,前面说过了)会打开vs,这时就可以在vs里单步调试本地代码了... vs里一般怎么调试代码就怎么用,和一般的调试一样的操作....
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯