• <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成人精品一二三区| 亚洲av中文字字幕乱码综合| 国产乱人偷精品视频| 国产爽快片一区二区三区| 午夜精品国产一区二区电影 | 久久久久久久午夜电影| 国产欧美另类精品又又久久亚洲欧美| 哪个播放器可以免费观看大片| 午夜福利在线在线| 精品人妻偷拍中文字幕| 国产成人freesex在线| 欧美变态另类bdsm刘玥| 亚洲精品一二三| 免费看光身美女| 白带黄色成豆腐渣| 色网站视频免费| 亚洲最大成人av| 色哟哟·www| 我要看日韩黄色一级片| 久久6这里有精品| 亚洲国产最新在线播放| 2021少妇久久久久久久久久久| 国产精品嫩草影院av在线观看| 久久久色成人| 国精品久久久久久国模美| 亚洲婷婷狠狠爱综合网| 国精品久久久久久国模美| 亚洲va在线va天堂va国产| 国产 精品1| 国产淫片久久久久久久久| 国产中年淑女户外野战色| 在线免费观看不下载黄p国产| 麻豆成人午夜福利视频| 国产精品熟女久久久久浪| 国产黄色视频一区二区在线观看| 亚洲国产精品成人久久小说| 最近2019中文字幕mv第一页| 免费黄网站久久成人精品| 夜夜爽夜夜爽视频| 国产伦理片在线播放av一区| 国产一区二区三区综合在线观看 | 18禁裸乳无遮挡动漫免费视频 | 亚洲va在线va天堂va国产| 国产老妇伦熟女老妇高清| 日韩亚洲欧美综合| 精品人妻熟女av久视频| 在线免费观看不下载黄p国产| 又爽又黄无遮挡网站| 亚洲精品中文字幕在线视频 | 一级毛片黄色毛片免费观看视频| 永久免费av网站大全| 男女边摸边吃奶| 少妇人妻一区二区三区视频| 男女下面进入的视频免费午夜| 亚洲av.av天堂| 国产成人免费观看mmmm| 国产精品三级大全| 我要看日韩黄色一级片| 啦啦啦中文免费视频观看日本| 一区二区三区乱码不卡18| 最近手机中文字幕大全| av女优亚洲男人天堂| 国产美女午夜福利| 国产69精品久久久久777片| 欧美极品一区二区三区四区| 99久久人妻综合| 国产色爽女视频免费观看| 国产亚洲av片在线观看秒播厂| 亚洲天堂国产精品一区在线| 国产一区有黄有色的免费视频| 99久久精品一区二区三区| 色5月婷婷丁香| 九草在线视频观看| 亚洲色图av天堂| 成年女人看的毛片在线观看| 国产精品一区二区性色av| 久久久亚洲精品成人影院| 久久99精品国语久久久| 3wmmmm亚洲av在线观看| av又黄又爽大尺度在线免费看| 欧美精品国产亚洲| 国产一区二区亚洲精品在线观看| 欧美日韩视频高清一区二区三区二| 亚洲欧美日韩卡通动漫| 禁无遮挡网站| 一区二区三区乱码不卡18| 最后的刺客免费高清国语| 麻豆成人午夜福利视频| 女人被狂操c到高潮| av在线app专区| 秋霞伦理黄片| 国产毛片在线视频| 老司机影院毛片| 日韩一本色道免费dvd| 亚洲熟女精品中文字幕| 国产成人91sexporn| 一级片'在线观看视频| 偷拍熟女少妇极品色| 王馨瑶露胸无遮挡在线观看| 干丝袜人妻中文字幕| 老女人水多毛片| 91精品一卡2卡3卡4卡| 亚洲国产日韩一区二区| 国内精品美女久久久久久| 亚洲欧美精品专区久久| 男女下面进入的视频免费午夜| 久久人人爽人人爽人人片va| av国产精品久久久久影院| 男人和女人高潮做爰伦理| 在线免费观看不下载黄p国产| 亚洲不卡免费看| 成年女人在线观看亚洲视频 | 国产av不卡久久| 免费观看性生交大片5| 色婷婷久久久亚洲欧美| 欧美成人午夜免费资源| 国产av不卡久久| 女人十人毛片免费观看3o分钟| 在线 av 中文字幕| 中文字幕制服av| 久久亚洲国产成人精品v| 制服丝袜香蕉在线| 少妇人妻 视频| 99九九线精品视频在线观看视频| 高清欧美精品videossex| 男人狂女人下面高潮的视频| 极品少妇高潮喷水抽搐| 日韩在线高清观看一区二区三区| 女人久久www免费人成看片| 成人毛片a级毛片在线播放| eeuss影院久久| 久久久久久久午夜电影| 久久韩国三级中文字幕| 少妇人妻精品综合一区二区| 如何舔出高潮| 可以在线观看毛片的网站| 黄色一级大片看看| 麻豆久久精品国产亚洲av| 中文欧美无线码| 日韩强制内射视频| 六月丁香七月| 欧美 日韩 精品 国产| 男女无遮挡免费网站观看| 成年版毛片免费区| 男人舔奶头视频| 丰满人妻一区二区三区视频av| 超碰av人人做人人爽久久| 国产在视频线精品| 国产v大片淫在线免费观看| 国产日韩欧美在线精品| 不卡视频在线观看欧美| 亚洲av日韩在线播放| 亚洲怡红院男人天堂| 亚洲av一区综合| 国产美女午夜福利| 天堂网av新在线| 黄色配什么色好看| 国产乱人视频| 777米奇影视久久| 精品久久久精品久久久| 在线亚洲精品国产二区图片欧美 | 国产精品不卡视频一区二区| 永久网站在线| 少妇被粗大猛烈的视频| 亚洲国产欧美人成| 日日摸夜夜添夜夜爱| 五月天丁香电影| 亚洲不卡免费看| 在线精品无人区一区二区三 | 亚洲av国产av综合av卡| 一本色道久久久久久精品综合| a级毛片免费高清观看在线播放| 六月丁香七月| 嘟嘟电影网在线观看| 在线播放无遮挡| av在线蜜桃| 亚洲国产精品专区欧美| 国产综合精华液| 黄色视频在线播放观看不卡| av线在线观看网站| 日韩国内少妇激情av| 午夜福利高清视频| 国产成人免费观看mmmm| 免费观看无遮挡的男女| 最近2019中文字幕mv第一页| 精品久久久噜噜| 国产高清不卡午夜福利| 自拍偷自拍亚洲精品老妇| 国产成人福利小说| 免费观看的影片在线观看| 国产爽快片一区二区三区| 插逼视频在线观看| 免费看a级黄色片| 99久久中文字幕三级久久日本| 国模一区二区三区四区视频| 欧美zozozo另类| 色视频www国产| 久久久精品免费免费高清| 夜夜看夜夜爽夜夜摸| 26uuu在线亚洲综合色| 噜噜噜噜噜久久久久久91| 男人和女人高潮做爰伦理| av在线app专区| 国产白丝娇喘喷水9色精品| 成人黄色视频免费在线看| 91久久精品国产一区二区三区| 好男人在线观看高清免费视频| 久久精品国产a三级三级三级| 内射极品少妇av片p| 欧美亚洲 丝袜 人妻 在线| 亚洲欧洲日产国产| 大香蕉97超碰在线| av在线app专区| 久久久久国产网址| 午夜福利在线在线| 久久人人爽人人爽人人片va| 插阴视频在线观看视频| 高清毛片免费看| 黄色配什么色好看| 国产 一区精品| 久久影院123| 一级黄片播放器| 亚洲人成网站在线观看播放| av在线蜜桃| 各种免费的搞黄视频| 国产精品久久久久久av不卡| 国产爽快片一区二区三区| 欧美97在线视频| 欧美+日韩+精品| 久久热精品热| 亚洲精品国产色婷婷电影| 久久久久精品性色| 欧美变态另类bdsm刘玥| 神马国产精品三级电影在线观看| 日韩三级伦理在线观看| 性插视频无遮挡在线免费观看| 免费看日本二区| 天天一区二区日本电影三级| av播播在线观看一区| 我要看日韩黄色一级片| 少妇熟女欧美另类| 国产淫语在线视频| 成人免费观看视频高清| 黄片wwwwww| 观看美女的网站| 亚洲欧美日韩另类电影网站 | 有码 亚洲区| 欧美日韩国产mv在线观看视频 | 亚洲图色成人| www.av在线官网国产| 久久99精品国语久久久| 国产一区二区亚洲精品在线观看| 午夜福利视频1000在线观看| 国产乱人偷精品视频| 美女脱内裤让男人舔精品视频| 欧美日韩精品成人综合77777| 综合色丁香网| 三级国产精品片| 日韩欧美一区视频在线观看 | 毛片一级片免费看久久久久| 精品99又大又爽又粗少妇毛片| 亚洲国产日韩一区二区| av免费观看日本| 国产av国产精品国产| 亚洲精品国产av蜜桃| 人人妻人人爽人人添夜夜欢视频 | 男男h啪啪无遮挡| 国产亚洲一区二区精品| 欧美高清成人免费视频www| 亚洲精品aⅴ在线观看| 大片电影免费在线观看免费| 久久久久精品性色| 亚洲丝袜综合中文字幕| 日韩欧美 国产精品| 99热网站在线观看| 久久久久九九精品影院| 老师上课跳d突然被开到最大视频| 色网站视频免费| 亚洲综合色惰| av国产精品久久久久影院| a级毛色黄片| 国产成人一区二区在线| 国产黄频视频在线观看| 深爱激情五月婷婷| 久久人人爽人人片av| 国产成人午夜福利电影在线观看| 男女啪啪激烈高潮av片| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 久久精品夜色国产| 久久久欧美国产精品| 在线观看av片永久免费下载| 亚洲成人精品中文字幕电影| 少妇裸体淫交视频免费看高清| 蜜桃亚洲精品一区二区三区| 国产成人freesex在线| 精品国产乱码久久久久久小说| 久久6这里有精品| 中文字幕免费在线视频6| 久久久久久久久久人人人人人人| 久久99热这里只有精品18| 一区二区三区免费毛片| videos熟女内射| 黄色日韩在线| 国产伦精品一区二区三区视频9| 欧美xxxx黑人xx丫x性爽| tube8黄色片| 国内精品美女久久久久久| 一级片'在线观看视频| 国产精品久久久久久精品电影小说 | 日韩精品有码人妻一区| 欧美成人a在线观看| 亚洲人成网站高清观看| 久久热精品热| 黄色怎么调成土黄色| 伊人久久国产一区二区| av.在线天堂| 亚洲国产欧美人成| 日本黄色片子视频| 99re6热这里在线精品视频| 美女主播在线视频| 男男h啪啪无遮挡| 国产色爽女视频免费观看| 亚洲精品aⅴ在线观看| 丰满乱子伦码专区| 成人二区视频| 日韩,欧美,国产一区二区三区| 免费av毛片视频| 久久久久网色| 成人亚洲精品一区在线观看 | 亚洲成人av在线免费| 97超视频在线观看视频| 水蜜桃什么品种好| 国产伦精品一区二区三区四那| 免费看a级黄色片| 午夜福利视频精品| 精品久久久噜噜| 只有这里有精品99| 国精品久久久久久国模美| 最近最新中文字幕大全电影3| 国产永久视频网站| 国产亚洲最大av| 免费看日本二区| h日本视频在线播放| 亚洲精品乱久久久久久| 精品人妻熟女av久视频| 久久精品熟女亚洲av麻豆精品| 亚洲真实伦在线观看| 国精品久久久久久国模美| 真实男女啪啪啪动态图| 中文天堂在线官网| 夫妻午夜视频| 18禁动态无遮挡网站| 插逼视频在线观看| 亚洲精品国产成人久久av| 亚洲精品国产av蜜桃| 人体艺术视频欧美日本| 有码 亚洲区| 成人鲁丝片一二三区免费| 美女脱内裤让男人舔精品视频| 一边亲一边摸免费视频| 久久精品久久久久久久性| h日本视频在线播放| 久久久久久伊人网av| 午夜爱爱视频在线播放| 亚洲不卡免费看| 精品少妇黑人巨大在线播放| 亚洲欧美成人综合另类久久久| 色哟哟·www| 国产精品国产三级国产专区5o| 网址你懂的国产日韩在线| 国产国拍精品亚洲av在线观看| 久久99热6这里只有精品| 国产黄片美女视频| 精品一区在线观看国产| 美女视频免费永久观看网站| 大陆偷拍与自拍| 亚洲精品色激情综合| 国产乱来视频区| 少妇高潮的动态图| 自拍欧美九色日韩亚洲蝌蚪91 | 看非洲黑人一级黄片| 好男人在线观看高清免费视频| 免费看不卡的av| 日日撸夜夜添| 国产淫片久久久久久久久| 久久久久久久久久成人| 亚洲国产精品专区欧美| 最近的中文字幕免费完整| 精品少妇黑人巨大在线播放| 免费电影在线观看免费观看| 亚洲欧美一区二区三区国产| 大香蕉久久网| 一边亲一边摸免费视频| 国产精品蜜桃在线观看| 免费观看在线日韩| 亚洲精品国产色婷婷电影| 国产欧美日韩一区二区三区在线 | 中文字幕av成人在线电影| 丝袜美腿在线中文| 欧美潮喷喷水| 在现免费观看毛片| 人人妻人人爽人人添夜夜欢视频 | av免费在线看不卡| 久久精品久久精品一区二区三区| 国产亚洲最大av| 一本一本综合久久| 80岁老熟妇乱子伦牲交| 三级经典国产精品| 日本色播在线视频| 午夜免费鲁丝| 超碰97精品在线观看| 伦精品一区二区三区| 亚洲精品乱码久久久久久按摩| 搡女人真爽免费视频火全软件| 免费大片18禁| 丝瓜视频免费看黄片| 91精品一卡2卡3卡4卡| 99久久精品一区二区三区| 亚洲欧美精品专区久久| 卡戴珊不雅视频在线播放| 亚洲精品中文字幕在线视频 | 五月玫瑰六月丁香| 熟女人妻精品中文字幕| 日韩国内少妇激情av| 少妇人妻久久综合中文| 久久午夜福利片| 日本三级黄在线观看| 夜夜看夜夜爽夜夜摸| 嫩草影院精品99| 国产乱人偷精品视频| 久久精品人妻少妇| av国产精品久久久久影院| 亚洲精品456在线播放app| 伦理电影大哥的女人| 成人毛片60女人毛片免费| 亚洲精品成人久久久久久| 一级二级三级毛片免费看| 亚洲va在线va天堂va国产| 在线免费十八禁| 一级毛片aaaaaa免费看小| 1000部很黄的大片| 欧美一区二区亚洲| 久久精品国产鲁丝片午夜精品| 欧美xxⅹ黑人| 欧美一区二区亚洲| 免费人成在线观看视频色| 亚洲成人精品中文字幕电影| 久久国内精品自在自线图片| 日韩国内少妇激情av| 国产一区二区亚洲精品在线观看| 欧美高清性xxxxhd video| 91午夜精品亚洲一区二区三区| 丰满少妇做爰视频| 欧美变态另类bdsm刘玥| 久久久久久久久大av| 91精品国产九色| 午夜福利高清视频| 王馨瑶露胸无遮挡在线观看| 久久久欧美国产精品| 大码成人一级视频| 欧美成人精品欧美一级黄| 国产极品天堂在线| 亚洲四区av| 白带黄色成豆腐渣| 黄色怎么调成土黄色| 夜夜爽夜夜爽视频| 欧美日韩视频精品一区| 高清欧美精品videossex| 欧美激情国产日韩精品一区| 各种免费的搞黄视频| 国产精品嫩草影院av在线观看| 九草在线视频观看| 国产成人免费观看mmmm| 久久久久性生活片| 国产高清不卡午夜福利| 嫩草影院入口| 国产欧美日韩精品一区二区| 成人国产麻豆网| 在线免费观看不下载黄p国产| 亚洲经典国产精华液单| 欧美少妇被猛烈插入视频| 99久久人妻综合| freevideosex欧美| 精品久久久久久久末码| 久久久久久久久久成人| 日韩强制内射视频| 亚洲人成网站高清观看| 亚洲欧洲国产日韩| 久久精品国产亚洲网站| 国产成人精品久久久久久| 久久韩国三级中文字幕| 人妻一区二区av| 久久久久久久午夜电影| av黄色大香蕉| av免费观看日本| 国产视频内射| 国产免费福利视频在线观看| 一区二区三区免费毛片| 亚洲性久久影院| 国产av不卡久久| tube8黄色片| 男女下面进入的视频免费午夜| 波多野结衣巨乳人妻| 国产真实伦视频高清在线观看| 亚洲精品影视一区二区三区av| 真实男女啪啪啪动态图| 国产精品福利在线免费观看| 欧美日韩国产mv在线观看视频 | 性色av一级| 在线天堂最新版资源| 国产综合精华液| 看黄色毛片网站| 精品久久国产蜜桃| 99久久人妻综合| 中文字幕av成人在线电影| 毛片一级片免费看久久久久| 成年女人在线观看亚洲视频 | 国产人妻一区二区三区在| 白带黄色成豆腐渣| 色视频在线一区二区三区| 亚洲精品乱码久久久v下载方式| 亚洲天堂av无毛| 国产乱来视频区| 22中文网久久字幕| 99久国产av精品国产电影| 伦理电影大哥的女人| 啦啦啦中文免费视频观看日本| 欧美变态另类bdsm刘玥| 一边亲一边摸免费视频| 97在线人人人人妻| 国产伦精品一区二区三区视频9| 美女高潮的动态| 一区二区三区精品91| 99热6这里只有精品| 久久久久久九九精品二区国产| 一本久久精品| 在线a可以看的网站| av国产精品久久久久影院| 在线精品无人区一区二区三 | 国产精品爽爽va在线观看网站| 国产探花在线观看一区二区| 亚洲伊人久久精品综合| 国产欧美日韩一区二区三区在线 | 国产精品国产三级国产av玫瑰| 欧美高清性xxxxhd video| 欧美日韩精品成人综合77777| 免费看av在线观看网站| 亚洲成人精品中文字幕电影| 三级国产精品片| 国产亚洲5aaaaa淫片| 国产视频内射| 国产黄频视频在线观看| 午夜激情福利司机影院| 亚洲一区二区三区欧美精品 | 欧美精品一区二区大全| 久久国内精品自在自线图片| 国产熟女欧美一区二区| 欧美日韩国产mv在线观看视频 | 欧美三级亚洲精品| 美女cb高潮喷水在线观看| 美女脱内裤让男人舔精品视频| 国模一区二区三区四区视频| 大香蕉久久网| 国产综合精华液| 看黄色毛片网站| 久久久久久国产a免费观看| 国产高清三级在线| 成人国产av品久久久| 久久久精品94久久精品| 国产日韩欧美在线精品| 亚洲美女视频黄频| 国产v大片淫在线免费观看| 国产精品偷伦视频观看了| 亚洲成人久久爱视频| 国产成人精品久久久久久| 亚洲四区av| 成人毛片60女人毛片免费| 简卡轻食公司| 日韩av不卡免费在线播放| 日韩亚洲欧美综合| 欧美xxⅹ黑人| 久久久色成人| 国产老妇女一区| 国产成人免费无遮挡视频| 亚洲在久久综合| 欧美性感艳星| 高清视频免费观看一区二区| 搡老乐熟女国产| 成人一区二区视频在线观看| 免费电影在线观看免费观看| 欧美一级a爱片免费观看看| 国国产精品蜜臀av免费| 亚洲精华国产精华液的使用体验| 精品一区在线观看国产| 亚洲国产精品999| 久久精品久久精品一区二区三区| 成人免费观看视频高清| 能在线免费看毛片的网站| 99re6热这里在线精品视频| 一二三四中文在线观看免费高清| 亚洲,欧美,日韩| 免费观看性生交大片5| 女人久久www免费人成看片| 精品久久久久久久末码| 免费观看av网站的网址| 亚洲欧美中文字幕日韩二区| 亚洲激情五月婷婷啪啪| 女的被弄到高潮叫床怎么办| 精品国产乱码久久久久久小说| 人妻 亚洲 视频| 一边亲一边摸免费视频| 最近中文字幕2019免费版| 香蕉精品网在线| 亚洲国产欧美在线一区|