日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BTrace简介及使用

發(fā)布時間:2024/1/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BTrace简介及使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

背景

在生產(chǎn)環(huán)境中可能經(jīng)常遇到各種問題,定位問題需要獲取程序運行時的數(shù)據(jù)信息,如方法參數(shù)、返回值、全局變量、堆棧信息等。為了獲取這些數(shù)據(jù)信息,我們可以通過改寫代碼,增加日志信息的打印,再發(fā)布到生產(chǎn)環(huán)境。通過這種方式,一方面將增大定位問題的成本和周期,對于緊急問題無法做到及時響應(yīng);另一方面重新部署后環(huán)境可能已被破壞,很難重新問題的場景。

對于程序員來說最頭大的問題之一就是線上出了故障了,但是我們無法debug來找出問題原因,同時在上線的時候日志級別限定了我們不可能把所有的細節(jié)都打印到log上,這個時候故障都等在哪里,能辦的手段無非看源碼,通過仔細看代碼來找出問題,并編譯重新上線解決,這種手段能解決一部分代碼,但是對于一些隱藏較深的bug就無能為力了,例如OOM或是頻繁的full gc,一般是一個很多的對象沒有被釋放或是一個對象被頻繁的創(chuàng)建調(diào)用。在一個復雜的項目中,一個OOM問題可能是一個對象被頻繁創(chuàng)建,這種方式指望通過看源碼是很難解決的,但是BTrace可以迅速幫助我們定位到問題所在地。

介紹

Btrace (Byte Trace)是sun推出的一款java 動態(tài)、安全追蹤(監(jiān)控)工具,可以不停機的情況下監(jiān)控線上情況,并且做到最少的侵入,占用最少的系統(tǒng)資源。BTrace應(yīng)用較為廣泛的原因應(yīng)該是其安全性和無侵入性,其中熱交互技術(shù),使得我們無需啟動Agent的情況下動態(tài)跟蹤分析,其安全性不會導致對目標Java進程的任何破壞性影響,使得BTrace成為我們線上產(chǎn)品問題定位的利器。無侵入性無需我們對原有代碼做任何修改,降低上線風險和測試成本,并且無需重啟啟動目標Java進程進行Agent加載即可動態(tài)分析和跟蹤目標程序,可以說BTrace可以滿足大部分的應(yīng)用場景。

安裝

  • 下載BTrace(https://kenai.com/projects/btrace/downloads/directory/releases),解壓至任意目錄。
  • 設(shè)置BTRACE_HOME,將bin目錄加至環(huán)境變量PATH中。

使用

  • jps命令查出需要監(jiān)控的jvm pid
  • 編寫B(tài)Trace跟蹤程序 (安裝包中帶有大量的Demo,附錄會對各個Demo的功能進行一一說明)
  • 執(zhí)行:btrace <pid> BTrace跟蹤程序
  • BTrace主要包含btracec和btracer兩個命令編譯和啟動BTrace腳本:
    1. btrace
    功能: 用于運行BTrace跟蹤程序。
    命令格式:
    btrace [-I <include-path>] [-p <port>] [-cp <classpath>] <pid> <btrace-script> [<args>]

    • -I:沒有這個表明跳過預編譯
    • include-path:指定用來編譯腳本的頭文件路徑(關(guān)于預編譯可參考例子ThreadBean.java)
    • port:btrace agent端口,默認是2020
    • classpath:編譯所需類路徑,一般是指btrace-client.jar等類所在路徑
    • pid:java進程id
    • btrace-script:btrace腳本可以是.java文件,也可以是.class文件
    • args:傳遞給btrace腳本的參數(shù), 在腳本中可以通過$(), $length()來獲取這些參數(shù)(定義在BTraceUtils中)

    示例:
    btrace -cp build/ 1200 AllCalls1.java
    參數(shù)含義:
    include-path指定頭文件的路徑,用于腳本預處理功能,可選;
    port指定BTrace agent的服務(wù)端監(jiān)聽端口號,用來監(jiān)聽clients,默認為2020,可選;
    classpath用來指定類加載路徑,默認為當前路徑,可選;
    pid表示進程號,可通過jps命令獲取;
    btrace-script即為BTrace腳本;btrace腳本如果以.java結(jié)尾,會先編譯再提交執(zhí)行。可使用btracec命令對腳本進行預編譯。
    args是BTrace腳本可選參數(shù),在腳本中可通過"$"和"$length"獲取參數(shù)信息。

    2. btracec
    功能: 用于預編譯BTrace腳本,用于在編譯時期驗證腳本正確性。
    btracec [-I <include-path>] [-cp <classpath>] [-d <directory>] <one-or-more-BTrace-.java-files>
    參數(shù)意義同btrace命令一致,directory表示編譯結(jié)果輸出目錄。

    3. btracer
    功能: btracer命令同時啟動應(yīng)用程序和BTrace腳本,即在應(yīng)用程序啟動過程中使用BTrace腳本。而btrace命令針對已運行程序執(zhí)行BTrace腳本。
    命令格式:
    btracer <pre-compiled-btrace.class> <application-main-class> <application-args>
    參數(shù)說明:
    pre-compiled-btrace.class表示經(jīng)過btracec編譯后的BTrace腳本。
    application-main-class表示應(yīng)用程序代碼;
    application-args表示應(yīng)用程序參數(shù)。
    該命令的等價寫法為:
    java -javaagent:btrace-agent.jar=script=<pre-compiled-btrace-script1>[,<pre-compiled-btrace-script1>]* <MainClass> <AppArguments>

    局限性

    雖然BTrace很強大,但Btrace腳本就是一個普通的用@Btrace注解的Java類,其中包含一個或多個public static void修飾的方法,為了保證對目標程序不造成影響,Btrace腳本對其可以執(zhí)行的動作做了很多限制,如下:

  • 不能創(chuàng)建對象
  • 不能拋出或者捕獲異常
  • 不能用synchronized關(guān)鍵字
  • 不能對目標程序中的instace或者static變量
  • 不能調(diào)用目標程序的instance或者static方法
  • 腳本的field、method都必須是static的
  • 腳本不能包括outer,inner,nested class
  • 腳本中不能有循環(huán),不能繼承任何類,任何接口與assert語句
  • 重要概念

    方法上的注解

    • @ OnMethod用來指定trace的目標類和方法以及具體位置,被注解的方法在匹配的方法執(zhí)行到指定的位置會被調(diào)用。
      1、"clazz"屬性用來指定目標類名,可以指定全限定類名,比如"java.awt.Component",也可以是正則表達式(表達式必須寫在"//"中,比如"/java\\.awt\\..+/")。
      2、"method"屬性用來指定被trace的方法.表達式可以參考自帶的例子(NewComponent.java和Classload.java,關(guān)于方法的注解可以參考MultiClass.java)。
      3、有時候被trace的類和方法可能也使用了注解.用法參考自帶例子WebServiceTracker.java。
      4、針對注解也是可以使用正則表達式,比如像這個"@/com\\.acme\\..+/ ",也可以通過指定超類來匹配多個類,比如"+java.lang.Runnable"可以匹配所有實現(xiàn)了java.lang.Runnable接口的類.具體參考自帶例子SubtypeTracer.java。
    • @OnTimer定時觸發(fā)Trace,時間可以指定,單位為毫秒,具體參考自帶例子Histogram.java。
    • @OnError當trace代碼拋異常或者錯誤時,該注解的方法會被執(zhí)行.如果同一個trace腳本中其他方法拋異常,該注解方法也會被執(zhí)行。
    • @OnExit當trace方法調(diào)用內(nèi)置exit(int)方法(用來結(jié)束整個trace程序)時,該注解的方法會被執(zhí)行.參考自帶例子ProbeExit.java。
    • @OnEvent用來截獲"外部"btrace client觸發(fā)的事件,比如按Ctrl-C中斷btrace執(zhí)行時,并且選擇2,或者輸入事件名稱,將執(zhí)行使用了該注解的方法,該注解的value值為具體事件名稱。具體參考例子HistoOnEvent.java
    • @OnLowMemory當內(nèi)存超過某個設(shè)定值將觸發(fā)該注解的方法,具體參考MemAlerter.java
    • @OnProbe使用外部文件XML來定義trace方法以及具體的位置,具體參考示例SocketTracker1.java和java.net.socket.xml。

    參數(shù)上的注解

    • @Self用來指定被trace方法的this,可參考例子AWTEventTracer.java和AllCalls1.java
    • @Return用來指定被trace方法的返回值,可參考例子Classload.java
    • @ProbeClassName (since 1.1)用來指定被trace的類名,可參考例子AllMethods.java
    • @ProbeMethodName (since 1.1)用來指定被trace的方法名,可參考例子WebServiceTracker.java。
    • @TargetInstance (since 1.1)用來指定被trace方法內(nèi)部被調(diào)用到的實例,可參考例子AllCalls2.java
    • @TargetMethodOrField (since 1.1)用來指定被trace方法內(nèi)部被調(diào)用的方法名,可參考例子AllCalls1.java和AllCalls2.java。

    非注解的方法參數(shù)

    未使用注解的方法參數(shù)一般都是用來做方法簽名匹配用的,他們一般和被trace方法中參數(shù)出現(xiàn)的順序一致.不過他們也可以與注解方法交錯使用,如果一個參數(shù)類型聲明為*AnyType[]*,則表明它按順序"通吃"方法所有參數(shù).未注解方法需要與*Location*結(jié)合使用:

    • Kind.ENTRY-被trace方法參數(shù)
    • Kind.RETURN-被trace方法返回值
    • Kind.THROW -拋異常
    • Kind.ARRAY_SET, Kind.ARRAY_GET -數(shù)組索引
    • Kind.CATCH -捕獲異常
    • Kind.FIELD_SET -屬性值
    • Kind.LINE -行號
    • Kind.NEW -類名
    • Kind.ERROR -拋異常

    屬性上的注解

    • @Export該注解的靜態(tài)屬性主要用來與jvmstat計數(shù)器做關(guān)聯(lián), 使用該注解之后,btrace程序就可以向jvmstat客戶端(可以用來統(tǒng)計jvm堆中的內(nèi)存使用量)暴露trace程序的執(zhí)行次數(shù), 具體可參考例子ThreadCounter.java。
    • @Property使用了該注解的trace腳本將作為MBean的一個屬性,一旦使用該注解, trace腳本就會創(chuàng)建一個MBean并向MBean服務(wù)器注冊, 這樣JMX客戶端比如VisualVM, jconsole就可以看到這些BTrace MBean, 如果這些被注解的屬性與被trace程序的屬性關(guān)聯(lián), 那么就可以通過VisualVM和jconsole來查看這些屬性了, 具體可參考例子ThreadCounterBean.java和HistogramBean.java。
    • @TLS用來將一個腳本變量與一個ThreadLocal變量關(guān)聯(lián), 因為ThreadLocal變量是跟線程相關(guān)的, 一般用來檢查在同一個線程調(diào)用中是否執(zhí)行到了被trace的方法, 具體可參考例子OnThrow.java和WebServiceTracker.java。

    類上的注解

    • @com.sun.btrace.annotations.DTrace用來指定btrace腳本與內(nèi)置在其腳本中的D語言腳本關(guān)聯(lián), 具體參考例子DTraceInline.java。
    • @com.sun.btrace.annotations.DTraceRef用來指定btrace腳本與另一個D語言腳本文件關(guān)聯(lián), 具體參考例子DTraceRefDemo.java。
    • @com.sun.btrace.annotations.BTrace用來指定該java類為一個btrace腳本文件。

    Samples

    1.跟蹤WildFly內(nèi)存信息,用@OnTimer 這個annotation每隔4秒鐘打印一次內(nèi)存堆棧信息:

    import com.sun.btrace.annotations.BTrace;

    import com.sun.btrace.annotations.OnTimer;

    import static com.sun.btrace.BTraceUtils.*;

    @BTrace

    public class TraceMemory {

    //heapUsage()/nonHeapUsage() – 打印堆/非堆內(nèi)存信息,包括init、used、commit、max

    @OnTimer(4000)

    public static void printM(){

    //打印內(nèi)存信息

    println("heap:");

    println(heapUsage());

    println("no-heap:");

    println(nonHeapUsage());

    }

    }

    查找 WildFly pid:

    [root@mdwareweb1 test]# jps

    7119 Jps

    5513 jboss-modules.jar

    執(zhí)行:

    btrace 5513 TraceMemory.java

    結(jié)果:

    [root@mdwareweb1 test]# btrace 5513 TraceMemory.java?
    heap:
    init = 67108864(65536K) used = 70036960(68395K) committed = 209387520(204480K) max = 477233152(466048K)
    no-heap:
    init = 19136512(18688K) used = 43569672(42548K) committed = 78348288(76512K) max = 318767104(311296K)
    heap:
    init = 67108864(65536K) used = 70893560(69231K) committed = 209387520(204480K) max = 477233152(466048K)
    no-heap:
    init = 19136512(18688K) used = 43569672(42548K) committed = 78348288(76512K) max = 318767104(311296K)
    heap:
    init = 67108864(65536K) used = 70893560(69231K) committed = 209387520(204480K) max = 477233152(466048K)
    no-heap:
    init = 19136512(18688K) used = 43573768(42552K) committed = 78348288(76512K) max = 318767104(311296K)

    2、打印WildFly運行時系統(tǒng)信息:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.BTrace;

    @BTrace

    public class TraceJInfo {

    static{

    println("java vm properties:===>");

    printVmArguments();

    println("System properties:===>");

    printProperties();

    println("OS properties:===>");

    printEnv();

    exit();

    }

    }

    執(zhí)行結(jié)果:

    [root@mdwareweb1 test]# btrace 5513 TraceJInfo.java?
    java vm properties:===>
    [-D[Standalone], -Xms64m, -Xmx512m, -XX:MaxPermSize=256m, -Djava.net.preferIPv4Stack=true, -Djboss.modules.system.pkgs=org.jboss.byteman, -Djava.awt.headless=true, -Dorg.jboss.boot.log.file=/opt/jboss/wildfly-8.0.0.Final/standalone/log/server.log, -Dlogging.configuration=file:/opt/jboss/wildfly-8.0.0.Final/standalone/configuration/logging.properties]
    System properties:===>
    org.jboss.security.context.ThreadLocal = true
    java.vm.version = 23.25-b01
    sun.jnu.encoding = UTF-8
    java.vendor.url =?http://java.oracle.com/
    java.vm.info = mixed mode
    org.apache.xml.security.ignoreLineBreaks = true
    jboss.server.name = mdwareweb1
    java.awt.headless = true
    user.dir = /opt/jboss/wildfly-8.0.0.Final/bin
    sun.cpu.isalist =?
    logging.configuration =?file:/opt/jboss/wildfly-8.0.0.Final/standalone/configuration/logging.properties

    ......

    3、排查ClassNotFoundException

    寫過Java代碼的讀者估計都碰到過ClassNotFoundException/NoClassDefFoundError/NoSuchMethodException(還有一個常見的ClassCastException就不在這里說了)。當碰到ClassNotFoundException/NoClassDefFound時,如果很確定這個class應(yīng)該是從哪個路徑裝載的,則可以去相應(yīng)的路徑找下是否有對應(yīng)的class文件存在,例如web應(yīng)用通常會在*.war(ear)/WEB-INF/lib或classes目錄下,對于lib下的jar包,可通過寫個小腳本jar -tvf的方式找找;如不確定class是從哪裝載的,則可以先看看日志里是否有堆棧信息,如果有的話則可以看到具體是哪個ClassLoader實現(xiàn)在裝載class,之后則可以通過www.grepcode.com或jar包反編譯看看具體是從哪裝載的class;如果日志中沒有,則可以用btrace來跟蹤下拋出以上兩個異常的堆棧信息,btrace腳本類似如下:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.*;

    @BTrace public class Trace{

    @OnMethod(

    clazz="java.lang.ClassNotFoundException",

    method="<init>"

    )

    public static void traceExecute(){

    jstack();

    }

    }

    拿到堆棧信息后,可以繼續(xù)使用上面的方法進行排查,在確認了class裝載的位置后,則可將相應(yīng)的class/jar加上即可。

    4、排查OutOfMemoryError

    盡管JVM是自動管理內(nèi)存的分配和回收的,但Java程序員們還是會經(jīng)常碰到各種各樣的內(nèi)存問題。最常見的第一個問題是java.lang.OutOfMemoryError,估計寫Java的讀者都碰到過。在日志中可能會看到j(luò)ava.lang.OutOfMemoryError: Unable to create new native thread,可以先統(tǒng)計下目前的線程數(shù)(例如ps -eLf | grep java -c),然后可以看看ulimit -u的限制值是多少,如線程數(shù)已經(jīng)達到限制值,如限制值可調(diào)整,則可通過調(diào)整限制值來解決;如不能調(diào)限制值,或者創(chuàng)建的線程已經(jīng)很多了,那就需要看看線程都是哪里創(chuàng)建出來的,同樣可通過btrace來查出是哪里創(chuàng)建的,腳本類似如下:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.*;

    @BTrace public class Trace{

    @OnMethod(

    clazz="java.lang.Thread",

    method="start"

    )

    public static void traceExecute(){

    jstack();

    }

    }

    在找到是哪里創(chuàng)建造成了后,之后就可以想辦法解決了,例如這種情況下常見的有可能是用了Executors.newCachedThreadPool這種來創(chuàng)建了一個沒限制大小的線程池。

    綜合實例

    以下是筆者編寫的一個demo,主要用于測試OOM,當然也會對BTrace的功能進行介紹。

    首先,筆者編寫了兩個用于測試的類,如下:

    StartObject.java

    import java.util.Random;

    public class StartObject {

    private static int totalTime = 0;

    public int work(int sleepTime) throws InterruptedException{

    System.out.println("sleep " + sleepTime);

    totalTime += sleepTime;

    return totalTime;

    }

    }

    HeapOOM.java

    import java.util.ArrayList;

    import java.util.List;

    import java.util.Random;

    public class HeapOOM {

    public static void main(String agrs[]) throws InterruptedException{

    Random random = new Random();

    List<Integer> list = new ArrayList<Integer>();

    Thread.sleep(10000);

    while(true){

    int sleepTime = random.nextInt(1000);

    list.add(new StartObject().work(sleepTime));

    }

    }

    }

    由于筆者將運行時jvm參數(shù)設(shè)置為:-Xms10m -Xmx10m

    因此程序會因為HeapOOM.java中紅色一行代碼不斷創(chuàng)建對象而發(fā)生OutOfMemoryError異常。

    以下,我們便通過StartObject這個類來查找是在哪不斷新建對象并調(diào)用其work方法,于是編寫B(tài)Trace腳本如下:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.*;

    @BTrace

    public class TraceObject {

    @OnMethod(clazz = "StartObject", method = "work", location = @Location(value = Kind.CALL, clazz = "/.*/", method = "/.*/"))

    public static void checkWhoCallMe() {

    println("check who ActionObject.work method:");

    jstack();

    }

    }

    通過jps查找到HeapOOM執(zhí)行的pid

    執(zhí)行:btrace [pid] TraceObject.java

    在終端我們看到HeapOOM類中執(zhí)行StratObject.work方法,如此即可找到我們想要的執(zhí)行對象,從而可以去修改。

    若是得到work方法的執(zhí)行時間的話,腳本如下:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.*;

    @BTrace

    public class TraceObjectCost {

    @TLS

    static long startTime;

    @OnMethod(clazz = "StartObject", method = "work", location = @Location(Kind.RETURN))

    public static void start() {

    startTime = timeMillis();

    }

    @OnMethod(clazz = "StartObject", method = "work", location = @Location(Kind.RETURN))

    public static void getMethodExecuteCost(int sleepTime,@Return int totalTime) {

    String str = str(timeMillis() - startTime);

    String strcat = strcat("execute work method cost:", str);

    String strcat2 = strcat(strcat, " ms");

    println(strcat2);

    }

    }

    若是期望的到一個method哪幾行被執(zhí)行了的話,腳本如下:

    import static com.sun.btrace.BTraceUtils.*;

    import com.sun.btrace.annotations.*;

    @BTrace

    public class TraceObjectLineCall {

    @OnMethod(clazz="StartObject",method="work",location=@Location(value=Kind.CALL, clazz="/.*/", method="/.*/"))

    public static void lineCall(@Self StartObject self, @TargetMethodOrField String method, @ProbeMethodName String probeMethod){

    println(Strings.strcat(method, Strings.strcat(" in ", probeMethod)));

    }

    }

    個人見解

    雖然 Btrace 在關(guān)鍵時候能起到迅速排查問題的作用,但我個人感覺,這還是不到萬不得已才使用的好。首先,我們代碼上線前,應(yīng)該充分 review ,充分和相關(guān)方進行溝通,以避免不必要的問題發(fā)生。其次,我們應(yīng)該養(yǎng)成記 log 的良好習慣。遇到問題,如果有相關(guān)日志可以排查,是最方便的,同時也是最安全,成本最低的一種排查方法。最后,我們可以結(jié)合 btrace 和 jdk 自帶的 tool 來排查問題,比如 jstack 、 jstat 等等,快速的定位問題。

    ?

    參考資料

    http://kenai.com/projects/btrace/pages/UserGuide

    http://learnworld.iteye.com/blog/1402763

    http://inter12.iteye.com/blog/1759882

    http://www.cnblogs.com/serendipity/archive/2012/05/14/2499840.html

    ?

    附錄

    相關(guān)實例說明

    AWTEventTracer.java -演示了對EventQueue.dispatchEvent()事件進行trace的做法,可以通過instanceof來對事件進行過濾,比如這里只針對focus事件trace.

    AllLines.java -演示了如何在被trace的程序到達probe指定的類和指定的行號時執(zhí)行指定的操作(例子中指定的行號是-1表示任意行).

    AllSync.java -演示了如何在進入/退出同步塊進行trace.

    ArgArray.java -演示了打印java.io包下所有類的readXXX方法的輸入?yún)?shù).

    Classload.java -演示打印成功加載指定類以及堆棧信息.

    CommandArg.java -演示如何獲取btrace命令行參數(shù).

    Deadlock.java -演示了@OnTimer注解和內(nèi)置deadlock()方法的用法

    DTraceInline.java -演示@DTrace注解的用法

    DTraceDemoRef.java -演示@DTraceRef注解的用法.

    FileTracker.java -演示了如何對File{Input/Output}Stream構(gòu)造函數(shù)中初始化打開文件的讀寫文件操作進行trace.

    FinalizeTracker.java -演示了如何打印一個類所有的屬性,這個在調(diào)試和故障分析中非常有用.這里的例子是打印FileInputStream類的close() /finalize()方法被調(diào)用時的信息.

    Histogram.java -演示了統(tǒng)計javax.swing.JComponent在一個應(yīng)用中被創(chuàng)建了多少次.

    HistogramBean.java -同上例,只不過演示了如何與JMX集成,這里的map屬性通過使用@Property注解被暴露成一個MBean.

    HistoOnEvent.java -同上例,只不過演示了如何在通過按ctrl+c中斷當前腳本時打印出創(chuàng)建次數(shù),而不是定時打印.

    JdbcQueries.java -演示了聚合(aggregation)功能.關(guān)于聚合功能可參考DTrace.

    JInfo.java -演示了內(nèi)置方法printVmArguments(), printProperties()和printEnv()的用法

    JMap.java -演示了內(nèi)置方法dumpHeap()的用法.即將目標應(yīng)用的堆信息以二進制的形式dump出來

    JStack.java -演示了內(nèi)置方法jstackAll()的用法,即打印所有線程的堆棧信息.

    LogTracer.java -演示了如何深入實例方法(Logger.log)并調(diào)用內(nèi)置方法(field() )打印私有屬性內(nèi)容.

    MemAlerter.java -演示了使用@OnLowMememory注解監(jiān)控內(nèi)存使用情況.即堆內(nèi)存中的年老代達到指定值時打印出內(nèi)存信息.

    Memory.java -演示每隔4s打印一次內(nèi)存統(tǒng)計信息.

    MultiClass.java -演示了通過使用正則表達式對多個類的多個方法進行trace.

    NewComponent.java -使用計數(shù)器每隔一段時間檢查當前應(yīng)用中創(chuàng)建java.awt.Component的個數(shù).

    OnThrow.java -當拋出異常時,打印出異常堆棧信息.

    ProbeExit.java -演示@OnExit注解和內(nèi)置exit(int)方法的用法

    Profiling.java -演示了對profile的支持. //我執(zhí)行沒成功, BTrace內(nèi)部有異常

    Sizeof.java -演示了內(nèi)置的sizeof方法的使用.

    SocketTracker.java -演示了對socket的creation/bind方法的trace.

    SocketTracker1.java -同上,只不過使用了@OnProbe.

    SysProp.java -演示了使用內(nèi)置方法獲取系統(tǒng)屬性,這里是對java.lang.System的getProperty方法進行trace.

    SubtypeTracer.java -演示了如何對指定超類的所有子類的指定方法進行trace.

    ThreadCounter.java -演示了在腳本中如何使用jvmstat計數(shù)器. (jstat -J-Djstat.showUnsupported=true -name btrace.com.sun.btrace.samples.ThreadCounter.count需要這樣來從外部通過jstat來訪問)

    ThreadCounterBean.java -同上,只不過使用了JMX.

    ThreadBean.java -演示了對預編譯器的使用(并結(jié)合了JMX).

    ThreadStart.java -演示了腳本中DTrace的用法.

    Timers.java -演示了在一個腳本中同時使用多個@OnTimer

    URLTracker.java -演示了在每次URL.openConnection成功返回時打印出url.這里也使用了D語言腳本.

    WebServiceTracker.java -演示了如何根據(jù)注解進行trace.

    總結(jié)

    以上是生活随笔為你收集整理的BTrace简介及使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    在线看日韩av | 99久久精品免费看国产免费软件 | 91久久精品一区 | 久久综合综合久久综合 | 国产视频一级 | 国产九九九九九 | 一级免费av | 国产精品美女免费 | 午夜影院先 | 韩国在线一区 | 久久久久久不卡 | 午夜av在线播放 | 日韩精品一区二区三区丰满 | 欧洲一区二区三区精品 | 在线播放91 | 韩日三级在线 | 日韩欧美在线第一页 | 在线观看成人一级片 | 国产成人久久精品亚洲 | 久久久久电影网站 | a级片久久久 | 激情综合狠狠 | 免费看毛片在线 | av资源免费观看 | 国产精品视频免费观看 | 精品在线观看免费 | 二区三区av | 日韩电影在线看 | 一区中文字幕电影 | 免费男女羞羞的视频网站中文字幕 | 99在线精品视频在线观看 | 一区二区三区三区在线 | 中文字幕有码在线观看 | 亚洲色图av | 99在线精品免费视频九九视 | 黄色av影院 | 亚洲欧洲精品一区 | 亚洲午夜精品一区 | 国产精久久久久久久 | 亚洲 欧美 变态 国产 另类 | 国产资源网 | 99久久精品一区二区成人 | 一二区电影 | 亚洲va欧美va人人爽春色影视 | 五月天激情视频在线观看 | 亚洲伦理一区二区 | 亚洲免费视频在线观看 | 亚洲男男gaygayxxxgv | 一区二区三区在线免费播放 | 久草免费在线观看 | 欧美色综合天天久久综合精品 | 国产精久久久久久久 | 久久综合婷婷国产二区高清 | 99福利片| 超碰在线97国产 | 国产 日韩 中文字幕 | 久久婷婷精品视频 | 成人在线观看你懂的 | 国产精品av在线 | 成人午夜电影网站 | 成人av电影网址 | 日韩在线 一区二区 | av网站在线观看播放 | 免费性网站 | 亚洲国产精品影院 | 色婷婷播放 | 国产一级做a爱片久久毛片a | 精品视频999 | 日本久久91| 中文字幕色婷婷在线视频 | 国产99久久九九精品免费 | 久久久资源 | 亚洲精品裸体 | 久久国产一区二区三区 | 97成人资源站 | 亚洲激情中文 | 日韩精品在线免费观看 | 久久视了| 成人国产一区二区 | 久久久久久美女 | 婷婷丁香狠狠爱 | 99精品视频免费在线观看 | 国产一区视频免费在线观看 | 国产精品二区三区 | 久要激情网 | 成年人在线电影 | 久久久久福利视频 | 不卡电影免费在线播放一区 | www.日本色 | 亚洲精品视频在线观看免费视频 | 黄色a视频 | 亚洲精品免费看 | 亚洲高清av在线 | 精品久久福利 | 国产福利不卡视频 | 在线观看91网站 | 亚洲精品www. | 在线看中文字幕 | 国产九色视频在线观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 一本一道久久a久久精品 | 日本三级久久 | 五月婷久 | 精品天堂av | 国产一二区免费视频 | 亚洲欧洲国产视频 | 999超碰| av在线中文 | 99久久精品一区二区成人 | 国产美女视频免费观看的网站 | 激情在线网站 | 亚州精品在线视频 | 国产在线一线 | 色狠狠干 | 色在线中文字幕 | 91网址在线 | 97综合在线 | 国产亚洲精品成人av久久影院 | 在线成人免费电影 | 国产一区二区电影在线观看 | 国语对白少妇爽91 | 中文字幕 欧美性 | www.成人精品| 久久久综合电影 | 婷婷播播网| 激情综合色综合久久综合 | 久久综合射 | 韩国av一区二区三区在线观看 | 亚洲首页 | 黄色国产在线观看 | 日韩在线观看中文字幕 | 欧美综合在线视频 | 亚洲桃花综合 | 免费男女羞羞的视频网站中文字幕 | 91视频中文字幕 | 日本精品视频免费 | 亚洲三级在线免费观看 | 日韩av中文字幕在线免费观看 | 精品国产91亚洲一区二区三区www | 色偷偷88888欧美精品久久久 | 99这里只有久久精品视频 | 欧美日韩视频在线观看一区二区 | 一区二区av| 国产色在线视频 | 久久黄页 | 亚州精品成人 | 久久久99国产精品免费 | 免费特级黄毛片 | 天天色天天色 | 成人国产一区二区 | 国产中文字幕视频 | 亚洲国产日韩一区 | 99精品视频播放 | 69av在线视频 | 亚洲精品乱码久久久久 | www欧美色| 久久国产精品99久久久久 | 992tv又爽又黄的免费视频 | 免费的成人av | 97精品国自产拍在线观看 | 狠狠色婷婷丁香六月 | 波多野结衣在线观看一区 | 欧美小视频在线 | 成年人视频免费在线 | 中文av在线免费观看 | 国产免费观看久久 | www.少妇| 色综合久久88色综合天天 | 国产96精品| 99夜色| 黄色av免费| 国产在线综合视频 | 麻豆免费在线播放 | 69国产盗摄一区二区三区五区 | 中文av免费 | 国产精品嫩草影院9 | 国产在线观看xxx | 日韩av手机在线观看 | 免费精品人在线二线三线 | 日本精品一区二区 | 国产精品资源在线观看 | 日日干美女 | 亚洲经典中文字幕 | 欧美日产在线观看 | 91人人澡人人爽人人精品 | 国内精品久久久久久久影视麻豆 | 国产视频一区二区在线观看 | 婷婷丁香色综合狠狠色 | 激情五月婷婷激情 | 在线看片91| 婷婷六月天在线 | 欧美日韩一区二区在线 | www.av中文字幕.com | av中文天堂在线 | 久久午夜电影院 | 久日视频| 免费黄色网止 | 久久亚洲国产精品 | 欧美一二三区在线播放 | 国产成人黄色 | 九九热在线视频免费观看 | 三级黄色大片在线观看 | 操久 | 成人免费看电影 | 久久久久久久久久国产精品 | v片在线看 | 色多多在线观看 | 国产精品国产三级国产aⅴ入口 | 国产视频手机在线 | 一本一本久久a久久精品综合妖精 | 国产香蕉视频在线观看 | 91av资源网 | 成片免费观看视频大全 | h动漫中文字幕 | 毛片1000部免费看 | 久久久久久久久久久久久久电影 | 色狠狠干 | 99精品国产兔费观看久久99 | 中文字幕资源站 | 久久手机看片 | 国产91成人 | 夜夜骑首页 | 成人va视频| 亚洲婷婷在线视频 | 亚洲精品三级 | 色婷婷狠狠五月综合天色拍 | 精品在线观看国产 | 美女免费电影 | 91精品伦理| 午夜三级毛片 | 91精品在线免费视频 | 日韩在线观看第一页 | 色综合久久久久综合体桃花网 | 久久精品网址 | 久久久久免费精品视频 | 在线观看黄av | 亚洲午夜精品久久久久久久久久久久 | 天天操综合| 日日夜夜精品视频天天综合网 | 天堂在线视频中文网 | 婷婷丁香狠狠爱 | 91桃色在线播放 | www.天天成人国产电影 | 欧美一区二区精美视频 | 成人va在线观看 | 在线观看91精品国产网站 | 天天射天天射 | 精品日韩中文字幕 | 日日日日日 | 国产精品久久久久久久久久久久午夜片 | 亚洲网站在线看 | 久热色超碰 | 美女视频黄是免费的 | 黄色小视频在线观看免费 | 伊人五月天av | 精品久久久久久一区二区里番 | 久久网站最新地址 | 91.精品高清在线观看 | 久久精品免费 | 最新中文字幕在线播放 | 婷婷深爱网 | 911香蕉视频 | 五月婷婷av在线 | 久久免费视频在线观看30 | 久久综合狠狠狠色97 | 国产日韩精品在线观看 | 亚洲高清精品在线 | 五月天伊人网 | 免费黄色在线网站 | 国产精品免费高清 | 国产精品久久久久久久久婷婷 | 成人免费观看视频网站 | 99久久99视频 | 久久精品视频3 | 日批视频 | 免费的国产精品 | 毛片网在线观看 | 亚洲精品免费在线视频 | 日韩网站免费观看 | 99riav1国产精品视频 | www.啪啪.com| 国产一区二区视频在线 | 去看片| 亚洲欧美日韩在线一区二区 | av 一区二区三区 | 色婷婷色 | 午夜av片 | 欧美成天堂网地址 | zzijzzij亚洲成熟少妇 | 日韩黄在线观看 | 色天天天| 久久久精品国产免费观看一区二区 | 伊人狠狠操| 国产精品日韩在线播放 | 日韩高清激情 | 久久久香蕉视频 | 99色资源 | 三级av中文字幕 | 日韩精品一区二区在线 | 亚洲精品乱码久久久久久蜜桃不爽 | 欧美精品中文字幕亚洲专区 | 四虎影视成人精品 | 久久综合免费视频 | 久久人人爽人人爽人人片 | 色偷偷网站视频 | 日日射av | 国产伦精品一区二区三区无广告 | 日本不卡一区二区 | 精品美女久久久久 | 国产一区二区高清 | 国产福利一区二区三区在线观看 | 国产成人精品在线观看 | av在线影视| 色吊丝av中文字幕 | 夜夜骑日日 | 国产成人一区二区三区久久精品 | 在线观看视频色 | 欧美亚洲国产一卡 | 日韩一区二区在线免费观看 | 久久理论视频 | 亚洲人天堂 | 精品国产1区 | 久草在线网址 | 黄色高清视频在线观看 | 久久这里有 | 国产精品高清在线 | 亚洲精品456在线播放第一页 | 欧美日韩不卡在线 | 久久久国产一区二区三区四区小说 | 国产精品不卡在线观看 | 黄色av电影网 | 亚洲国产中文字幕 | 国产69久久久欧美一级 | 中文国产字幕在线观看 | 免费一级黄色 | 精品久久久精品 | 综合五月 | 99久久精品费精品 | 国产黄视频在线观看 | 色婷婷啪啪免费在线电影观看 | 亚洲国产三级 | 亚洲一区久久 | 午夜久久福利 | 欧美一级艳片视频免费观看 | 99久久999久久久精玫瑰 | 婷婷视频导航 | 国产精品嫩草影院123 | 亚洲精品免费在线播放 | 四虎在线观看精品视频 | 伊人射| 国产精品久久久久久妇 | 国产亚洲精品久久久久动 | 天天操天天干天天插 | 亚洲伊人色 | 久久久精品午夜 | 福利视频| 久久都是精品 | av色一区| 国产综合激情 | 亚洲国产视频直播 | 日韩精品中文字幕av | www.天天干 | 久久综合狠狠综合 | 日韩理论片中文字幕 | 三级黄色大片在线观看 | 中文免费观看 | 欧洲亚洲精品 | 天天干,天天操 | www成人精品| 国产人成免费视频 | 日日操天天操夜夜操 | 69国产精品视频免费观看 | 四虎成人免费影院 | 午夜在线免费视频 | 最新av电影网站 | 人人干人人上 | 国产三级在线播放 | 深爱激情丁香 | 国产欧美日韩精品一区二区免费 | 偷拍精偷拍精品欧洲亚洲网站 | 91九色最新地址 | 日韩av中文字幕在线 | 免费成人av在线 | 久久久久久毛片精品免费不卡 | 天天爽天天爽天天爽 | 日韩欧美高清在线观看 | 国产资源精品在线观看 | 欧美另类网站 | 久久伊人国产精品 | 国产高清中文字幕 | 天天躁日日躁狠狠躁av麻豆 | 成人久久久久 | 97成人免费视频 | 国产r级在线观看 | 久久99久久99精品免视看婷婷 | 在线观av| 久久精品人人做人人综合老师 | 国产视频一二区 | 国产黄色精品 | 国产精品毛片一区二区三区 | 日韩在线观| 午夜久久久久久久 | 国际精品久久久久 | 91亚洲在线 | avwww在线观看 | 久草久视频 | 中文字幕第一 | 福利一区二区在线 | 91精品国产入口 | 国产一区二区视频在线播放 | 成人久久久久久久久久 | 97国产在线播放 | 午夜视频在线观看一区二区三区 | 亚洲无人区小视频 | av线上免费观看 | 久久久99精品免费观看 | 毛片在线播放网址 | 伊人色综合久久天天 | 日日夜夜国产 | 最新av电影网站 | 91精品1区2区| av日韩不卡 | 免费网站在线观看成人 | 99在线高清视频在线播放 | 丁香色综合 | 亚洲区另类春色综合小说校园片 | 精品福利在线视频 | 欧美射射射 | 在线久热 | 最新日韩中文字幕 | 久久久免费毛片 | 国产美女精品视频 | 最新中文字幕 | 日本三级中文字幕在线观看 | 婷婷丁香色综合狠狠色 | 国内外成人免费在线视频 | 国产视频在线观看一区 | 中文字幕在线精品 | 国产成人精品久久亚洲高清不卡 | 国产午夜在线观看 | 欧美日韩一区二区久久 | 又色又爽的网站 | 国产乱码精品一区二区三区介绍 | 美女免费视频一区 | 99tvdz@gmail.com| 一区二区电影网 | 91精品国产自产老师啪 | 日产av在线播放 | 国产精品一区二 | 午夜av片 | 欧美日本一区 | 国产美女免费观看 | 97香蕉超级碰碰久久免费软件 | 在线免费日韩 | 亚州人成在线播放 | 久久精品5 | 国产123av | 精品一区二区在线看 | 精品久久久久久国产偷窥 | 日日爽夜夜爽 | 精品国产成人av在线免 | av色一区| 人人干人人添 | 亚洲精品在线免费观看视频 | 国产一区在线免费观看视频 | 日韩精品一区二区三区免费视频观看 | 中文视频在线看 | 超碰97在线人人 | 五月激情丁香婷婷 | 国产视频观看 | 夜夜操狠狠操 | 日韩大片在线 | 国产女人免费看a级丨片 | 国产一区二区视频在线播放 | 韩日精品在线 | 激情视频在线高清看 | 国产精品 视频 | 91亚洲精品久久久中文字幕 | 久久久鲁 | 日本久久中文字幕 | 国产精品黑丝在线观看 | 免费视频一二三 | 视频一区二区视频 | 狠狠干网址 | 午夜视频久久久 | 亚洲精品资源在线 | 国产精品一区二区免费视频 | 手机看片99 | 摸bbb搡bbb搡bbbb | 五月天综合激情网 | 香蕉视频在线播放 | 2019久久精品 | 日韩黄色中文字幕 | 久久狠狠婷婷 | 欧美9999| 久久精品中文字幕一区二区三区 | 欧美日韩国产综合一区二区 | 日本一区二区三区视频在线播放 | 粉嫩av一区二区三区入口 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 97在线观看视频免费 | 夜色成人网 | 欧美精品久久99 | 看片黄网站 | 久久久av电影 | 中文字幕在线国产精品 | 国产一区二区不卡视频 | 97成人精品视频在线播放 | 精品在线播放视频 | 日韩av免费在线看 | а中文在线天堂 | 高清av中文字幕 | 中文字幕第一页在线播放 | 在线不卡的av | 亚洲高清激情 | 国产自偷自拍 | 日韩精品免费专区 | 91久久一区二区 | av成人免费在线观看 | 欧洲亚洲激情 | 久久国产精品一区二区三区 | 国产精品免费在线视频 | 色婷婷亚洲婷婷 | 亚洲精品视频一二三 | 国产成人精品三级 | 国产精品s色 | 日韩一区精品 | 久久的色 | 亚洲精品美女在线观看 | 国产视频18 | 日p视频| 嫩草av影院 | 亚洲国产精品资源 | 中文字幕乱在线伦视频中文字幕乱码在线 | 视频国产区 | 韩国一区二区三区视频 | 一级黄色片毛片 | 精品国产_亚洲人成在线 | 免费看的国产视频网站 | 97碰碰精品嫩模在线播放 | 国产精品久久久久永久免费看 | 国产精品爽爽久久久久久蜜臀 | 黄色成人av在线 | 国产精品v欧美精品 | 国产呻吟在线 | av超碰在线 | 久久久久久综合网天天 | 久久久久久久久亚洲精品 | 天天狠狠| 成人一级影视 | 欧洲一区二区在线观看 | 日韩av电影网站在线观看 | 亚洲午夜电影网 | 81精品国产乱码久久久久久 | 欧美欧美| 99热这里只有精品免费 | 天天干天天干天天操 | 天天操天天干天天操天天干 | 午夜久草 | 亚洲精品h | 色综合中文综合网 | 国产午夜精品久久久久久久久久 | 欧美十八 | 久久久久久毛片 | 在线欧美a | 亚洲va欧美va人人爽春色影视 | 国产无吗一区二区三区在线欢 | 探花系列在线 | 亚洲综合在线发布 | 久久久久国产精品免费免费搜索 | 91传媒视频在线观看 | 欧美大片aaa | 久草在线久草在线2 | 午夜精品久久久久久久久久久久久久 | 99视频精品全部免费 在线 | 成人毛片一区 | 天天天天天天天操 | 国产亚洲一区二区三区 | 香蕉精品视频在线观看 | 亚洲免费在线观看视频 | 国产精品毛片一区视频 | 欧美成人精品欧美一级乱 | 最近最新中文字幕 | 久久国产精品久久精品 | 婷婷激情欧美 | 久久夜靖品 | 亚洲在线免费视频 | 热久久免费国产视频 | 最近的中文字幕大全免费版 | 天天天干天天天操 | 久久午夜视频 | 日躁夜躁狠狠躁2001 | 国产精品亚洲综合久久 | 欧美成人999 | 国产一区二区在线免费 | 国产亚洲成av片在线观看 | 五月婷婷综合激情网 | 国产97色在线 | 97涩涩视频| 国产精品欧美日韩在线观看 | 国产视频 亚洲视频 | 在线观看免费中文字幕 | 在线免费看片 | 久草在线看片 | 亚洲一区免费在线 | 91麻豆国产 | 日韩和的一区二在线 | 亚洲狠狠婷婷 | 精品婷婷 | 亚洲春色奇米影视 | 亚洲激情一区二区三区 | 日韩一级片网址 | 波多野结衣一区二区三区中文字幕 | 国产第一页精品 | 91av99| 五月婷婷欧美视频 | 99精品视频在线免费观看 | 久久视频国产精品免费视频在线 | 国产精品久久久久aaaa | av超碰免费在线 | 国产精品中文字幕av | 黄色一级免费网站 | 开心激情网五月天 | 欧美日韩伦理一区 | 成人avav| 国产手机精品视频 | 国内一区二区视频 | 91av在线免费视频 | 丁香六月久久综合狠狠色 | 午夜精品福利一区二区 | 免费看在线看www777 | 日韩电影中文,亚洲精品乱码 | 国产精品理论视频 | 国产精品久久电影网 | 婷婷成人综合 | 日韩av视屏 | 深爱激情久久 | 亚洲视频 在线观看 | 成人国产精品免费观看 | 日韩精品电影在线播放 | 亚洲综合视频在线 | 中文免费观看 | 欧美最猛性xxxxx(亚洲精品) | 国产丝袜 | 久久永久免费视频 | 免费看一级特黄a大片 | 国产艹b视频 | 成人观看视频 | 天天天插 | 最近中文字幕在线中文高清版 | 99精品视频在线播放免费 | 欧美吞精 | 99久热精品 | 日韩高清不卡一区二区三区 | 午夜精品久久久久久久久久久 | 亚洲,播放 | 久久99精品久久久久久三级 | 欧美一级片在线免费观看 | 亚洲精品午夜aaa久久久 | 亚洲第一中文网 | 美女视频又黄又免费 | 国产在线播放不卡 | 国产精品视频 | 久久综合影音 | 欧美视频日韩视频 | 91av国产视频 | 插婷婷 | 99精品在线免费观看 | 日韩黄在线观看 | 色夜影院| 天天射天天色天天干 | 色综合天天干 | 在线视频观看亚洲 | 麻豆视频免费播放 | 丁香五月缴情综合网 | 国产一级精品绿帽视频 | 最新国产在线 | 国内久久久 | 天天综合网在线 | 99久久精品免费看国产麻豆 | 久久精品99视频 | 在线观看岛国片 | 99视频在线免费 | 亚洲国产欧洲综合997久久, | 日韩一区二区三区高清在线观看 | 黄色a在线观看 | 99精品免费视频 | 久久久精品日本 | 黄色av影视 | 中文字幕超清在线免费 | 激情综合色综合久久 | 天天插天天狠天天透 | 欧洲精品亚洲精品 | 久久九九久久精品 | 波多野结衣一区三区 | 九九99靖品 | 看av在线| 99麻豆久久久国产精品免费 | 日韩在线观看网址 | 日本一区二区三区视频在线播放 | 黄污在线观看 | 久久久久伦理电影 | 五月天高清欧美mv | 国产一区国产二区在线观看 | 丁香久久激情 | 九精品 | 色综合久久久久综合99 | 日韩av电影手机在线观看 | 国产一二区视频 | 国产 欧美 日本 | 99热国产在线中文 | 久久色中文字幕 | 亚洲在线观看av | 国产精品观看视频 | 中文字幕日本在线 | 国产三级精品三级在线观看 | 午夜国产福利在线 | 日韩一级精品 | 青青草久草在线 | 草久视频在线观看 | 91在线小视频 | 久久国产精品免费一区二区三区 | 免费观看性生交大片3 | 日韩a在线播放 | 在线观看视频免费播放 | 成年人三级网站 | 在线观看91网站 | 久久理伦片 | av综合网址 | 四虎在线免费观看视频 | 免费高清av在线看 | 天天色视频 | 精品国产1区2区3区 国产欧美精品在线观看 | 91麻豆精品国产自产在线游戏 | 9797在线看片亚洲精品 | 国产精品九九久久久久久久 | 在线探花 | 成人影音在线 | 国产日韩精品一区二区三区在线 | 91精彩视频在线观看 | 欧美成人性战久久 | 黄色精品免费 | 高清在线一区二区 | 日韩精品综合在线 | 国产69精品久久久久久久久久 | 久久精品中文字幕一区二区三区 | 正在播放 国产精品 | 国产精彩视频一区 | 欧美日韩一区二区在线 | 深夜国产在线 | 国产精彩在线视频 | 中文久久精品 | 日韩高清在线不卡 | 操久在线 | 亚洲精品乱码久久久久久9色 | 久草五月 | a色视频| 97人人超碰在线 | 久久久国产精华液 | 免费黄色在线播放 | 色夜影院| 久久超级碰 | 国产精品白浆视频 | 国产小视频免费观看 | 欧美日产在线观看 | 69视频永久免费观看 | 99精彩视频在线观看免费 | 99在线观看| 成年人看片网站 | 亚洲精品国产精品国自产观看 | 中文字幕在线免费 | 国产精品毛片久久久 | 日韩精品中文字幕久久臀 | 在线中文字幕播放 | 成 人 黄 色 片 在线播放 | 亚洲精品麻豆 | 正在播放 久久 | 在线观看黄色的网站 | 一级黄色免费网站 | 在线观看成人网 | 四虎在线观看精品视频 | 久久国产精品久久精品国产演员表 | av片中文字幕 | 国产在线1区 | 99一级片 | 欧美精品亚州精品 | 午夜精品视频一区 | 精品亚洲一区二区三区 | 国产成人av片 | 欧美日韩国产精品一区二区 | 99热播精品| 免费美女久久99 | 日韩在线视频免费播放 | 亚洲狠狠 | 久久高清免费观看 | 91精品视频免费观看 | 欧美日韩国产一区二区三区在线观看 | 久久综合综合久久综合 | 国产成人av免费在线观看 | 97超碰在线久草超碰在线观看 | 黄网站免费大全入口 | 最近中文字幕免费av | 91麻豆精品国产91久久久久久 | 在线中文字幕视频 | 亚洲精品88欧美一区二区 | 婷婷5月激情5月 | 一区二区三区中文字幕在线 | 亚洲在线成人精品 | 超碰在线人人97 | 成人超碰97| 开心色插 | 看国产黄色片 | 亚洲精品在线免费看 | 天天干天天射天天插 | 国产视频久久久久 | 天天曰天天射 | 最近2019中文免费高清视频观看www99 | 欧美日韩成人一区 | 久久精品国产成人 | 黄色在线网站噜噜噜 | 我要色综合天天 | 国产精品久久久久一区二区三区 | 99超碰在线观看 | 91视频这里只有精品 | 一本一本久久a久久 | 午夜av电影院 | 天堂久久电影网 | 日韩视频免费播放 | 国产精品自拍av | 九九综合久久 | 一区二区激情 | 国产精品免费视频一区二区 | 久久久久免费精品国产小说色大师 | 91久久国产露脸精品国产闺蜜 | 日产乱码一二三区别在线 | 国产精品淫片 | 色就是色综合 | av在线播放亚洲 | 国产中文欧美日韩在线 | 久久久久久高清 | 亚洲另类视频在线 | 色欧美88888久久久久久影院 | 字幕网资源站中文字幕 | 最新不卡av | 免费裸体视频网 | 精品久久一 | 日韩精品中文字幕av | 日日干夜夜爱 | 中文在线www| 国产亚洲综合性久久久影院 | 欧美色综合天天久久综合精品 | 中文字幕资源在线 | 97视频免费在线观看 | 亚洲国产免费看 | av午夜电影 | 中文字幕一区三区 | 天天亚洲| 久久精品草| 天天操天天干天天 | 激情视频一区二区三区 | 成人免费网视频 | 欧美一级电影片 | 美女黄频免费 | 狠狠干夜夜爱 | 特级黄色视频毛片 | 青草视频在线 | 91丨porny丨九色 | 成人aaa毛片 | 九九交易行官网 | 亚洲一级片av | 人人狠狠综合久久亚洲婷 | 欧美日韩一级久久久久久免费看 | 国产精品麻豆99久久久久久 | 午夜精品久久久久99热app | 午夜10000| 在线国产视频一区 | 亚洲一区二区三区毛片 | 在线观看免费福利 | 精品久久99 | 久久毛片视频 | 国产免码va在线观看免费 | 国产精品99久久久久久大便 | 欧美一级黄色片 | 中文有码在线 | 欧美坐爱视频 | 久久综合亚洲鲁鲁五月久久 | 亚洲欧洲av | 天天插狠狠干 | 亚州中文av | 久久影视一区 | 九九欧美 | 国产福利在线免费 | 97操碰 | 久久久亚洲国产精品麻豆综合天堂 | 国产日韩欧美视频在线观看 | 国产又粗又硬又长又爽的视频 | 国产精品亚洲成人 | 天天操天天舔天天干 | 色婷婷色 | 久久久精品 一区二区三区 国产99视频在线观看 | 国产99在线 | 免费看v片 | 日日干美女 | 国产在线综合视频 | 制服丝袜在线91 | www天天操 | 国产成人福利片 | 日本 在线 视频 中文 有码 | 一区二区三区精品在线视频 | 成人a在线观看高清电影 | 超碰在线观看av | 日韩视频三区 | 狂野欧美激情性xxxx | 日韩激情视频 | 免费网站观看www在线观看 | 日韩一区二区三区观看 | 亚洲人久久久 | 一区二区三区中文字幕在线观看 | 在线观看日本高清mv视频 | 免费三级a| 国产无吗一区二区三区在线欢 | 88av视频 | 亚洲国产欧美在线看片xxoo | 2019免费中文字幕 | 久久黄页| 中文字幕在线观 | 久久综合亚洲鲁鲁五月久久 | 在线免费观看黄色大片 | 欧美精品久久久久久久久久 | 中文字幕日本在线 | 国产精品激情偷乱一区二区∴ | 国产激情电影综合在线看 | www.久久com | 国产精品中文字幕在线观看 | 国产一区二区三区在线 | 国产精品视频免费观看 | 亚洲成人av电影在线 | 亚洲精选99 | 欧美成人手机版 | 成x99人av在线www | 久久久香蕉视频 | 欧美午夜性 | 久久狠狠一本精品综合网 | 婷婷av资源 | 亚洲精品五月 | 超碰人人超 | 在线91视频| 欧美国产精品久久久久久免费 | 欧美日韩伦理一区 | 免费一级片在线 | 国产中文视 | 精品免费视频123区 午夜久久成人 | 中文字幕国产亚洲 | 国产黄色成人av | 黄色成年网站 | av不卡在线看 | 国产一区二区在线免费播放 | 久久久久久片 | 碰天天操天天 | 男女激情网址 | 久久视频这里只有精品 | www.黄色片.com | 欧美成人69av | 在线免费观看av网站 | 深爱婷婷网 | 在线观看视频h | 在线观看亚洲精品 | 亚洲一一在线 | 天天操天天色天天 | 毛片网站在线看 | 热久久国产精品 | 国产黄网在线 | 日韩在线观看不卡 | 欧美精品二| 国产精品久久嫩一区二区免费 | 激情五月伊人 | 国产精品久久久久久999 | 免费在线精品视频 | 最近更新中文字幕 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 五月婷丁香网 | 欧美日韩后| 国产精品18久久久久久久久久久久 | 日本公妇在线观看高清 | www.五月天婷婷.com | 亚洲色综合 | 最近中文字幕国语免费高清6 | 欧美激情精品 | 人人狠狠综合久久亚洲 | aaa亚洲精品一二三区 | 婷婷丁香在线视频 | 激情五月网站 | 奇米四色影狠狠爱7777 | 美女网站视频免费都是黄 | 97av在线视频| 亚洲视频在线观看网站 | 亚洲黄色av一区 | 日韩一区二区免费视频 |