永发信息网

java底层代码使用C写的吗

答案:2  悬赏:20  手机版
解决时间 2021-03-10 05:45
java底层代码使用C写的吗
最佳答案
java虚拟机根据各个平台进行编写,肯定会用到C,但是不一定完全用C写的
全部回答
如果你是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里一般怎么调试代码就怎么用,和一般的调试一样的操作....
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
物候现象的来临决定于哪些因素呢 阅读答案
很不明显的示爱语言
雪佛龙是哪里的品牌?
490的中冷增压柴油发动机的马力相当多大的普
底仓什么意思
【2011-6-10】2011年6月10日到2013年11月14日
盛香惠安东岭店我想知道这个在什么地方
长辈,晚辈。前辈是怎么 区分的 ?
我的车的自动变速箱好像坏了,踩刹车的时候自
破坏之王黑熊打过阿丽之后周星驰找黑熊,被黑
蛇形自动挡是怎么挂挡的
肺曲霉病的临床表现不包括()
梯子田地址在什么地方,想过去办事
最近工行开通了往95588发短信咨询业务,办业
kx不正确文件的配置文件?
推荐资讯
【阿拉丁与神灯】阿拉丁和神灯的故事要完整
车高温是什么意思
iPhone6splus 为什么微信视频听不到声音
“夕阳无限好,只是近黄昏”,现在常常指什么
如图,在四边形ABcD中,点E在Ac上,如果角1=角2,
山东禹城至河北辛集多少公里
双程2完整版,急急急急急,注意是2!!!!!
丁卯已酉已丑已巳,女,求测正缘何时出现?
你最讨厌别人叫你什么?
于都银通驾校我想知道这个在什么地方
工行和建行哪个利息高
柏龙皓苑酒店在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?