使用Valgrind分析Java程序

时间:2015-06-23 08:46:53

标签: java valgrind callgrind

实际上,我正在开发一个包含多个语言(Java,C,KornShell)的项目。我必须测试Java和C之间的交互,我必须知道在C和Java程序中使用相同的工具调用哪些函数。为此,我编写了KornShell脚本,并选择使用Valgrind。

但是我对Valgrind有一个问题,我没有Java分析的痕迹。 所以我尝试创建一个简单的Java类并使用Valgrind运行它。但是Valgrind并不知情。

这是我试图分析的简单Java类

public class Test {

    public Test(){}

    public void helloworld(){
        System.out.println("hello world");
    }

    public static void main(String arg[]){
        Test t = new Test();
        t.helloworld();
    }
}

以下是我如何运行我的课程测试

valgrind --tool=callgrind --trace-children=yes --callgrind-out-file=callgrind.test.out.%p --smc-check=all java Test

这是控制台valgrind输出:

  

== 52568 == Callgrind,一个生成缓存探查器的调用图

     

== 52568 ==版权所有(C)2002-2013,以及GNU GPL' d,Josef Weidendorfer等人

     

== 52568 ==使用Valgrind-3.10.1和LibVEX;用-h重新运行版权信息

     

== 52568 ==命令:java Test

     

== 52568 ==

     

== 52568 ==对于交互式控制,请运行' callgrind_control -h'。

     

你好世界

     

== 52568 ==

     

== 52568 ==事件:Ir

     

== 52568 ==收集:119570941

     

== 52568 ==

     

== 52568 ==我参考:119,570,941

在文件callgrind.test.out。%p中,我应该有一个helloworld函数的踪迹,但我没有。 你能帮助我吗 ?甚至可以用Valgrind来描述像C一样的Java吗?

0 个答案:

没有答案