1

我跑:

~/dan/java/hello $ java -javaagent:shiftone-jrat.jar -cp '..' hello.hello

并获得(在更长的跟踪输出中):

Exception in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 35 in method hello.hello.main([Ljava/lang/String;)V at offset 14
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
    at java.lang.Class.getMethod0(Class.java:2685)
    at java.lang.Class.getMethod(Class.java:1620)
    at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:488)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:480)

与 jrat 一起去,因为它似乎交钥匙。我愿意接受有关其他交钥匙、命令行 Linux 兼容分析器的建议。只需要知道非常简单的信息,即我的程序大部分时间都花在了哪些功能上,同时我会与这里建议的其他分析器一起玩,在那里添加大量打印语句,直到我意识到我的正则表达式很好并且我的流-> 字符串转换需要很长时间。

4

1 回答 1

1

你用的是JDK6还是JDK7。JDK7 为堆栈图帧添加了更多限制性检查,当字节码被不知道 JDK7 验证程序更改的工具(例如旧版本的 ASM)修改时,它们可能会导致此类错误。

于 2012-04-23T13:43:20.833 回答