| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 如何把JCK测试集中的程序单独拿出来测试 -> 正文阅读 |
|
[开发工具]如何把JCK测试集中的程序单独拿出来测试 |
以brkp00102为例1 在IDEA中建立工程找到课题在JCK测试集中的位置,将对应的文件夹拷贝到需要单独进行调试的位置
然后使用IDEA在此文件夹下建立工程 2 根据源码修改文件夹打开brkp00102.java文件可以看到下面的代码
根据Java语言可知,此文件应在javasoft.sqe.tests.vm.jvmti.brkp001.brkp00102包下方可正常编译,于是,在IDEA中创建对应的文件夹,并将文件移至此文件夹之下 除此之外,通过以下代码可知该程序须依赖类
通过在JCK-runtime-8b文件夹下使用find命令查找对应的文件
按照import代码指定的位置在IDEA中创建文件夹,并将Agent.java和SafeThread.java文件拷贝到对应的位置 同理,拷贝AttachConnector.java文件到对应的位置 3 分析程序并生成.so文件通过分析程序可知,该程序使用了JNI,即.so文件,但使用了何种jni文件未知,通过打开brkp00102.ksh文件
该程序在运行时须依赖libjckjvmti.so库 注意:此时不必通过brkp00102.c文件把所有的关联文件放入到当前目录,并使用gcc去编译自己所需的.so文件,直接使用下面的命令编译出所需的.so文件
将此libjckjvmti.so拷贝至out/production对应的目录下即可 4 运行测试程序根据brkp00102.ksh中
可知,其运行的代码为
其中 -platform.jvmtiSupported true和-platform.nativeLibsLinkage dynamic可通过GUI界面得到,也可通过分析代码得到 但是运行不会成功,因为-agentlib参数找不到libjckjvmti.so,此时需要使用下面的命令将路径导入
以我本机为例
再运行
查看运行结果
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:20:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |