2010-11-20 3 views
0

Я использую BTrace 1.2 и следовал за руководством пользователя от BTrace website. У меня нет никаких проблем с использованием BTrace на запуск программ с помощью команды:NullPointerException при запуске приложения с помощью агента 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 без везения.

Пожалуйста, помогите.


EDIT Если установить debug=false и stdout=true и избавиться от scriptOutputFile=out.trace вывода на консоль работает отлично.

ответ

1

Оказалось, что путь к scriptOutputFile должен быть абсолютно изменен scriptOutputFile=out.trace до scriptOutputFile=./out.trace исправил проблему.

Смежные вопросы