0

私はBTrace1.2を使用しており、BTraceWebサイトのユーザーガイドに従っています。コマンドを使用してプログラムを実行する際にBTraceを使用しても問題はありません。

btrace <pid> AllMethods.class

しかし、次のいずれかを使用してBTraceエージェントでアプリケーションを開始しようとすると、次のようになります。

java -javaagent:btrace-agent.jar=noServer=true,debug=true,script=AllMethods.class,scriptOutputFile=out.trace test/Test

また

btracer AllMethods.class test/Test

私はNullPointerException乗るSimpleFileOutput

btrace DEBUG: debugMode is true
btrace DEBUG: unsafeMode is false
btrace DEBUG: dumpClasses is false
btrace DEBUG: stdout is false
btrace DEBUG: probe descriptor path is .
btrace DEBUG: initial script is AllMethods.class
btrace DEBUG: scriptOutputFile not specified. defaulting to AllMethods.class.btrace
btrace DEBUG: java.lang.NullPointerException
java.lang.NullPointerException
 at com.sun.btrace.agent.TraceOutputWriter$SimpleFileOutput.<init>(TraceOutputWriter.java:46)
 at com.sun.btrace.agent.TraceOutputWriter.fileWriter(TraceOutputWriter.java:185)
 at com.sun.btrace.agent.Main.loadBTraceScript(Main.java:334)
 at com.sun.btrace.agent.Main.parseArgs(Main.java:267)
 at com.sun.btrace.agent.Main.main(Main.java:117)
 at com.sun.btrace.agent.Main.premain(Main.java:101)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 at java.lang.reflect.Method.invoke(Method.java:597)
 at sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:323)
 at sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:338)
btrace DEBUG: parsed command line arguments
btrace DEBUG: noServer is true, server not started

BTRACE_HOMEパスを構成しました。私はトリックを逃していますか?私もリリース1.1.3を使ってみましたが運がありませんでした。

助けてください。


編集コンソールへの出力を設定debug=falseして削除すると、正常に動作します。stdout=truescriptOutputFile=out.trace

4

1 に答える 1

1

scriptOutputFileへのパスは絶対的である必要があることが判明したので、問題scriptOutputFile=out.tracescriptOutputFile=./out.trace修正するために変更します。

于 2010-11-20T15:37:27.267 に答える