====== BTrace ======
* [[http://kenai.com/projects/btrace|BTrace - old]]
* https://github.com/btraceio/btrace
* Java 실행시간 코드 분석 툴
===== Tomcat에서 실행시 어디서 getSession을 호출하는지 찍어보는 예 =====
import com.sun.btrace.annotations.*;
import static com.sun.btrace.BTraceUtils.*;
import static com.sun.btrace.BTraceUtils.Sys.*;
@BTrace
public class SessionCheck {
@OnMethod(
clazz="org.apache.catalina.connector.Request",
method="getSession"
)
public static void showSessionRequest() {
println("######################################################");
jstack();
println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
}
}
JVM의 PID를 확인한 뒤에
btrace [JVMPID] SessionCheck.java
==== 참조 ====
* [[http://blog.benelog.net/viewer/2855201|Btrace로 DBCP의 connection정보를 모니터링 하기]]
* [[http://eggboy.egloos.com/viewer/1866372|eggboy in concurrent world : BTrace - 1. 소개]]
==== Redhat(Centos) 에서 이상 현상 ====
Readhat(Centos) 6.4에서 다음과 같은 오류를 내며 btrace가 실행이 안됐다.
Invalid path specified: 2/No such file or directory
''/usr/bin/btrace''가 존재하기 때문이며 실제로는 ''blktrace''라는 다른 프로그램을 실행시킨다. 따라서 ''$BTRACE_HOME/bin/btrace'' 명령을 명시적으로 실행할 것.