• <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
    免费在线观看视频国产中文字幕亚洲| 另类亚洲欧美激情| 99热只有精品国产| 国产成人精品久久二区二区91| 如日韩欧美国产精品一区二区三区| 国产精品久久电影中文字幕| 国产成+人综合+亚洲专区| 成人国产一区最新在线观看| 国产午夜精品久久久久久| 午夜免费激情av| 欧洲精品卡2卡3卡4卡5卡区| 午夜激情av网站| 在线视频色国产色| 久久中文字幕一级| 操美女的视频在线观看| 国产成+人综合+亚洲专区| 久久欧美精品欧美久久欧美| 女性生殖器流出的白浆| 国产熟女午夜一区二区三区| 人人妻人人添人人爽欧美一区卜| 变态另类成人亚洲欧美熟女 | 人人妻,人人澡人人爽秒播| 久久精品影院6| 中国美女看黄片| 校园春色视频在线观看| 曰老女人黄片| 国产免费av片在线观看野外av| 日日干狠狠操夜夜爽| 亚洲人成伊人成综合网2020| 91九色精品人成在线观看| 好男人电影高清在线观看| 国产精品免费一区二区三区在线| 国产色视频综合| 久久久久久亚洲精品国产蜜桃av| 国产aⅴ精品一区二区三区波| 777久久人妻少妇嫩草av网站| 亚洲第一av免费看| 国产精品久久视频播放| 欧美中文综合在线视频| 手机成人av网站| 欧美在线黄色| 18美女黄网站色大片免费观看| 91麻豆av在线| 一二三四在线观看免费中文在| 亚洲片人在线观看| 1024视频免费在线观看| xxx96com| 老熟妇仑乱视频hdxx| 亚洲精品美女久久久久99蜜臀| 嫁个100分男人电影在线观看| 国产高清国产精品国产三级| 夜夜看夜夜爽夜夜摸 | 国产精品亚洲av一区麻豆| netflix在线观看网站| 国产精品影院久久| 香蕉丝袜av| 99久久国产精品久久久| 超碰成人久久| 黄色女人牲交| 国产欧美日韩一区二区精品| 国产亚洲精品综合一区在线观看 | 精品午夜福利视频在线观看一区| 97人妻天天添夜夜摸| 一a级毛片在线观看| 满18在线观看网站| 成人影院久久| 18禁观看日本| 国产一区二区三区在线臀色熟女 | 80岁老熟妇乱子伦牲交| 欧美精品一区二区免费开放| 男男h啪啪无遮挡| 亚洲 国产 在线| 国产精品日韩av在线免费观看 | 亚洲中文日韩欧美视频| 99久久人妻综合| 一个人免费在线观看的高清视频| 婷婷丁香在线五月| 欧美不卡视频在线免费观看 | 亚洲国产中文字幕在线视频| 精品国产超薄肉色丝袜足j| 亚洲av美国av| 女警被强在线播放| 日韩国内少妇激情av| 亚洲国产精品sss在线观看 | 美女国产高潮福利片在线看| 国产成年人精品一区二区 | 亚洲国产精品999在线| 国产伦人伦偷精品视频| 高清在线国产一区| 亚洲成人久久性| 亚洲中文av在线| aaaaa片日本免费| 搡老熟女国产l中国老女人| 久久人人精品亚洲av| 久久香蕉国产精品| 国产免费现黄频在线看| 亚洲人成电影观看| 一级毛片高清免费大全| 精品国产一区二区三区四区第35| 在线观看免费日韩欧美大片| 91在线观看av| 国产蜜桃级精品一区二区三区| 色精品久久人妻99蜜桃| 啦啦啦在线免费观看视频4| 韩国精品一区二区三区| 欧美激情高清一区二区三区| av网站在线播放免费| 久热爱精品视频在线9| 欧美激情 高清一区二区三区| 大香蕉久久成人网| 脱女人内裤的视频| 无遮挡黄片免费观看| 久久精品国产亚洲av高清一级| 国产成人啪精品午夜网站| 亚洲精品成人av观看孕妇| 天堂动漫精品| 国产成人欧美在线观看| 在线观看免费视频日本深夜| 国产免费现黄频在线看| 欧美成人免费av一区二区三区| 美女国产高潮福利片在线看| 在线天堂中文资源库| 久久久精品国产亚洲av高清涩受| 欧美性长视频在线观看| 91麻豆精品激情在线观看国产 | 国产野战对白在线观看| 在线观看午夜福利视频| 男男h啪啪无遮挡| 久久国产乱子伦精品免费另类| 免费人成视频x8x8入口观看| 免费观看精品视频网站| 神马国产精品三级电影在线观看 | 亚洲精品国产区一区二| 久久人妻福利社区极品人妻图片| 高清在线国产一区| 国产男靠女视频免费网站| 欧美成人性av电影在线观看| 制服人妻中文乱码| 精品人妻1区二区| 亚洲aⅴ乱码一区二区在线播放 | 亚洲一码二码三码区别大吗| 日日夜夜操网爽| 91成人精品电影| 亚洲一码二码三码区别大吗| 可以在线观看毛片的网站| 男女午夜视频在线观看| 老鸭窝网址在线观看| 欧美久久黑人一区二区| 自线自在国产av| а√天堂www在线а√下载| 黄色丝袜av网址大全| 老司机靠b影院| 久久中文字幕人妻熟女| 亚洲在线自拍视频| 亚洲成人免费av在线播放| av网站免费在线观看视频| 50天的宝宝边吃奶边哭怎么回事| 国产深夜福利视频在线观看| 电影成人av| 人妻丰满熟妇av一区二区三区| 久久人人97超碰香蕉20202| 免费观看人在逋| svipshipincom国产片| 亚洲精品中文字幕在线视频| 男女下面插进去视频免费观看| 两个人看的免费小视频| 久久国产乱子伦精品免费另类| 久久精品成人免费网站| 日日夜夜操网爽| 搡老岳熟女国产| 18禁裸乳无遮挡免费网站照片 | e午夜精品久久久久久久| 97人妻天天添夜夜摸| 久久精品影院6| 久久久国产成人精品二区 | 精品熟女少妇八av免费久了| 欧美日韩av久久| 啦啦啦 在线观看视频| 成人国语在线视频| 久久久久久人人人人人| 少妇裸体淫交视频免费看高清 | av在线播放免费不卡| 午夜精品在线福利| 国产精品国产高清国产av| 欧美黄色片欧美黄色片| 一级片'在线观看视频| 亚洲精品中文字幕在线视频| 男女下面插进去视频免费观看| 精品国产乱子伦一区二区三区| 亚洲成人免费av在线播放| 18禁裸乳无遮挡免费网站照片 | 两人在一起打扑克的视频| 久久国产精品影院| 欧美日韩乱码在线| 99精品在免费线老司机午夜| 另类亚洲欧美激情| 精品久久蜜臀av无| 女人被躁到高潮嗷嗷叫费观| 男女下面插进去视频免费观看| 人人妻人人添人人爽欧美一区卜| 80岁老熟妇乱子伦牲交| 精品国产一区二区久久| 妹子高潮喷水视频| 久久久久久久久久久久大奶| 国产成+人综合+亚洲专区| a级片在线免费高清观看视频| 国产精品秋霞免费鲁丝片| 老司机在亚洲福利影院| 一个人免费在线观看的高清视频| 黑人猛操日本美女一级片| 97碰自拍视频| 真人一进一出gif抽搐免费| 国产免费男女视频| 长腿黑丝高跟| 久久影院123| 国产av在哪里看| 日韩大码丰满熟妇| 中文字幕高清在线视频| 一区二区日韩欧美中文字幕| 首页视频小说图片口味搜索| 中文亚洲av片在线观看爽| 精品久久久久久久毛片微露脸| 黄色丝袜av网址大全| 女人高潮潮喷娇喘18禁视频| 中文字幕人妻熟女乱码| 亚洲av五月六月丁香网| 日本免费a在线| 亚洲欧洲精品一区二区精品久久久| 亚洲av成人不卡在线观看播放网| 真人一进一出gif抽搐免费| 欧美精品啪啪一区二区三区| 在线天堂中文资源库| 午夜成年电影在线免费观看| 亚洲 国产 在线| 美女扒开内裤让男人捅视频| 好男人电影高清在线观看| 国产成人精品久久二区二区91| 成熟少妇高潮喷水视频| 精品少妇一区二区三区视频日本电影| 亚洲国产精品一区二区三区在线| 韩国av一区二区三区四区| 国产91精品成人一区二区三区| 女人被狂操c到高潮| 超碰97精品在线观看| 欧美日韩乱码在线| netflix在线观看网站| 午夜福利,免费看| 中文字幕色久视频| 国产深夜福利视频在线观看| 99精品久久久久人妻精品| 欧美不卡视频在线免费观看 | 97人妻天天添夜夜摸| 亚洲狠狠婷婷综合久久图片| 窝窝影院91人妻| 在线观看一区二区三区| 亚洲一区高清亚洲精品| 人人妻,人人澡人人爽秒播| 国产精品偷伦视频观看了| www日本在线高清视频| 国产精品日韩av在线免费观看 | 精品国产超薄肉色丝袜足j| 99国产精品一区二区蜜桃av| 亚洲专区字幕在线| 琪琪午夜伦伦电影理论片6080| 国产人伦9x9x在线观看| 久热这里只有精品99| 最新在线观看一区二区三区| 乱人伦中国视频| 在线观看免费日韩欧美大片| 亚洲一区中文字幕在线| 亚洲欧美一区二区三区黑人| 欧美日韩国产mv在线观看视频| 欧美黄色片欧美黄色片| 国产av一区在线观看免费| 亚洲国产精品999在线| 国产极品粉嫩免费观看在线| 黄色 视频免费看| 久久天躁狠狠躁夜夜2o2o| 国产免费男女视频| 精品国产乱码久久久久久男人| xxxhd国产人妻xxx| 国产精品一区二区三区四区久久 | 丝袜人妻中文字幕| 欧美国产精品va在线观看不卡| 国产午夜精品久久久久久| 最近最新中文字幕大全电影3 | 久热爱精品视频在线9| 日本免费a在线| 一区二区三区国产精品乱码| 91精品三级在线观看| www.熟女人妻精品国产| 男女做爰动态图高潮gif福利片 | 高潮久久久久久久久久久不卡| 久热这里只有精品99| www国产在线视频色| 久久欧美精品欧美久久欧美| 99热国产这里只有精品6| 丰满饥渴人妻一区二区三| 久久亚洲真实| 老司机在亚洲福利影院| 夜夜爽天天搞| 色婷婷久久久亚洲欧美| 18禁美女被吸乳视频| 99久久99久久久精品蜜桃| 日本黄色日本黄色录像| 一级毛片女人18水好多| 国产精品二区激情视频| 久久久久久久久免费视频了| av视频免费观看在线观看| 精品久久蜜臀av无| 在线视频色国产色| 中文字幕色久视频| 日本欧美视频一区| 自拍欧美九色日韩亚洲蝌蚪91| 新久久久久国产一级毛片| 在线观看免费午夜福利视频| 黄色 视频免费看| 国产精华一区二区三区| 激情视频va一区二区三区| 高清黄色对白视频在线免费看| 亚洲一区二区三区不卡视频| 中文字幕人妻丝袜制服| 成人永久免费在线观看视频| 国产伦人伦偷精品视频| 香蕉久久夜色| 欧美激情高清一区二区三区| 91九色精品人成在线观看| 国产成人精品在线电影| 精品卡一卡二卡四卡免费| 国产一区二区激情短视频| 亚洲欧美日韩高清在线视频| 天堂动漫精品| 亚洲 欧美一区二区三区| 天堂动漫精品| 亚洲色图综合在线观看| 黄色视频不卡| 日日爽夜夜爽网站| 国产亚洲欧美在线一区二区| 国产成人精品久久二区二区免费| 久久久久久大精品| 久久国产亚洲av麻豆专区| 日韩三级视频一区二区三区| 99国产精品99久久久久| 嫩草影院精品99| 丝袜美足系列| 国产精品自产拍在线观看55亚洲| 成人永久免费在线观看视频| 性色av乱码一区二区三区2| 成人永久免费在线观看视频| 亚洲精品中文字幕一二三四区| 精品久久久精品久久久| 俄罗斯特黄特色一大片| 美国免费a级毛片| 久久中文字幕一级| 色婷婷久久久亚洲欧美| 免费人成视频x8x8入口观看| 少妇 在线观看| 亚洲国产欧美一区二区综合| 亚洲色图av天堂| 啪啪无遮挡十八禁网站| 女同久久另类99精品国产91| 久久久久九九精品影院| 亚洲三区欧美一区| 真人一进一出gif抽搐免费| 亚洲一区二区三区色噜噜 | 久热爱精品视频在线9| 亚洲精华国产精华精| 亚洲av五月六月丁香网| 在线观看午夜福利视频| 热re99久久精品国产66热6| 久久九九热精品免费| 日韩中文字幕欧美一区二区| 国产欧美日韩一区二区精品| 好男人电影高清在线观看| 热99re8久久精品国产| www.自偷自拍.com| 亚洲一区高清亚洲精品| 国产精品香港三级国产av潘金莲| 国产片内射在线| 国产91精品成人一区二区三区| 久久人妻av系列| 欧美黑人欧美精品刺激| 国产激情欧美一区二区| 一个人免费在线观看的高清视频| 国产免费男女视频| 母亲3免费完整高清在线观看| 欧美不卡视频在线免费观看 | 国产精品综合久久久久久久免费 | 午夜久久久在线观看| avwww免费| 亚洲精品中文字幕一二三四区| 超碰成人久久| 最近最新免费中文字幕在线| 亚洲成人免费电影在线观看| 99香蕉大伊视频| 好男人电影高清在线观看| 亚洲人成伊人成综合网2020| 美女大奶头视频| 亚洲第一欧美日韩一区二区三区| 婷婷六月久久综合丁香| 人人澡人人妻人| 国产精品一区二区三区四区久久 | 视频区图区小说| 人人妻,人人澡人人爽秒播| 国产区一区二久久| 国产一区在线观看成人免费| 国产高清videossex| 99热只有精品国产| 91精品国产国语对白视频| videosex国产| 无限看片的www在线观看| 久久99一区二区三区| 97人妻天天添夜夜摸| 18禁裸乳无遮挡免费网站照片 | 搡老乐熟女国产| 日本精品一区二区三区蜜桃| 中文字幕高清在线视频| 亚洲av第一区精品v没综合| 欧美日韩av久久| 这个男人来自地球电影免费观看| 亚洲成人久久性| 国产精品秋霞免费鲁丝片| 亚洲自拍偷在线| 欧美日韩亚洲国产一区二区在线观看| 宅男免费午夜| 国产成人免费无遮挡视频| 99精国产麻豆久久婷婷| 成年版毛片免费区| 香蕉国产在线看| 久久人人97超碰香蕉20202| 国产区一区二久久| 精品人妻在线不人妻| 黑人欧美特级aaaaaa片| 天堂√8在线中文| 亚洲av片天天在线观看| 最近最新中文字幕大全免费视频| 女同久久另类99精品国产91| 日韩有码中文字幕| 欧美日本亚洲视频在线播放| 午夜成年电影在线免费观看| 一二三四社区在线视频社区8| 美女福利国产在线| 在线看a的网站| 国产视频一区二区在线看| 久久久国产成人免费| 亚洲精品在线观看二区| 国产黄a三级三级三级人| 99精品在免费线老司机午夜| 日韩欧美免费精品| 777久久人妻少妇嫩草av网站| 国产精华一区二区三区| 精品电影一区二区在线| 性欧美人与动物交配| 亚洲精品久久成人aⅴ小说| xxx96com| 黑丝袜美女国产一区| 色婷婷久久久亚洲欧美| 大香蕉久久成人网| 伊人久久大香线蕉亚洲五| 久久草成人影院| 国产欧美日韩一区二区三| 精品国内亚洲2022精品成人| 国产伦人伦偷精品视频| 午夜两性在线视频| 18禁黄网站禁片午夜丰满| 亚洲成人精品中文字幕电影 | 成人国产一区最新在线观看| 成熟少妇高潮喷水视频| 国产精品一区二区三区四区久久 | 亚洲成a人片在线一区二区| 国产又爽黄色视频| 黄片播放在线免费| 久久中文字幕人妻熟女| 麻豆成人av在线观看| 精品熟女少妇八av免费久了| 日本欧美视频一区| 淫妇啪啪啪对白视频| 黑丝袜美女国产一区| 欧美日韩精品网址| 在线观看日韩欧美| 天天躁狠狠躁夜夜躁狠狠躁| 多毛熟女@视频| 长腿黑丝高跟| 久久精品亚洲熟妇少妇任你| 久久九九热精品免费| 亚洲少妇的诱惑av| 亚洲欧洲精品一区二区精品久久久| 19禁男女啪啪无遮挡网站| 黑人操中国人逼视频| av超薄肉色丝袜交足视频| 色哟哟哟哟哟哟| 成人国语在线视频| 免费在线观看完整版高清| 怎么达到女性高潮| 亚洲av电影在线进入| 在线十欧美十亚洲十日本专区| 在线观看午夜福利视频| 亚洲专区中文字幕在线| 国产激情久久老熟女| 日韩欧美三级三区| 91在线观看av| 国产成人影院久久av| 国产深夜福利视频在线观看| svipshipincom国产片| 国产一区二区在线av高清观看| 欧美性长视频在线观看| 国产av又大| 亚洲精品在线观看二区| 男女高潮啪啪啪动态图| 亚洲熟妇熟女久久| 欧美性长视频在线观看| 亚洲色图 男人天堂 中文字幕| 日本五十路高清| 免费av中文字幕在线| 国产亚洲欧美在线一区二区| 亚洲一区中文字幕在线| 青草久久国产| 国产三级在线视频| 久久热在线av| 免费女性裸体啪啪无遮挡网站| 女同久久另类99精品国产91| 日韩一卡2卡3卡4卡2021年| 国产精品久久久人人做人人爽| 亚洲精品av麻豆狂野| 国产伦人伦偷精品视频| 国产亚洲精品久久久久久毛片| 极品人妻少妇av视频| 精品人妻在线不人妻| 精品高清国产在线一区| 久久天躁狠狠躁夜夜2o2o| www.自偷自拍.com| 亚洲精品国产色婷婷电影| 久久久久久大精品| 亚洲五月色婷婷综合| 热99re8久久精品国产| 午夜福利一区二区在线看| 久久 成人 亚洲| 夜夜爽天天搞| 波多野结衣高清无吗| 国产片内射在线| 亚洲狠狠婷婷综合久久图片| 欧美成人午夜精品| av片东京热男人的天堂| 亚洲av美国av| 在线十欧美十亚洲十日本专区| 波多野结衣一区麻豆| 在线视频色国产色| 免费观看精品视频网站| 精品福利永久在线观看| 韩国精品一区二区三区| 欧美大码av| 欧美激情高清一区二区三区| 亚洲一区二区三区色噜噜 | www.自偷自拍.com| 亚洲欧洲精品一区二区精品久久久| 黑丝袜美女国产一区| 成人特级黄色片久久久久久久| 性欧美人与动物交配| 一二三四社区在线视频社区8| 欧美激情久久久久久爽电影 | 免费在线观看日本一区| av网站免费在线观看视频| 97碰自拍视频| 久久影院123| 黄频高清免费视频| 老熟妇仑乱视频hdxx| 免费av中文字幕在线| 成在线人永久免费视频| 久久久久久免费高清国产稀缺| 国产单亲对白刺激| 19禁男女啪啪无遮挡网站| 欧美精品亚洲一区二区| 操美女的视频在线观看| 亚洲成av片中文字幕在线观看| 岛国在线观看网站| 操出白浆在线播放| 欧美午夜高清在线| 免费在线观看视频国产中文字幕亚洲| 69精品国产乱码久久久| 黄色女人牲交| 无限看片的www在线观看| 国产熟女午夜一区二区三区| 两个人免费观看高清视频| 91九色精品人成在线观看| tocl精华| 男女做爰动态图高潮gif福利片 | 亚洲人成网站在线播放欧美日韩| 少妇的丰满在线观看| 日韩三级视频一区二区三区| 一二三四在线观看免费中文在| 夜夜夜夜夜久久久久| 长腿黑丝高跟| 久热爱精品视频在线9| 欧美黄色淫秽网站| 免费高清视频大片| 国产精品一区二区精品视频观看| 桃色一区二区三区在线观看| 国产一区二区三区综合在线观看| 亚洲av五月六月丁香网| 亚洲成a人片在线一区二区| 免费高清视频大片| 9热在线视频观看99| av片东京热男人的天堂| 99在线人妻在线中文字幕| 久久国产精品影院| 老司机午夜福利在线观看视频| 国产精品日韩av在线免费观看 | 99国产精品免费福利视频| 国产乱人伦免费视频| 日本撒尿小便嘘嘘汇集6| 长腿黑丝高跟| 亚洲精品成人av观看孕妇| 99久久综合精品五月天人人| 女性生殖器流出的白浆| 激情视频va一区二区三区|