BTrace使用中遇到的問題

import com.sun.btrace.BTraceUtils;
import static com.sun.btrace.BTraceUtils.*;
import com.sun.btrace.annotations.*;
import javax.servlet.http.HttpServletResponse;
//import org.geowebcache.layer.TileLayer;

@BTrace(unsafe=true)
public class Cache{

  @OnMethod(clazz="org.geowebcache.arcgis.layer.ArcGISCacheLayer"
        ,method = "setExpirationHeader",
        location=@Location(Kind.RETURN)
  )
  public static void setExpirationHeader(HttpServletResponse response, int zoomLevel){
    println(zoomLevel);
    println(response.getHeader("Cache-Control"));
    //jstack();
    //jstackAll();
  }

  @OnMethod(clazz="/org.geowebcache.layer\\..*/",method="getExpireClients",location=@Location(Kind.RETURN))
  public static void getExpireClients(@Return int zoomLevel){
    println("expire:"+zoomLevel);
  }

  @OnMethod(clazz="org.geowebcache.arcgis.layer.ArcGISCacheLayer" ,method="getTilePath" ,location=@Location(Kind.RETURN))
  public static void getTilePath(@Return String path){
    println(path);
  }

}

遇到的問題:java

  1. 編譯完用class文件執行報錯,沒有解決web

    ./btrace 13801 Cache.classapi

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4202
	at com.sun.btrace.org.objectweb.asm.Cla***eader.readClass(Unknown Source)
	at com.sun.btrace.org.objectweb.asm.Cla***eader.accept(Unknown Source)
	at com.sun.btrace.org.objectweb.asm.Cla***eader.accept(Unknown Source)
	at com.sun.btrace.client.Client.getDTraceSource(Client.java:579)
	at com.sun.btrace.client.Client.submitDTrace(Client.java:554)
	at com.sun.btrace.client.Client.submit(Client.java:366)
	at com.sun.btrace.client.Main.main(Main.java:206)
Exception in thread "Thread-0" java.lang.IllegalStateException
	at com.sun.btrace.client.Client.send(Client.java:502)
	at com.sun.btrace.client.Client.sendExit(Client.java:436)
	at com.sun.btrace.client.Main$2.run(Main.java:239)
	at java.lang.Thread.run(Thread.java:748)

不編譯加載多餘的classpath報錯,沒有解決安全

Connection reset by peeride


不編譯加載正常的java文件能夠運行spa

./btrace -v  -cp .:/data/gisserver/geoserver/lib/javax.servlet-api-3.1.0.jar 29733  Cache.javaserver



開啓非安全模式ci

編輯btrace腳本,在java啓動命令中增長下面的參數get

-Dcom.sun.btrace.unsafe=trueservlet

在java腳本中增長

@BTrace(unsafe=true)

註解

相關文章
相關標籤/搜索