• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    一種面向枚舉類型的配置約束提取方法*

    2020-05-04 07:05:58曾廣福何浩辰周書林
    計算機工程與科學 2020年4期
    關(guān)鍵詞:枚舉開源語句

    曾廣福,何浩辰,周書林

    (國防科技大學計算機學院,湖南 長沙 410073)

    1 引言

    當今隨著計算機技術(shù)的迅速發(fā)展和計算能力持續(xù)提高,計算機軟件系統(tǒng)也隨之不斷發(fā)展。在軟件規(guī)模方面,目前常用的開源軟件規(guī)模均已達到了百萬行量級。據(jù) Coverity公司[1]的年度開源軟件代碼分析報告顯示,目前 Linux 內(nèi)核源碼規(guī)模正在以接近每年百萬行量級的速度增長。

    由于軟件規(guī)模的不斷擴大和軟件可配置性的不斷增強,軟件系統(tǒng)的配置項數(shù)量顯著增加,從而使用戶使用軟件系統(tǒng)時產(chǎn)生配置故障的幾率顯著升高。目前,軟件配置故障已經(jīng)成為系統(tǒng)異常、服務失效甚至系統(tǒng)崩潰的重要原因之一。Barroso等人[2,3]的報告稱在谷歌的主要服務中,配置故障是導致服務失效的第2大原因,僅次于軟件本身故障,占到了近 29% 的比例。

    目前,軟件配置項數(shù)量巨大,且系統(tǒng)中配置項均需要滿足特定的配置約束,由于用戶缺乏軟件相關(guān)的領(lǐng)域知識,進行軟件配置時極易違反對應配置約束而導致配置故障。目前軟件用戶和開發(fā)者常用的配置故障診斷方式是通過尋找配置需要滿足的約束條件來定位出錯的配置項。但是,上述配置約束條件的提取難點較多,如配置項之間或配置項與系統(tǒng)運行時環(huán)境之間存在復雜的配置關(guān)聯(lián)約束關(guān)系,需要綜合考慮源代碼和系統(tǒng)運行環(huán)境。綜合上述挑戰(zhàn),需要實現(xiàn)自動化的方法完成軟件配置項的約束提取。

    針對上述現(xiàn)狀,本文首先對6款常用開源C/C++軟件源碼進行分析,提取了對應的配置相關(guān)特征。枚舉類型配置作為軟件系統(tǒng)的常用配置類型,其取值空間經(jīng)常為固定的少數(shù)幾個字符串或整型值,用戶在不了解的情況下很容易錯誤設(shè)置對應的枚舉配置值,導致配置失敗或引發(fā)配置故障。另一方面,枚舉類型配置在代碼中通常存在普遍的代碼分析段,具有一定的普遍特征,因此針對枚舉類型的配置項取值空間進行提取很有必要。

    2 相關(guān)工作

    陳偉等人[4]總結(jié)了配置相關(guān)的研究,并提出導致軟件配置錯誤的主要原因之一是軟件組件依賴導致的配置依賴。配置依賴存在單個配置依賴和配置間的依賴,本文所研究的配置約束屬于單配置依賴范疇。

    清華大學的李福亮等人[5]首先對互聯(lián)網(wǎng)自動配置及配置案例進行概述;然后按照配置自動生成、配置驗證、配置自動實現(xiàn)這3個方面對互聯(lián)網(wǎng)自動配置研究進行分類總結(jié)和分析評價;最后總結(jié)了當前研究中存在的問題,其中配置約束的提取是提升當前相關(guān)工作的重要基礎(chǔ)。

    現(xiàn)有的關(guān)于配置約束的研究工作主要包括SPEX[6]和EnCore[7]。SPEX首先需要識別源代碼中的配置變量,然后用程序分析手段跟蹤數(shù)據(jù)流的每個程序變量與對應的配置參數(shù),并記錄所有數(shù)據(jù)流路徑中發(fā)現(xiàn)的配置約束。EnCore則從配置數(shù)據(jù)集的角度,基于預定義的約束模板,分析可能存在的約束。

    但是,上述研究工作均存在對應缺陷。SPEX可以基于正則表達式和簡單語義判斷推斷出配置項簡單的語法約束,包括是否符合基本數(shù)據(jù)類型等,但無法分析出配置項上下文語境或其本身語義所產(chǎn)生的約束,沒有對枚舉型配置項需要滿足的約束進行系統(tǒng)的分析和提取,且成功率較低。EnCore方法則由于沒有源碼的支持,僅通過人工定義,從數(shù)據(jù)分析角度提取約束,模板的發(fā)現(xiàn)是不完備的。另外,SPEX和EnCore只關(guān)注Switch-case-statement型的代碼段提取枚舉配置約束的情況,然而通過調(diào)研發(fā)現(xiàn),Switch-case-statement模式在本文調(diào)研的開源軟件中并不常見。

    本文研究發(fā)現(xiàn),枚舉類型配置項(與枚舉約束一一對應)在開源軟件中大量存在,如表1所示;不同類型的配置項(分類同文獻[6],見表 2 )帶有不同比例的約束。而其中枚舉類型全部天然地帶有約束,而前人工作對此研究十分簡單。

    Table 1 Numbers of constraints of enumeration-type configurations in some open source softwares表1 若干開源軟件中枚舉類型約束總數(shù)

    3 設(shè)計和實現(xiàn)

    開源軟件的配置約束具有一定的規(guī)律性,本文所提出和實現(xiàn)的面向枚舉類型的配置約束提取技術(shù)即基于此特性。

    Table 2 Constraints ratio of restriction for different data types表2 不同數(shù)據(jù)類型存在約束的比例情況 %

    3.1 開源軟件中枚舉類型配置源碼特征分析

    軟件配置的功能主要是作為軟件系統(tǒng)功能的調(diào)節(jié)器,是軟件系統(tǒng)中的一種常量。因此,從設(shè)計意圖上來說,一般配置變量在程序中均應為直接使用,不涉及數(shù)據(jù)流賦值傳播的情況(即將配置賦值給其他變量,再通過被賦值的其他變量進行程序控制)。在本文所調(diào)研的開源軟件中,絕大部分枚舉類型的配置項在源代碼中是直接被使用,沒有經(jīng)過二次賦值。并且,枚舉型配置變量的取值大多為宏定義類型或者C++中的枚舉類型,這樣可以很直接地獲取配置變量的取值。

    另外,通過建立配置項變量映射發(fā)現(xiàn)(即建立配置項名與源代碼中相應的程序變量名之間的映射關(guān)系),目前常用開源軟件的配置項映射通常聚集于少量源文件的代碼段中,如 PostgreSQL 在“guc.c”文件中完成配置映射,Redis 在“config.c”文件中完成映射。通過統(tǒng)計發(fā)現(xiàn),PostgreSQL軟件源碼中配置變量使用的分布情況如圖1所示,除了配置映射所在源文件外,其他源文件中的配置項出現(xiàn)次數(shù)極少,且分布稀疏 。

    Figure 1 Positions Distribution of configurations圖1 配置變量使用位置分布

    3.2 枚舉配置取值空間提取

    基于上述配置映射特征,本文提取的對應配置項變量映射策略如下所示:通過分析配置變量在程序中實際使用的位置,判斷其可能的取值(宏或者枚舉),通過可能的取值找到其配置項-配置變量映射代碼段,在代碼段中進行集中的配置約束提取,流程圖如圖 2 所示。相較于已有研究工作,本文的主要改進在于不需理解代碼語義信息,通過提供配置項名即可實現(xiàn)自動化的配置項變量映射特征代碼段,從而進一步實現(xiàn)配置約束的提取。

    Figure 2 Extraction procedure of constraints for configurations圖2 枚舉配置變量取值空間的提取流程

    3.2.1 枚舉配置變量取值提取

    本文基于Clang前端的庫接口將所有的源代碼文件轉(zhuǎn)化為抽象語法樹AST(Abstract Syntax Tree),并根據(jù)常見的2種配置變量(分支條件和選擇條件)使用場景分別進行配置變量取值的提取。

    分支條件中的配置變量使用是最普遍的配置變量使用場景,其中的條件語句并非簡單的2個變量直接比較,而是存在復雜的邏輯操作判斷。因此,本文主要針對2種情況分別使用不同方法規(guī)范化條件語句并分析是否存在配置變量的使用。

    首先,針對If-Condition類型的條件語句,本文主要使用二叉條件樹BCT(Binary Conditional Tree,即樹的所有葉節(jié)點均為操作數(shù),而非葉節(jié)點均為操作符,每個非葉節(jié)點只有2個子樹)表示 if 語句中的條件表達式,其中葉節(jié)點為常量或變量,而非葉節(jié)點均為運算符。圖3即為1個基本的If語句分支條件的二叉條件樹。

    Figure 3 An example of BCT圖3 BCT示例

    基于BCT實現(xiàn)配置相關(guān)分支條件中的分析記錄具體步驟如下所示:

    (1) 基于AST生成分支條件 BCT。基于 Clang 生成的源文件對應的AST,抽取配置相關(guān)的分支語句子樹,并生成對應 BCT。

    (2) 基于預定規(guī)則簡化BCT。對于生成的 BCT,需要進行合并化簡,將表達式中較復雜的形式化簡為最簡單的等價形式。主要的化簡規(guī)則包括:

    ① 常量表達式運算,計算出表達式中的算術(shù)運算,例如“4+3”化簡為“7”;

    ② 與配置變量無關(guān)的子樹統(tǒng)一記為UNKNOWN節(jié)點;

    ③ 消除三元運算符,將三元運算符化簡為等價的二元運算符,如從“a?b:c”化簡為 “(ab)||(!ac)”。

    然后通過遍歷整個BCT,查找是否出現(xiàn)了配置變量和宏定義/枚舉類型的直接比較,從而判斷出1個配置變量的1個可能取值。在圖3中,圓框為可以參與計算的葉子節(jié)點,方框葉節(jié)點分別為配置變量的可能值和配置變量。

    除由 if 控制的分支條件外,switch 控制的選擇條件也是常用場景之一。其句法結(jié)構(gòu)相對比較簡單,不存在復雜的嵌套關(guān)系,與分支條件類似,選擇條件的配置變量使用分析也可以通過AST分析來實現(xiàn)。一般來說,switch語句的選擇條件AST滿足圖4所示形式,其中方框葉節(jié)點分別代表配置變量及其可能的取值?;谏鲜?種針對不同形式的配置變量使用情況獲取,即可獲得對應的配置變量使用情況。

    Figure 4 BCT Features of ‘switch’ statement圖4 switch 語句 BCT 結(jié)構(gòu)特征

    3.2.2 枚舉配置取值集中出現(xiàn)定位分析

    在 PostgreSQL 中配置變量使用位置如圖 1 所示,橫坐標為文件,縱坐標為出現(xiàn)在該文件的第幾行,不同的灰度表示不同配置變量的枚舉值的使用位置。直觀來看,左下角是集中出現(xiàn)的區(qū)域,在實際計算中,以“數(shù)據(jù)距離不超過5行”作為集中定義區(qū)域的判定閾值。

    3.2.3 基于AST的啟發(fā)式枚舉配置取值空間提取優(yōu)化

    基于上述方法,如果通過簡單的字符串操作及固定的區(qū)域判定方法進行枚舉配置取值空間的提取,通常會存在一定的假陽性。本文主要通過以下方式進行過濾:首先,本文在調(diào)研過程中觀察到配置項字符串取值的字符一般為“A~Z”“a~z”“0~9”“-_”幾種類型的字符,而大部分假陽性是一些日志提示信息,含有大量的空格、“%”等符號,通過字符取值范圍過濾,可以過濾掉絕大多數(shù)的假陽性。進一步,本文對初步過濾后仍然存在的假陽性特征進行分析,發(fā)現(xiàn)假陽性主要來自于同處在集中定義代碼段的其他配置項的取值,以及其他配置項及自身配置項名稱本身,這些特征都無法從文本特征進行分析。因此,本文從抽象語法樹層面展開分析,通過分析字符串所在的抽象語法樹上下文結(jié)構(gòu)來判斷其是否為本配置項的1個可能取值。

    前文在對AST進行詞頻統(tǒng)計,分析配置項的所有取值時,可以發(fā)現(xiàn)配置項名在每個代碼文件出現(xiàn)的頻率,進而可以確定取值的集中出現(xiàn)位置及對應源代碼文件(見圖4)。本文通過查看對應源碼文件發(fā)現(xiàn),這些集中定義的代碼段,通常情況下為開發(fā)人員實現(xiàn)配置項取值空間和配置變量取值空間映射的代碼段。

    通過進一步分析發(fā)現(xiàn),在不同軟件中,實現(xiàn)配置映射的方式有所區(qū)別??偟膩碚f可以總結(jié)為2種類型:結(jié)構(gòu)體映射和字符串比較。因此,在定位到集中定義代碼段之后,針對這2種固定的類型定義規(guī)律,可以針對對應特征分別實現(xiàn)提取配置項的值。

    首先,針對結(jié)構(gòu)體映射的情況進行處理。配置變量定義于某個特定結(jié)構(gòu)體中,如代碼1所示,其第1個成員的第1個子成員表明配置項名稱“wal_level”,第2個成員(wal_level)表示其對應配置變量,第4個成員(wal_level_options)代表其映射的結(jié)構(gòu)體,其中存儲了所有可能的枚舉值,如代碼2所示。

    代碼1 配置結(jié)構(gòu)體

    {

    {"wal_level", PCG_POSTMASTER,WAL_SETTINGS,

    gettext_noop("set the level of information written to the WAL."),

    NULL

    },

    &wal_level,

    WAL_LEVEL_MINIMAL,wal_level_options,

    NULL,NULL,NULL

    }

    代碼2 映射結(jié)構(gòu)體

    /*PostgreSQL-9.3.1 guc.c*/

    const struct config_enum_entry wal_level_options[]={

    {"minimal",WAL_LEVEL_MINIMAL,false},

    {"archive",WAL_LEVEL_ARCHIVE,false},

    {"hot_standby", WAL_LEVEL_HOT_STANDBY,false},

    {NULL, 0, false}

    }

    本文通過調(diào)研發(fā)現(xiàn),在大多數(shù)軟件中,配置項和配置變量的取值范圍都是通過上述方式定義的,具有一定的普遍性?;诖?,本文可以便捷地獲取配置項wal_level的取值空間定義結(jié)構(gòu)體wal_level_options及對應的枚舉取值空間。

    另一方面,在少部分軟件中,程序判斷配置項枚舉值的方式是通過直接調(diào)用字符串比較函數(shù),通過比對文件中或者用戶在終端輸入的配置項值與預設(shè)枚舉取值的方式為配置變量賦值。如代碼3所示,配置項 hostname_lookups 的可能取值為on、off、double,對應配置變量的可能取值為 HOSTNAME_LOOKUP_ON、 HOSTNAME_LOOKUP_OFF、HOSTNAME_LOOKUP_DOUBLE。針對這種情況,同樣可以通過抽象語法樹的分析獲取對應的枚舉配置取值空間。

    代碼3 字符串直接比較

    static const char *set_hostname_lookups(cmd_parms *cmd, void *d_, const char *arg)

    {

    core_dir_config *d=d_;

    if (!strcasecmp(arg, "on")){

    d→hostname_lookups = HOSTNAME_LOOKUP_ON;

    }

    else if (!strcasecmp(arg,"off")){

    d→hostname_lookups = HOSTNAME_LOOKUP_OFF;

    }

    else if (!strcasecmp(arg,"double")){

    d→hostname_lookups = HOSTNAME_LOOKUP_double;

    }

    else {

    return "parameter must be 'on','off', or 'double'";

    }

    return NULL;}

    綜合考慮上述2種情況,本文主要通過以下方法實現(xiàn)AST中的枚舉配置取值空間信息的分析和提?。号渲庙椀淖址≈岛推鋵某绦蚺渲米兞咳≈狄话愣汲霈F(xiàn)在同一InistListExpr 節(jié)點的子樹下(如圖5所示)。類似地,對于 Apache Httpd 這類軟件,一般字符串取值出現(xiàn)在strcasecmp 或者 strcmp 函數(shù)調(diào)用中,而相應的程序變量取值一般出現(xiàn)在后面的 if 語句塊中。針對上述2種情況,本文將其對應的stmt定義為特征 stmt,并針對特征 stmt 的結(jié)構(gòu)特征進行枚舉配置取值空間的定位與提取。具體方法為:

    (1) 定義2個 AST stmt 的距離為在 AST 上從stmt1 到stmt2的路徑步數(shù)。

    (2) 計算區(qū)域中所有字符串距離最近的父特征 stmt 的距離(僅向上訪問,若無父 stmt 則距離記為 INF)。

    (3) 對于第1類特征 stmt,必須要求父特征 stmt 為同一 stmt,對于第2類,則計算是否共用一個 ifstmt。

    (4) 對上述距離進行驗證(距離差距不能超過 1),若正確,則提取對應配置取值。

    通過對以上步驟編程實現(xiàn),本文可自動獲取枚舉類型配置項的取值約束范圍。

    Figure 5 Example of AST for value space of enumeration-type configuration圖5 枚舉類型配置取值空間AST示例圖

    4 實驗與評估

    本文首先對4款軟件(PostgreSQL,Apache Httpd,Nginx,Redis)的枚舉類型配置項數(shù)量進行了人工計數(shù),得到實際的數(shù)量作為實驗評價的標準;然后使用本文的實現(xiàn)自動提取枚舉配置項取值空間,對應的提取準確率如表3所示。而在過去已有研究工作中[6],僅對switch語句一種情況下的枚舉配置約束進行了提取,且沒有給出具體的提取率,本文使用已有方法提取4款開源軟件的枚舉型配置約束,發(fā)現(xiàn)已有研究的提取率在30%~70%,而本文方法則有較大提升,能夠處理常見的代碼特征如if-else語句,提取率均達到80%以上。

    對于枚舉型配置項枚舉值的提取,本文將準確并完全地提取出某一配置變量的全部枚舉值認定為提取成功,有遺漏或者假陽性均為不成功。由此計算得到的提取率如表3所示。

    Table 3 Rate of extraction and reason for failure表3 枚舉配置取值空間提取準確率

    其中,部分實驗提取結(jié)果如表4所示(以 PostgreSQL-9.3.1 為例):

    Table 4 Results of PostgreSQL extraction表4 PostgreSQL中枚舉配置取值空間提取結(jié)果

    表4中,劃橫線的地方是使用了假陽性檢驗從而得以除去的取值。從結(jié)果來看,它們的確主要來自于其他配置項的取值空間,或者其他配置項的配置名稱,此外還有少部分來自于程序中其他語句的一些字符串提示、日志等信息。經(jīng)過對少部分失敗的原因進行分析發(fā)現(xiàn),主要是軟件開發(fā)人員沒有使用規(guī)范化的編碼模式,如開發(fā)人員在配置變量位置使用的是宏定義類型的值,而在配置項集中賦值位置處使用的是整數(shù)類型,雖然不影響程序正確性,但屬于不良的編碼習慣。類似上述原因,導致本文總結(jié)的通用模式難以進行正確分析與提取。

    5 結(jié)束語

    在實際生產(chǎn)環(huán)境中,前人研究[6]已發(fā)現(xiàn),如果用戶錯誤地設(shè)置了配置項的取值,很容易導致系統(tǒng)故障。提取枚舉類型配置項的取值空間可以讓用戶知道哪些值是合法的,從而減輕用戶配置軟件時的負擔,降低故障率。同時,基于提取結(jié)果,當出現(xiàn)故障時,開發(fā)人員可迅速診斷基于配置的故障原因,避免進行源碼分析。

    通過對多款常用開源軟件的人工分析發(fā)現(xiàn),現(xiàn)有用于提取配置約束條件的研究工作僅能提取少部分特定類型的配置約束,且對于常見的枚舉類型配置項約束提取的可用性較弱?;诖?,本文基于AST,對6款常用主流開源軟件配置處理使用相關(guān)源代碼進行分析,通過增加對分支條件和選擇條件的配置約束分析,設(shè)計和實現(xiàn)了一種針對枚舉類型的自動配置約束提取方法。實驗數(shù)據(jù)說明,該方法對所選各種軟件枚舉類型配置空間的提取準確率均超過80%。

    猜你喜歡
    枚舉開源語句
    基于理解性教學的信息技術(shù)教學案例研究
    速讀·上旬(2022年2期)2022-04-10 16:42:14
    一種高效的概率圖上Top-K極大團枚舉算法
    重點:語句銜接
    五毛錢能買多少頭牛
    精彩語句
    大家說:開源、人工智能及創(chuàng)新
    開源中國開源世界高峰論壇圓桌會議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
    基于太陽影子定位枚舉法模型的研究
    開源計算機輔助翻譯工具研究
    如何搞定語句銜接題
    語文知識(2014年4期)2014-02-28 21:59:52
    青春草亚洲视频在线观看| 精品久久久久久成人av| 国产精品99久久久久久久久| 国产av在哪里看| 哪个播放器可以免费观看大片| 又粗又硬又长又爽又黄的视频 | 可以在线观看的亚洲视频| 午夜久久久久精精品| 成人高潮视频无遮挡免费网站| 久久欧美精品欧美久久欧美| 亚洲国产欧洲综合997久久,| 高清毛片免费观看视频网站| 日本三级黄在线观看| 国产精品不卡视频一区二区| 欧美日本亚洲视频在线播放| 欧美性猛交╳xxx乱大交人| 精品一区二区三区视频在线| 美女被艹到高潮喷水动态| 亚洲经典国产精华液单| 久久精品久久久久久噜噜老黄 | 免费看av在线观看网站| 欧美+日韩+精品| 亚洲精品亚洲一区二区| 听说在线观看完整版免费高清| 久99久视频精品免费| 国产日韩欧美在线精品| 悠悠久久av| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 国产伦理片在线播放av一区 | 亚洲欧美清纯卡通| 亚洲精品乱码久久久v下载方式| 日本熟妇午夜| 久久这里只有精品中国| 一本久久中文字幕| 国产色婷婷99| 日韩一本色道免费dvd| 国产成人精品婷婷| 精品无人区乱码1区二区| 免费一级毛片在线播放高清视频| 2022亚洲国产成人精品| 我要看日韩黄色一级片| 麻豆乱淫一区二区| 天天一区二区日本电影三级| 亚洲欧美成人综合另类久久久 | 九九爱精品视频在线观看| 看免费成人av毛片| 色综合亚洲欧美另类图片| 久久韩国三级中文字幕| 午夜久久久久精精品| 九九在线视频观看精品| 天堂√8在线中文| 亚洲欧美日韩高清专用| 亚洲三级黄色毛片| 国产精品久久久久久亚洲av鲁大| 午夜亚洲福利在线播放| 亚洲国产精品久久男人天堂| 网址你懂的国产日韩在线| 黄片wwwwww| 69人妻影院| 欧美3d第一页| 免费无遮挡裸体视频| 国产不卡一卡二| 99久久无色码亚洲精品果冻| 又黄又爽又刺激的免费视频.| 人体艺术视频欧美日本| 床上黄色一级片| 国产人妻一区二区三区在| 日韩视频在线欧美| 欧美又色又爽又黄视频| 深爱激情五月婷婷| 久久精品国产亚洲av天美| 老熟妇乱子伦视频在线观看| 亚洲一级一片aⅴ在线观看| 一边摸一边抽搐一进一小说| 欧美另类亚洲清纯唯美| 国产精品一区二区在线观看99 | www.av在线官网国产| 欧美日韩精品成人综合77777| 精品免费久久久久久久清纯| 高清毛片免费看| 成年版毛片免费区| 日本-黄色视频高清免费观看| 亚洲精品日韩在线中文字幕 | 欧美人与善性xxx| 国产午夜精品久久久久久一区二区三区| 免费大片18禁| 精品人妻一区二区三区麻豆| 悠悠久久av| 九九热线精品视视频播放| 在线免费观看不下载黄p国产| 日韩在线高清观看一区二区三区| 精品久久久久久久久亚洲| 欧美zozozo另类| 亚洲国产精品久久男人天堂| 边亲边吃奶的免费视频| 乱人视频在线观看| 高清毛片免费看| 国产亚洲精品久久久久久毛片| 色吧在线观看| 一进一出抽搐动态| 久久鲁丝午夜福利片| 午夜a级毛片| 性色avwww在线观看| 黄色欧美视频在线观看| 最好的美女福利视频网| 天天躁日日操中文字幕| 最近2019中文字幕mv第一页| 少妇熟女aⅴ在线视频| 午夜a级毛片| 18禁裸乳无遮挡免费网站照片| 日韩欧美国产在线观看| 日韩精品青青久久久久久| 在线观看美女被高潮喷水网站| 午夜福利成人在线免费观看| 在线天堂最新版资源| 亚洲内射少妇av| 夜夜夜夜夜久久久久| 久久精品国产亚洲av涩爱 | 日韩视频在线欧美| 亚洲国产精品sss在线观看| 欧美激情在线99| 久久久久久久久久久丰满| 美女脱内裤让男人舔精品视频 | 国产精品美女特级片免费视频播放器| 久久精品国产亚洲av涩爱 | 午夜久久久久精精品| 午夜视频国产福利| 91久久精品国产一区二区三区| 久久久久久大精品| 91麻豆精品激情在线观看国产| 亚洲av一区综合| 最近手机中文字幕大全| 一本久久精品| 国产精品一二三区在线看| 成人亚洲精品av一区二区| 国产亚洲av片在线观看秒播厂 | 九九在线视频观看精品| 国产又黄又爽又无遮挡在线| 国产欧美日韩精品一区二区| 亚洲色图av天堂| 欧美日韩在线观看h| 听说在线观看完整版免费高清| 中文字幕精品亚洲无线码一区| 久久这里有精品视频免费| 成年版毛片免费区| 在线观看一区二区三区| 亚洲国产欧美人成| 一边摸一边抽搐一进一小说| 国产亚洲av片在线观看秒播厂 | 国产一区二区三区在线臀色熟女| 少妇人妻精品综合一区二区 | 亚洲成人精品中文字幕电影| 久久精品影院6| 午夜福利在线观看吧| 春色校园在线视频观看| 国模一区二区三区四区视频| 国产亚洲欧美98| 国产午夜精品一二区理论片| 身体一侧抽搐| 亚洲欧美成人综合另类久久久 | 综合色av麻豆| 国产亚洲精品久久久com| 黄色欧美视频在线观看| av在线亚洲专区| 国内精品美女久久久久久| 精品国产三级普通话版| 国产一区二区激情短视频| 免费观看的影片在线观看| 99热6这里只有精品| 国产久久久一区二区三区| 成人永久免费在线观看视频| 日产精品乱码卡一卡2卡三| av免费在线看不卡| 美女国产视频在线观看| av免费在线看不卡| av又黄又爽大尺度在线免费看 | 日韩精品有码人妻一区| 综合色丁香网| 秋霞在线观看毛片| 夜夜夜夜夜久久久久| 婷婷色av中文字幕| 成年免费大片在线观看| 国产成人aa在线观看| 久久久久网色| 狂野欧美白嫩少妇大欣赏| 国产v大片淫在线免费观看| 成人一区二区视频在线观看| 日本黄大片高清| 精华霜和精华液先用哪个| eeuss影院久久| 国产精品一及| 麻豆国产97在线/欧美| 久久精品综合一区二区三区| 免费大片18禁| 好男人视频免费观看在线| 亚洲婷婷狠狠爱综合网| 日韩高清综合在线| 久久午夜亚洲精品久久| 午夜久久久久精精品| 久久久久国产网址| 少妇被粗大猛烈的视频| 国产精品女同一区二区软件| 欧美xxxx性猛交bbbb| 国产欧美日韩精品一区二区| 欧美三级亚洲精品| 久久这里只有精品中国| 国产精品女同一区二区软件| 亚洲欧美清纯卡通| 夜夜夜夜夜久久久久| 又黄又爽又刺激的免费视频.| 国内精品一区二区在线观看| 久久国产乱子免费精品| 亚洲内射少妇av| 久久精品久久久久久噜噜老黄 | 日本黄大片高清| 日韩欧美在线乱码| 亚洲三级黄色毛片| 免费黄网站久久成人精品| 乱码一卡2卡4卡精品| 天堂网av新在线| av在线亚洲专区| 夜夜看夜夜爽夜夜摸| 成人特级黄色片久久久久久久| 精品不卡国产一区二区三区| 91久久精品电影网| 国产精品人妻久久久影院| 色播亚洲综合网| 免费搜索国产男女视频| 亚洲av熟女| 91久久精品国产一区二区成人| 国产黄色小视频在线观看| 噜噜噜噜噜久久久久久91| 久久久久久久午夜电影| 午夜老司机福利剧场| 日本黄色片子视频| 欧美成人精品欧美一级黄| 国产日韩欧美在线精品| 九九在线视频观看精品| 欧美bdsm另类| 一夜夜www| 嫩草影院精品99| 久久午夜福利片| 国内精品宾馆在线| 99在线视频只有这里精品首页| 久久国内精品自在自线图片| 免费观看的影片在线观看| 免费观看的影片在线观看| 亚洲最大成人手机在线| 好男人在线观看高清免费视频| 给我免费播放毛片高清在线观看| 国内精品宾馆在线| 国产精品久久久久久精品电影小说 | 国产私拍福利视频在线观看| 哪个播放器可以免费观看大片| 日韩中字成人| 久久精品国产自在天天线| 亚洲精品自拍成人| 国产高潮美女av| 永久网站在线| 三级国产精品欧美在线观看| 悠悠久久av| 亚洲激情五月婷婷啪啪| 国产精品福利在线免费观看| 91av网一区二区| 看非洲黑人一级黄片| 精品人妻视频免费看| 人人妻人人澡欧美一区二区| 18禁黄网站禁片免费观看直播| 久久99热这里只有精品18| 欧美色视频一区免费| 成人鲁丝片一二三区免费| 中出人妻视频一区二区| 日本在线视频免费播放| 又黄又爽又刺激的免费视频.| 欧美最黄视频在线播放免费| 久久久午夜欧美精品| 69人妻影院| 国产综合懂色| 国产伦一二天堂av在线观看| 国产探花极品一区二区| 波野结衣二区三区在线| 国内精品美女久久久久久| 日韩精品青青久久久久久| 亚洲精品久久久久久婷婷小说 | 中文字幕人妻熟人妻熟丝袜美| 观看免费一级毛片| 久久这里有精品视频免费| 国产伦在线观看视频一区| 少妇熟女aⅴ在线视频| 在线a可以看的网站| 成人毛片60女人毛片免费| 只有这里有精品99| 国产精品av视频在线免费观看| 亚州av有码| 亚洲无线在线观看| 日本av手机在线免费观看| 成人无遮挡网站| 欧美色视频一区免费| 色视频www国产| 亚洲av电影不卡..在线观看| 尤物成人国产欧美一区二区三区| 免费人成在线观看视频色| 伦精品一区二区三区| 一级黄色大片毛片| 国内少妇人妻偷人精品xxx网站| 只有这里有精品99| 草草在线视频免费看| 少妇的逼好多水| 嫩草影院新地址| 99riav亚洲国产免费| 99热6这里只有精品| 欧美高清性xxxxhd video| 久久久久久久亚洲中文字幕| 国产亚洲精品av在线| 国产白丝娇喘喷水9色精品| 夜夜看夜夜爽夜夜摸| av在线观看视频网站免费| 菩萨蛮人人尽说江南好唐韦庄 | 成年版毛片免费区| 一区二区三区高清视频在线| 免费观看a级毛片全部| 久久久久久久久久黄片| 超碰av人人做人人爽久久| av卡一久久| a级毛色黄片| a级一级毛片免费在线观看| 亚洲电影在线观看av| 亚洲欧洲国产日韩| 嫩草影院新地址| 日韩一区二区三区影片| 精品国内亚洲2022精品成人| h日本视频在线播放| 国产午夜精品久久久久久一区二区三区| 国产国拍精品亚洲av在线观看| 久久韩国三级中文字幕| 久久精品久久久久久久性| 国产精品电影一区二区三区| 国产精品一区二区在线观看99 | 校园人妻丝袜中文字幕| 精品无人区乱码1区二区| 99精品在免费线老司机午夜| 一级黄色大片毛片| 男人舔女人下体高潮全视频| 少妇裸体淫交视频免费看高清| 国产成人aa在线观看| 日韩视频在线欧美| 国产精品久久久久久久电影| 少妇丰满av| 一级毛片电影观看 | 深夜精品福利| 日韩高清综合在线| 直男gayav资源| 白带黄色成豆腐渣| 3wmmmm亚洲av在线观看| 99九九线精品视频在线观看视频| 成人性生交大片免费视频hd| 国产成人精品一,二区 | 99国产精品一区二区蜜桃av| 成人鲁丝片一二三区免费| 97超碰精品成人国产| 欧美+亚洲+日韩+国产| 直男gayav资源| 黄色配什么色好看| 18禁黄网站禁片免费观看直播| 国产精品女同一区二区软件| 非洲黑人性xxxx精品又粗又长| 可以在线观看毛片的网站| 人妻夜夜爽99麻豆av| 99热只有精品国产| 男插女下体视频免费在线播放| 又爽又黄a免费视频| 网址你懂的国产日韩在线| 精品国产三级普通话版| 在线观看美女被高潮喷水网站| 中文字幕精品亚洲无线码一区| 亚洲人成网站在线观看播放| 22中文网久久字幕| 欧美一区二区国产精品久久精品| 好男人在线观看高清免费视频| 午夜精品一区二区三区免费看| 高清午夜精品一区二区三区 | 久久草成人影院| 日本熟妇午夜| eeuss影院久久| 卡戴珊不雅视频在线播放| 亚洲国产精品久久男人天堂| 久久久久久久久久久免费av| 26uuu在线亚洲综合色| 两个人视频免费观看高清| 成人亚洲精品av一区二区| 99久久九九国产精品国产免费| 在线观看一区二区三区| 91在线精品国自产拍蜜月| 欧美极品一区二区三区四区| 日本熟妇午夜| 成人国产麻豆网| 一级毛片我不卡| 乱码一卡2卡4卡精品| 国产一级毛片七仙女欲春2| 哪里可以看免费的av片| 亚洲人与动物交配视频| 欧美高清成人免费视频www| 最好的美女福利视频网| 日本免费a在线| 午夜精品国产一区二区电影 | 内地一区二区视频在线| 久久鲁丝午夜福利片| 男女做爰动态图高潮gif福利片| 亚洲精品久久国产高清桃花| 中文在线观看免费www的网站| 在线a可以看的网站| 亚洲精品色激情综合| 男人和女人高潮做爰伦理| 国产伦精品一区二区三区四那| 亚洲av中文av极速乱| 综合色丁香网| 免费黄网站久久成人精品| 欧美区成人在线视频| 长腿黑丝高跟| 最近的中文字幕免费完整| 成人永久免费在线观看视频| 少妇被粗大猛烈的视频| 亚洲精品久久国产高清桃花| 亚洲在线自拍视频| 91午夜精品亚洲一区二区三区| 欧美性猛交╳xxx乱大交人| 欧美成人精品欧美一级黄| 三级经典国产精品| 免费av毛片视频| 国产片特级美女逼逼视频| kizo精华| 色噜噜av男人的天堂激情| 亚洲va在线va天堂va国产| 亚洲丝袜综合中文字幕| 久久99蜜桃精品久久| 岛国在线免费视频观看| 内地一区二区视频在线| 欧美三级亚洲精品| 天堂√8在线中文| 日本撒尿小便嘘嘘汇集6| 久久精品国产亚洲av涩爱 | 中出人妻视频一区二区| 亚洲成人av在线免费| 九色成人免费人妻av| 好男人在线观看高清免费视频| 91精品一卡2卡3卡4卡| 日本黄色视频三级网站网址| 中国国产av一级| 嘟嘟电影网在线观看| 久久热精品热| 亚洲欧美清纯卡通| 不卡视频在线观看欧美| 亚洲18禁久久av| 中文字幕免费在线视频6| 在线观看av片永久免费下载| 日日摸夜夜添夜夜爱| 可以在线观看毛片的网站| 久久精品久久久久久噜噜老黄 | 国产麻豆成人av免费视频| 免费看光身美女| 美女黄网站色视频| 久久人人爽人人片av| 亚洲国产精品合色在线| 美女国产视频在线观看| 简卡轻食公司| 黄色配什么色好看| 我要搜黄色片| 国产伦理片在线播放av一区 | 少妇猛男粗大的猛烈进出视频 | 黄色欧美视频在线观看| 久久99蜜桃精品久久| 亚洲精品久久国产高清桃花| 亚洲人成网站在线观看播放| 午夜a级毛片| 亚洲四区av| 亚洲在久久综合| 爱豆传媒免费全集在线观看| a级毛色黄片| 美女脱内裤让男人舔精品视频 | 久久久久九九精品影院| 91精品一卡2卡3卡4卡| 岛国在线免费视频观看| 国产又黄又爽又无遮挡在线| 99国产极品粉嫩在线观看| 国产黄片视频在线免费观看| 乱码一卡2卡4卡精品| 亚洲真实伦在线观看| 国产成人a∨麻豆精品| 欧美变态另类bdsm刘玥| 九九久久精品国产亚洲av麻豆| 51国产日韩欧美| 夫妻性生交免费视频一级片| 淫秽高清视频在线观看| 国产乱人偷精品视频| 国产av在哪里看| 日韩欧美精品免费久久| 看片在线看免费视频| 久久精品国产亚洲av香蕉五月| 熟女人妻精品中文字幕| 免费av不卡在线播放| 久久久久久大精品| 国内久久婷婷六月综合欲色啪| 天天躁夜夜躁狠狠久久av| 99久久无色码亚洲精品果冻| 免费一级毛片在线播放高清视频| 久久这里只有精品中国| 韩国av在线不卡| 午夜福利在线观看免费完整高清在 | 亚洲aⅴ乱码一区二区在线播放| 国产伦精品一区二区三区四那| 热99在线观看视频| 一级黄片播放器| 国产午夜福利久久久久久| 欧美激情在线99| 国产精品人妻久久久久久| 国产精品国产三级国产av玫瑰| 一级av片app| 只有这里有精品99| 麻豆精品久久久久久蜜桃| 日韩精品青青久久久久久| av女优亚洲男人天堂| 日本成人三级电影网站| 欧美zozozo另类| 欧美人与善性xxx| 97在线视频观看| 国内精品久久久久精免费| 日韩三级伦理在线观看| 亚洲人成网站高清观看| 99热只有精品国产| 亚洲av电影不卡..在线观看| 久久久午夜欧美精品| 国产精品嫩草影院av在线观看| 亚洲色图av天堂| 免费看美女性在线毛片视频| 国产精品电影一区二区三区| 亚洲国产欧美在线一区| 日本在线视频免费播放| 亚洲欧美日韩无卡精品| 精品人妻熟女av久视频| 亚洲成人av在线免费| а√天堂www在线а√下载| 久久久欧美国产精品| 在线免费观看的www视频| 人妻久久中文字幕网| av在线观看视频网站免费| av女优亚洲男人天堂| 成人特级黄色片久久久久久久| 一个人观看的视频www高清免费观看| 国产伦理片在线播放av一区 | 能在线免费看毛片的网站| 日韩,欧美,国产一区二区三区 | 精品久久国产蜜桃| av在线老鸭窝| 菩萨蛮人人尽说江南好唐韦庄 | 在线观看美女被高潮喷水网站| 亚洲av中文字字幕乱码综合| 精品午夜福利在线看| 一本精品99久久精品77| 欧美日韩精品成人综合77777| 国产亚洲欧美98| 神马国产精品三级电影在线观看| av女优亚洲男人天堂| 天堂中文最新版在线下载 | 精品久久久久久久久亚洲| 国产亚洲欧美98| av天堂在线播放| 美女 人体艺术 gogo| 久久热精品热| 简卡轻食公司| 我的老师免费观看完整版| 好男人视频免费观看在线| 99久久九九国产精品国产免费| 国产黄片视频在线免费观看| 久久久久免费精品人妻一区二区| 久久人人爽人人爽人人片va| 国产 一区 欧美 日韩| 国产精品久久久久久精品电影| 中出人妻视频一区二区| 国产精品无大码| 国产亚洲欧美98| 国产精品福利在线免费观看| 久久久久性生活片| 亚洲精品久久久久久婷婷小说 | 长腿黑丝高跟| 午夜精品一区二区三区免费看| 美女黄网站色视频| 观看免费一级毛片| 国产亚洲91精品色在线| 欧美潮喷喷水| 精品久久久久久久久av| 免费一级毛片在线播放高清视频| 国产成人精品婷婷| 99久久成人亚洲精品观看| 在线观看一区二区三区| 久久久久久久亚洲中文字幕| 激情 狠狠 欧美| 少妇高潮的动态图| 国产亚洲精品久久久com| 欧美日本亚洲视频在线播放| 亚洲人成网站在线播| 波多野结衣高清作品| 青春草视频在线免费观看| 97在线视频观看| 久久久久国产网址| 亚洲高清免费不卡视频| 夫妻性生交免费视频一级片| 在线观看午夜福利视频| 中文亚洲av片在线观看爽| 国产亚洲精品久久久com| 国产极品精品免费视频能看的| 日本欧美国产在线视频| 亚洲一区二区三区色噜噜| 国产中年淑女户外野战色| 午夜a级毛片| 国产色爽女视频免费观看|