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

    面向死鎖規(guī)避的路徑敏感插裝

    2015-05-30 22:01:06齊鵬禹振蘇小紅馬培軍

    齊鵬 禹振 蘇小紅 馬培軍

    摘 要:程序插樁技術(shù)是一種基本的測試手段,在軟件測試中被廣泛的應(yīng)用。插裝方式是指在程序源碼中插入一些語句,通過這些語句可以獲得所需要的信息,在死鎖規(guī)避的靜態(tài)分析中需要通過程序插裝的方式記錄下一些信息。程序插裝按照源程序的結(jié)構(gòu)分為順序結(jié)構(gòu)的插裝,分支結(jié)構(gòu)的插裝和循環(huán)結(jié)構(gòu)的插裝。在對源程序進(jìn)行詞法語法分析的基礎(chǔ)上建立抽象語法樹和控制流圖,根據(jù)控制流圖獲取程序可能執(zhí)行的所有路徑信息,接著根據(jù)路徑信息決定插裝的內(nèi)容。

    關(guān)鍵詞:詞法分析;語法分析;抽象語法樹;程序插裝

    中圖分類號:TP311 文獻(xiàn)標(biāo)識號:A

    Deadlock Avoidance Oriented Path Sensitive Instrumentation

    QI Peng, YU Zhen, SU Xiaohong, MA Peijun

    (School of Computer Science and Technology, Harbin Institute of Technology, Harbin 150001, China)

    Abstract:The instrumentation of the program is a basic test method, which is widely used in software testing. In instrumentation method is to insert some of the statements in the program source code, the required information is available through these statements, in static analysis of the deadlock avoidance through program instrumentation some information needs to be recorded. Procedures for the insertion into the structure of the source code structure is divided into the order of the structure of the insert, the branch structure of the insert and the structure of the loop. In this paper, on the basis of the lexical and syntax analysis of the source program to establish abstract syntax tree and control flow graph, according to the control flow graph to obtain the program may perform all path information, then according to the route information to decide the inserted content.

    Keywords:Lexical Analysis; Syntax Analysis; Abstract Syntax Tree; Program Instrumentation

    0 引 言

    程序插樁(Program Instrumentation)技術(shù)是一種基本的測試手段,由J.G.Huang教授首次提出,并已在軟件測試中獲得了廣泛的應(yīng)用。其目的是在保障源程序的邏輯和功能不被破壞的情況下,向源程序插入一些語句,這些語句可以記錄或者輸出一些需要關(guān)注的信息,進(jìn)一步通過這些信息了解執(zhí)行過程中程序的一些動(dòng)態(tài)特性。

    Clang是一個(gè)支持 C,C++,Object-c及Object-c++等語言的編譯器前端。在本文中即使用了Clang對源碼經(jīng)過詞法語法分析,生成語法樹,并在此基礎(chǔ)上建立控制流圖,方便之后的獲取執(zhí)行路徑。使用Clang進(jìn)行詞法語法分析主要是由于Clang本身性能的優(yōu)異,其生成語法樹所消耗的內(nèi)存僅僅是GCC的20%左右,同時(shí)編譯時(shí)間快,錯(cuò)誤輸出明確,并且Clang支持在語法樹的基礎(chǔ)上建立控制流圖,自動(dòng)查找頭文件,解析C語言在Linux下的頭文件的功能。

    在基于未來鎖集的死鎖規(guī)避算法[1]中程序插裝的是記錄鎖集信息的關(guān)鍵步驟[2],這也是基于未來鎖集死鎖規(guī)避算法與其它死鎖規(guī)避算法[3-5]最大的不同,通常情況下程序插裝的目的是獲取程序的執(zhí)行路徑,或者關(guān)鍵的狀態(tài)值等。雖然基于未來鎖集的死鎖規(guī)避算法也需要獲取程序的執(zhí)行路徑,但卻通過靜態(tài)的分析方法獲得程序可能的執(zhí)行路徑,而不是等到程序運(yùn)行時(shí)獲取真實(shí)的執(zhí)行路徑。所以本算法插裝的目的是為了記錄下相關(guān)的加鎖操作的信息。只有獲得了這些信息,才能根據(jù)這些信息添加規(guī)避邏輯[6]。

    1 路徑敏感分析

    在基于未來鎖集的死鎖規(guī)避算法中程序的插裝內(nèi)容是根據(jù)程序的實(shí)際執(zhí)行路徑來確定的,然而在靜態(tài)分析時(shí)卻仍無法確定程序真實(shí)的執(zhí)行路徑,因此就需要找出程序所有的可能執(zhí)行路徑,并區(qū)分具體情況進(jìn)行插裝,這一過程就是路徑敏感分析。

    下面使用塊號代表節(jié)點(diǎn),將控制流圖這個(gè)有向圖轉(zhuǎn)化成矩陣的存儲(chǔ)形式Arcs[N][N],N是所有節(jié)點(diǎn)的個(gè)數(shù)。在算法開始之前,需要首先引入一些變量定義:

    (1)節(jié)點(diǎn)棧mystack。

    (2)VertexStatus[]={0,0,0,1,1,…}當(dāng)結(jié)點(diǎn)未進(jìn)棧或者已經(jīng)出棧,則其對應(yīng)的狀態(tài)為0,否則為1。

    (3)ArcStatus[][]={0,0,1,0,1…..} 當(dāng)且僅當(dāng)邊的兩個(gè)結(jié)點(diǎn)都在棧外時(shí),邊的狀態(tài)才為0,否則為1。

    對以上變量實(shí)現(xiàn)其定義后,算法1給出了路徑敏感分析算法的具體描述。

    算法1:路徑敏感分析算法

    輸入:控制流圖的矩陣存儲(chǔ)形式Arcs[N][N]

    輸出:控制流圖中基本塊N到基本塊0的所有路徑集合Paths

    1 Paths={}//路徑集合

    2 VertexStatus[]={0};//全部置0

    3 ArcStatus[][]={0};//全部置0

    4 mystack.push(0);// 節(jié)點(diǎn)棧

    5 VertexStatus[N]=1;//將第N塊入棧

    6 while !mystack.empty()

    7 elem= mystack.top();//獲得棧頂元素

    8 if elem==0

    9 path=Traverse(mystack);//遍歷棧將棧中信息組成路徑

    10 Paths.add(path);//將棧中的路徑添加到路徑集合Paths中

    11 VertexStatus[elem]=0;

    12 UpdateArcStatus();//更新ArcStatus[][]

    13 mystack.pop();//移除棧頂元素

    14 else

    15 i=N

    16 T1= VertexStatus[i]==0;//第i塊不在棧中

    17 T2= ArcStatus[elem][i]==0;//邊(elem,i)不在棧中

    18 T3= Arcs.contain(elem,i);//控制流圖中存在(elem,i)邊

    19 if 如果存在一個(gè)最大的數(shù)i使i在0~N,并且使

    20 T1&&T2&&T3成立

    21 VertexStatus[i]=1;//標(biāo)記i塊狀態(tài)為入棧

    22 VrcStatus[elem][i]=1;//標(biāo)記(elem,i)邊為入棧狀態(tài)

    23 mystack.push(i);//將i點(diǎn)入棧

    24 else

    25 VertexStatus[elem]=0;//標(biāo)記elem塊狀態(tài)為入棧

    26 mystack.pop();//將棧頂元素出棧

    27 UpdateArcStatus();//更新ArcStatus[][]

    28 endif

    29 endif

    30 endwhile

    31 return Paths;

    算法1中,變量的初始化表示將起始塊號N放入棧中,更新點(diǎn)的狀態(tài)集合,并且開始算法,整個(gè)算法是在一個(gè)大的循環(huán)中;并且只要棧不為空,程序則繼續(xù)循環(huán)。進(jìn)入循環(huán)體之后首先判斷棧頂元素是否為0,也就是最后一塊Exit:如果是的話說明棧中的所有塊是一條符合要求的完整路徑,接下來需記錄下這個(gè)路徑并且更新邊的狀態(tài)集合,最后將棧頂元素出棧;如果不是,說明棧內(nèi)的元素還不是一條符合要求的路徑,即需要繼續(xù)改變棧中元素。改變棧中元素就是判定從棧頂元素開始到Exit塊是否還有新的路徑產(chǎn)生,為此定義了一個(gè)判斷條件T1&&T2&&T3,同時(shí)結(jié)合點(diǎn)的狀態(tài)集合,邊的狀態(tài)集合和原始的有向圖,進(jìn)而判斷:如果在控制流圖中還存在點(diǎn)使T1&&T2&&T3條件滿足的話,這就說明從棧頂元素到最后有新的路徑,隨即將更新點(diǎn)狀態(tài)集合和邊狀態(tài)集合,并且將棧頂元素的后繼入棧;否則也就說明從棧頂元素到最后已經(jīng)沒有新的路徑,如此將更新點(diǎn)的狀態(tài)集合,將棧頂元素出棧,更新邊的狀態(tài)集合。同時(shí)在路徑敏感分析算法完整執(zhí)行后,Paths中保存的就是兩點(diǎn)之間的所有路徑。

    2 面向不同結(jié)構(gòu)源程序的插裝方法

    2.1 順序結(jié)構(gòu)插裝

    程序插裝是靜態(tài)分析的最后一步,未來鎖集就是根據(jù)靜態(tài)分析時(shí)插裝的信息計(jì)算而得來的。插裝的方式對于程序的不同結(jié)構(gòu)有不同的方法。在這里插裝的內(nèi)容為加鎖解鎖信息。具體插入的語句為入棧語句,入棧元素包含鎖的名稱和該鎖是否執(zhí)行加鎖。例如“Push(ps,Mutex1,1,mutex)”,表示向棧ps中加入一個(gè)鎖的信息,這個(gè)信息指明為鎖Mutex1實(shí)施加鎖,其中最后一個(gè)mutex參數(shù)表示Mutex1是一個(gè)互斥鎖,主要是為了區(qū)別讀寫鎖而設(shè)立的。算法2給出順序結(jié)構(gòu)插裝的算法描述。

    算法2:對源碼為順序結(jié)構(gòu)的程序插裝的算法

    輸入:順序結(jié)構(gòu)的源碼對應(yīng)的控制流圖

    輸出:插裝之后的源碼對應(yīng)的控制流圖

    1 對輸入的源碼建立控制流圖G

    2 for G中的每條語句s

    3 if s為加鎖操作

    4 while 以s為起點(diǎn)遍歷控制流圖中的每條語句t

    5 if t不是對應(yīng)s的解鎖操作并且為加鎖解鎖語句

    6 記錄加鎖語句t中的信息

    7 endif

    8 endwhile

    9 endif

    10 將所記錄的所有鎖信息插裝到s之前,更新G

    11 if s為自定義函數(shù)調(diào)用

    12 while 以語句s為起點(diǎn)遍歷G的每條語句t直到控制流圖結(jié)束

    13 記錄下所有加鎖解鎖操作

    14 endwhile

    15 endif

    16 將記錄的鎖信息插裝到s之前, 更新G

    17 在s之后插裝相應(yīng)的出棧語句,更新G

    18 endif

    19 endfor

    20 return G;

    2.2 分支結(jié)構(gòu)的插裝

    基于未來鎖集的死鎖規(guī)避算法中主要包含著一個(gè)“提前“的思想,當(dāng)算法執(zhí)行到加鎖操作時(shí),如果能知道加鎖操作之后執(zhí)行的其他加鎖解鎖操作的話,就可以根據(jù)這些信息判斷所遇到的加鎖操作是不是可以執(zhí)行。本文研究的插裝就是將加鎖之后執(zhí)行的鎖信息提前。但是這里存在一個(gè)問題,在路徑分析時(shí)可能獲得的是兩點(diǎn)之間的所有路徑,而在實(shí)際執(zhí)行的過程中執(zhí)行路徑卻只有一條。也就是說,在程序運(yùn)行之前終將無法確定程序運(yùn)行時(shí)的真實(shí)執(zhí)行路徑。圖1所示為采用將分支條件提前的方法插裝帶有分支結(jié)構(gòu)的源碼。

    圖1 采用將分支條件提前的方法插裝帶有分支結(jié)構(gòu)的源碼

    Fig.1 Instrumentate source code with branch structure using the method that put the branch condition in front

    圖1展示了兩個(gè)簡化后的控制流圖,其中省略了Entry和Exit塊。圖中箭頭右邊的控制流圖采用了將分支條件提前的方法,插裝帶有分支結(jié)構(gòu)的程序。源程序?yàn)橐粋€(gè)分支結(jié)構(gòu),分支條件為T,需要插裝的語句為S1,S2,S3,且都是加鎖語句。具體地,S2,S3只有一條路徑可以執(zhí)行,其插裝代碼分別為In3、In4和In5,In6及In7。而對于S1來說,則有兩條路徑可以執(zhí)行;此時(shí)為了確定執(zhí)行路徑,即將分支條件提前,所以插裝的語句為條件語句In1和In2。

    針對將分支條件提前這一方法,雖然可以精準(zhǔn)確定程序執(zhí)行的路徑,但是符合這種方法的條件卻過于苛刻。如果遇到分支條件不能提前的情況,這種方法將不能使用,比如用戶輸入,或者分支條件中的變量定義在加鎖操作之后等情況。如圖2所示,為使圖2中的B3塊發(fā)生變化,分支條件中的變量定義改動(dòng)在加鎖條件之后,只是如此插裝之后就會(huì)出現(xiàn)語法錯(cuò)誤。圖3則為分支條件中的變量需要用戶輸入導(dǎo)致不能將分支條件提前。

    圖2分支條件中的變量定義在加鎖操作之后導(dǎo)致插裝錯(cuò)誤

    Fig.2 The variable in the branch condition that define after the lock operation lead to the error of instrumentation

    圖3 分支條件中的變量需要用戶輸入導(dǎo)致插裝錯(cuò)誤

    Fig.3 The variable in the branch condition that require user input lead to the error of instrumentation

    在圖3中,由于分支條件中的變量a,b是在加鎖操作S1之后定義的,當(dāng)插裝完成后,插裝語句中的變量a,b就成為未定義的變量,因而這段代碼將無法順利通過編譯。在圖4中真正確定分支條件的變量是需要用戶輸入,而用戶輸入的語句卻是在加鎖操作S1之后,這就使得雖然插裝后的代碼可以運(yùn)行,但卻不能有效確定執(zhí)行路徑。

    在插裝時(shí),為了有效確定程序的執(zhí)行路徑而采用將分支條件提前的方法雖然可以準(zhǔn)確找到執(zhí)行路徑,但其適用范圍并不大,而且也無法判斷程序的分支條件是否可以提前,綜上所述即使插裝代碼中產(chǎn)生了諸多錯(cuò)誤。在此,提出另一種方法將會(huì)遍歷所有可能的執(zhí)行路徑,按照算法3的插裝方法就可將所有應(yīng)該插裝的鎖信息入棧,并將重復(fù)的去掉。如下的算法3就是這種分支結(jié)構(gòu)插裝方法的算法描述。

    算法3:對源碼為分支結(jié)構(gòu)的程序插裝的算法

    輸入:分支結(jié)構(gòu)的源碼對應(yīng)的控制流圖

    輸出:插裝之后的源碼對應(yīng)的控制流圖

    1 對輸入的源碼建立控制流圖G

    2 for G中的每條語句s

    3 if s為加鎖操作or自定義函數(shù)調(diào)用操作

    4 以s所在的基本塊為起點(diǎn)Exit塊為終點(diǎn)進(jìn)行路徑敏感分析

    5 獲得路徑集合Paths

    6 for 遍歷Paths中的每條路徑path

    7 將path中的塊連接起來當(dāng)作順序結(jié)構(gòu)的源碼

    8 使用算法2是對s進(jìn)行插裝,更新G

    9 endfor

    10 將s前插裝的語句做去重處理

    11 endif

    12 endfor

    13 return G;

    這種方法雖然損失掉一些程序執(zhí)行效率,但卻適用于所有情況,并且不會(huì)向源碼中引入錯(cuò)誤。圖4就列舉了一個(gè)分支結(jié)構(gòu)的源碼對應(yīng)的控制流圖,并且給出使用算法3插裝之后的控制流圖。

    圖4 遍歷所有可能路徑的插裝方法

    Fig.4 Instrumentation method of traversing all the possible paths

    如圖4所示,對于S1的插裝是分別遍歷了左分支和右分支之后將所有插裝信息插入,再去掉重復(fù)的,所以在棧中會(huì)同時(shí)出現(xiàn)加鎖mutex2和加鎖mutex3。

    2.3 循環(huán)結(jié)構(gòu)的插樁

    前文已經(jīng)介紹了對于順序結(jié)構(gòu)和分支結(jié)構(gòu)的插裝方式,并且在路徑分析時(shí)將所有的循環(huán)結(jié)構(gòu)都轉(zhuǎn)化成了分支結(jié)構(gòu),那么如果在循環(huán)體中出現(xiàn)了自定義函數(shù)調(diào)用或者加鎖操作的話,相應(yīng)地也可將循環(huán)結(jié)構(gòu)轉(zhuǎn)化成循環(huán)體只可能執(zhí)行一遍的分支結(jié)構(gòu)。

    在實(shí)際的編程過程中,如果循環(huán)體中存在單獨(dú)的加鎖操作而沒有對應(yīng)的解鎖操作的話,一旦循環(huán)體重復(fù)執(zhí)行,就極有可能發(fā)生自鎖的情況。這樣的編程方式是不符合規(guī)范的。但是在循環(huán)體中只要加鎖操作和解鎖操作能夠呈現(xiàn)對應(yīng)設(shè)計(jì),那么插裝之后,即使循環(huán)體重復(fù)執(zhí)行,插裝的內(nèi)容也會(huì)是一樣的,算法4給出循環(huán)結(jié)構(gòu)的插裝算法描述。

    算法4:對源碼為循環(huán)結(jié)構(gòu)的程序插裝的算法

    輸入:循環(huán)結(jié)構(gòu)的源碼對應(yīng)的控制流圖

    輸出:插裝之后的源碼對應(yīng)的控制流圖

    1 對輸入的源碼建立控制流圖G

    2 for G中的每個(gè)基本塊b

    3 if 基本塊b的后繼塊號大于本塊號,說明存在回邊

    4 b塊的前驅(qū)塊為preb

    5 b塊的后繼為succb

    6 將preb的后繼塊設(shè)置為succb的除了preb的后繼塊

    7 刪除基本塊b

    8 endif

    9 endfor

    10 將G作為算法3的輸入進(jìn)行插裝

    11 return G;

    如圖5所示,控制流圖中帶有環(huán)的結(jié)構(gòu)G1,在去環(huán)之后轉(zhuǎn)化成為圖G2,使用插裝算法插裝之后則為圖G3。G1中的塊B3,B2和B0,構(gòu)成了一個(gè)環(huán)狀結(jié)構(gòu),其中B2是一個(gè)空塊。在去環(huán)的過程中將B2刪除,形成G2所示的控制流圖,在G2插裝的過程中只要按照分支結(jié)構(gòu)插裝的算法進(jìn)行就可以了。最終的插裝結(jié)果即為G3所示的控制流圖。

    圖5 對于循環(huán)結(jié)構(gòu)的插裝方法

    Fig.5 Method of instrumentation of a circular structure

    3 實(shí)驗(yàn)

    Flider對于靜態(tài)插裝的測試分為順序結(jié)構(gòu)的源碼,分支結(jié)構(gòu)的源碼和循環(huán)結(jié)構(gòu)的源碼。下面以循環(huán)結(jié)構(gòu)為例,如圖6為循環(huán)結(jié)構(gòu)的一段源碼,圖7為該段代碼插裝之后的部分結(jié)果。

    圖6 循環(huán)結(jié)構(gòu)的源代碼

    Fig.6 Source code of a circular structure

    圖7 由于對rwlock1鎖的加鎖操作而插裝的語句

    Fig.7 The statement that is instrumentated because of the rwlock1 lock operation

    在圖6中的源碼中存在兩個(gè)加鎖語句rwlock1與rwlock2,圖7所示的是對于rwlock1插裝的結(jié)果。插裝的語句為入棧語句,是根據(jù)加鎖操作后面執(zhí)行的代碼所確定的,按照算法4,圖7對于循環(huán)結(jié)構(gòu)的插裝是正確的。

    4 結(jié)束語

    本文使用Clang作為詞法語法分析工具,建立抽象語法樹,控制流圖并且在控制流圖的基礎(chǔ)上進(jìn)行路徑分析獲取源程序可能執(zhí)行的所有路徑。同時(shí),根據(jù)獲得的路徑信息將語句插裝進(jìn)源碼。這項(xiàng)工作為基于未來鎖集的死鎖規(guī)避方法提供了鎖集信息,可以用于基于未來鎖集的死鎖規(guī)避方法的靜態(tài)分析部分。

    參考文獻(xiàn):

    [1] GERAKIOS P, PAPASPYROU N, SAGONAS K, et al. Dynamic deadlock avoidance in systems code using statically inferred effects[C]//Proceedings of the 6th Workshop on Programming Languages and Operating Systems, New York, NY, USA:ACM, 2011: 5

    [2] 白哥樂. 基于靜態(tài)源碼分析的多線程死鎖檢測方法研究 [D]. 北京:北京郵電大學(xué),2010.

    [3] BERGER E D, YANG T, LIUiu T, et al. Grace: safe multithreaded programming for C/C++[J]. ACM Sigplan Notices, 2009, 44(10): 81-96.

    [4] RABIN M O, SCOTT D. Finite automata and their decision problems[J]. IBM journal of research and development, 1959, 3(2): 114-125.

    BERGER E, YANG T, LUYiu T, et al. Grace: Safe and efficient concurrent programming[C]//Object-Oriented Programming, Systems, Languages & Applications, Orlando, Florida:ACM,2009:123-137.

    [5] JULA H, CANDEA G. A scalable, sound, eventually-complete algorithm for deadlock immunity[C]//Runtime Verification. Berlin Heidelberg:Springer, 2008: 119-136.

    [6] 蘇小紅,禹 振,王甜甜,等. 并發(fā)缺陷暴露、檢測與規(guī)避研究綜述[J]. 計(jì)算機(jī)學(xué)報(bào),2014,37(103):1-19

    精品一区二区免费观看| 日韩中文字幕欧美一区二区 | 熟女少妇亚洲综合色aaa.| 一级,二级,三级黄色视频| 80岁老熟妇乱子伦牲交| 三级国产精品片| 少妇猛男粗大的猛烈进出视频| 一本色道久久久久久精品综合| 九草在线视频观看| 在线观看人妻少妇| 国产一级毛片在线| 春色校园在线视频观看| 亚洲欧洲国产日韩| 纵有疾风起免费观看全集完整版| 蜜桃在线观看..| 亚洲第一av免费看| 狠狠精品人妻久久久久久综合| 女性被躁到高潮视频| 国产1区2区3区精品| 美女xxoo啪啪120秒动态图| 性少妇av在线| 国产免费现黄频在线看| 久久久久国产精品人妻一区二区| 免费观看无遮挡的男女| 日本av手机在线免费观看| 激情五月婷婷亚洲| 免费观看a级毛片全部| 午夜福利网站1000一区二区三区| 免费黄频网站在线观看国产| 美女国产高潮福利片在线看| 国产男女内射视频| 最新的欧美精品一区二区| 纯流量卡能插随身wifi吗| 啦啦啦在线观看免费高清www| 如日韩欧美国产精品一区二区三区| 久久久亚洲精品成人影院| 国产精品国产av在线观看| 午夜精品国产一区二区电影| a级毛片黄视频| 毛片一级片免费看久久久久| 亚洲av电影在线观看一区二区三区| 爱豆传媒免费全集在线观看| 日本-黄色视频高清免费观看| 成人亚洲欧美一区二区av| 极品少妇高潮喷水抽搐| 午夜激情av网站| 欧美日韩视频高清一区二区三区二| 纯流量卡能插随身wifi吗| 国产老妇伦熟女老妇高清| xxxhd国产人妻xxx| 午夜激情久久久久久久| 一区在线观看完整版| 天堂中文最新版在线下载| 80岁老熟妇乱子伦牲交| 亚洲三级黄色毛片| 下体分泌物呈黄色| 免费av中文字幕在线| 可以免费在线观看a视频的电影网站 | 亚洲天堂av无毛| 国产精品一区二区在线观看99| 国产毛片在线视频| 一个人免费看片子| 亚洲国产精品国产精品| 另类精品久久| 美女国产高潮福利片在线看| 黄色毛片三级朝国网站| 国产成人免费无遮挡视频| 久久综合国产亚洲精品| 视频区图区小说| 国产成人精品久久久久久| 精品人妻在线不人妻| 久久久a久久爽久久v久久| 久久久国产欧美日韩av| 欧美日韩亚洲高清精品| 亚洲精品日本国产第一区| 日本欧美国产在线视频| 久久久久人妻精品一区果冻| 在线观看三级黄色| 又粗又硬又长又爽又黄的视频| 亚洲综合色惰| kizo精华| 亚洲第一av免费看| 欧美在线黄色| 少妇被粗大的猛进出69影院| 人妻系列 视频| 春色校园在线视频观看| 丝袜美足系列| 一区二区三区四区激情视频| 亚洲欧洲精品一区二区精品久久久 | 亚洲欧美清纯卡通| 高清不卡的av网站| 丝袜美足系列| 男女高潮啪啪啪动态图| 国产一区二区在线观看av| 最新的欧美精品一区二区| 国产免费福利视频在线观看| av有码第一页| 宅男免费午夜| 精品视频人人做人人爽| 高清在线视频一区二区三区| 久久久久久免费高清国产稀缺| 久久久久网色| 99九九在线精品视频| 亚洲精品久久午夜乱码| 国产亚洲最大av| 中文字幕色久视频| 搡女人真爽免费视频火全软件| 免费人妻精品一区二区三区视频| 亚洲av日韩在线播放| 成人亚洲欧美一区二区av| 亚洲国产日韩一区二区| 熟女av电影| 精品一品国产午夜福利视频| 波多野结衣av一区二区av| 波多野结衣av一区二区av| 久久精品久久久久久久性| 人妻系列 视频| 亚洲精品中文字幕在线视频| 欧美日韩av久久| 一级毛片我不卡| 嫩草影院入口| 午夜日韩欧美国产| 春色校园在线视频观看| 日韩 亚洲 欧美在线| 超碰成人久久| 午夜福利视频精品| 一本大道久久a久久精品| 在线免费观看不下载黄p国产| 最近的中文字幕免费完整| 亚洲 欧美一区二区三区| xxx大片免费视频| av片东京热男人的天堂| 中文字幕色久视频| 国产亚洲最大av| 精品一区在线观看国产| www.熟女人妻精品国产| 激情五月婷婷亚洲| 美女高潮到喷水免费观看| 午夜福利一区二区在线看| 人人妻人人爽人人添夜夜欢视频| 久久亚洲国产成人精品v| kizo精华| 少妇的逼水好多| 青春草视频在线免费观看| 亚洲第一青青草原| 伦精品一区二区三区| 日韩在线高清观看一区二区三区| 亚洲精华国产精华液的使用体验| 18禁国产床啪视频网站| 欧美黄色片欧美黄色片| 久久久欧美国产精品| 中文字幕人妻丝袜一区二区 | av在线app专区| 午夜免费观看性视频| 国产成人精品福利久久| 黄色配什么色好看| 亚洲成人av在线免费| 90打野战视频偷拍视频| av有码第一页| 黄色一级大片看看| www.av在线官网国产| 免费大片黄手机在线观看| 国产成人精品福利久久| 国产精品av久久久久免费| 成人亚洲欧美一区二区av| 熟女电影av网| 午夜av观看不卡| xxx大片免费视频| 国产成人免费观看mmmm| 色吧在线观看| 亚洲欧洲日产国产| 黑人欧美特级aaaaaa片| 丰满少妇做爰视频| 丝袜脚勾引网站| 国产精品国产三级国产专区5o| 久热久热在线精品观看| 一个人免费看片子| 久久av网站| 丝袜美腿诱惑在线| 欧美精品人与动牲交sv欧美| 国产av精品麻豆| 一级毛片黄色毛片免费观看视频| 制服丝袜香蕉在线| 久久99蜜桃精品久久| 七月丁香在线播放| 自拍欧美九色日韩亚洲蝌蚪91| 亚洲欧洲日产国产| av卡一久久| 欧美国产精品va在线观看不卡| 国产片特级美女逼逼视频| 国产精品国产三级国产专区5o| 亚洲国产精品国产精品| 考比视频在线观看| 精品酒店卫生间| 久久国产精品男人的天堂亚洲| 精品亚洲成国产av| 国产毛片在线视频| 日本免费在线观看一区| 黑丝袜美女国产一区| 久久人妻熟女aⅴ| 男女边摸边吃奶| 国产精品无大码| 亚洲伊人久久精品综合| 久久久久视频综合| 搡老乐熟女国产| 久久韩国三级中文字幕| 超碰成人久久| 晚上一个人看的免费电影| 欧美在线黄色| 80岁老熟妇乱子伦牲交| 亚洲第一青青草原| 国产精品.久久久| 99国产综合亚洲精品| 永久免费av网站大全| 免费人妻精品一区二区三区视频| 美女主播在线视频| 亚洲av.av天堂| 欧美日韩亚洲国产一区二区在线观看 | 亚洲国产成人一精品久久久| 国产野战对白在线观看| 午夜免费观看性视频| 不卡视频在线观看欧美| 精品国产一区二区三区久久久樱花| 国产福利在线免费观看视频| 91国产中文字幕| 成人国语在线视频| 午夜激情久久久久久久| 精品第一国产精品| 亚洲一区中文字幕在线| 欧美成人午夜免费资源| 日本欧美视频一区| 亚洲视频免费观看视频| 欧美日韩综合久久久久久| 老鸭窝网址在线观看| 亚洲伊人久久精品综合| 久久午夜综合久久蜜桃| 99久久综合免费| 亚洲激情五月婷婷啪啪| 成人毛片a级毛片在线播放| 亚洲国产av新网站| 校园人妻丝袜中文字幕| 2021少妇久久久久久久久久久| 亚洲欧美一区二区三区国产| 久久久久久久大尺度免费视频| 精品亚洲成a人片在线观看| 国产午夜精品一二区理论片| 最近中文字幕2019免费版| 青草久久国产| 欧美少妇被猛烈插入视频| 美女福利国产在线| 国产精品99久久99久久久不卡 | av卡一久久| 老司机影院成人| 久久久a久久爽久久v久久| 女性生殖器流出的白浆| 99香蕉大伊视频| 国产男女内射视频| 日日爽夜夜爽网站| 亚洲欧美一区二区三区国产| 日韩制服丝袜自拍偷拍| 99re6热这里在线精品视频| 黄色配什么色好看| 亚洲精品,欧美精品| 多毛熟女@视频| av女优亚洲男人天堂| 日韩精品免费视频一区二区三区| 90打野战视频偷拍视频| 天天躁夜夜躁狠狠久久av| 日韩制服骚丝袜av| 综合色丁香网| 欧美日韩精品网址| 女人高潮潮喷娇喘18禁视频| 亚洲第一青青草原| 男女下面插进去视频免费观看| 婷婷色综合大香蕉| av网站在线播放免费| 毛片一级片免费看久久久久| 亚洲国产成人一精品久久久| 男人添女人高潮全过程视频| 亚洲成av片中文字幕在线观看 | 国产成人精品久久二区二区91 | 国产又色又爽无遮挡免| 丝袜美腿诱惑在线| 国产 一区精品| 免费久久久久久久精品成人欧美视频| 中文字幕av电影在线播放| 97人妻天天添夜夜摸| 日本91视频免费播放| 欧美人与善性xxx| 欧美精品一区二区免费开放| 国产视频首页在线观看| 侵犯人妻中文字幕一二三四区| 男女无遮挡免费网站观看| 久久女婷五月综合色啪小说| av在线观看视频网站免费| 爱豆传媒免费全集在线观看| 午夜日韩欧美国产| 亚洲精品在线美女| 99re6热这里在线精品视频| 久久久久久久久久久久大奶| 久久久久久伊人网av| 亚洲国产欧美网| 国产日韩欧美亚洲二区| 欧美日韩综合久久久久久| 亚洲美女视频黄频| 看免费av毛片| 国产精品熟女久久久久浪| 亚洲欧美日韩另类电影网站| 午夜福利视频在线观看免费| 女人久久www免费人成看片| 看非洲黑人一级黄片| 亚洲色图综合在线观看| 狠狠精品人妻久久久久久综合| 人人妻人人爽人人添夜夜欢视频| 日韩人妻精品一区2区三区| 国产精品人妻久久久影院| 咕卡用的链子| 另类精品久久| 老汉色av国产亚洲站长工具| 婷婷色综合大香蕉| 91在线精品国自产拍蜜月| 欧美 日韩 精品 国产| 国产精品国产av在线观看| 午夜福利在线免费观看网站| 男女边摸边吃奶| 日韩av免费高清视频| 九色亚洲精品在线播放| 18+在线观看网站| 黄频高清免费视频| 色吧在线观看| 午夜日韩欧美国产| 亚洲图色成人| 欧美日本中文国产一区发布| 国产免费现黄频在线看| 欧美亚洲 丝袜 人妻 在线| 一区二区av电影网| 黑人猛操日本美女一级片| 亚洲欧美中文字幕日韩二区| 天天躁狠狠躁夜夜躁狠狠躁| 成人亚洲精品一区在线观看| 日韩制服骚丝袜av| 精品国产国语对白av| 国产深夜福利视频在线观看| 91精品三级在线观看| 大香蕉久久成人网| 伦理电影免费视频| 欧美精品亚洲一区二区| 亚洲第一av免费看| 国产av码专区亚洲av| 精品一区二区免费观看| 久久 成人 亚洲| 国产成人欧美| 国产探花极品一区二区| 如日韩欧美国产精品一区二区三区| 亚洲精品国产色婷婷电影| 日韩,欧美,国产一区二区三区| 欧美xxⅹ黑人| xxx大片免费视频| 97人妻天天添夜夜摸| 热99久久久久精品小说推荐| 国产精品成人在线| 啦啦啦视频在线资源免费观看| 国产精品99久久99久久久不卡 | 一边摸一边做爽爽视频免费| 免费看不卡的av| 国产精品一国产av| 久久精品国产综合久久久| 亚洲国产毛片av蜜桃av| 免费观看av网站的网址| 国产成人精品婷婷| 亚洲欧美一区二区三区国产| 亚洲,欧美,日韩| 搡女人真爽免费视频火全软件| 春色校园在线视频观看| 丁香六月天网| 永久网站在线| 桃花免费在线播放| 咕卡用的链子| 日韩视频在线欧美| 大香蕉久久成人网| av电影中文网址| a级片在线免费高清观看视频| 日韩伦理黄色片| 国产精品熟女久久久久浪| 日韩欧美一区视频在线观看| 亚洲色图 男人天堂 中文字幕| 黄色毛片三级朝国网站| 黑人巨大精品欧美一区二区蜜桃| 夫妻性生交免费视频一级片| 可以免费在线观看a视频的电影网站 | 美女大奶头黄色视频| 搡老乐熟女国产| 中文字幕制服av| 久久人妻熟女aⅴ| 色哟哟·www| 丰满饥渴人妻一区二区三| 久久av网站| 超色免费av| 亚洲国产最新在线播放| 男人添女人高潮全过程视频| 一区二区三区精品91| 高清不卡的av网站| 国产亚洲av片在线观看秒播厂| 叶爱在线成人免费视频播放| 欧美精品国产亚洲| 秋霞在线观看毛片| 欧美日本中文国产一区发布| 亚洲欧洲国产日韩| 不卡av一区二区三区| 欧美变态另类bdsm刘玥| 男人操女人黄网站| 美女福利国产在线| 天天影视国产精品| 国产女主播在线喷水免费视频网站| 亚洲精品国产色婷婷电影| 美女视频免费永久观看网站| 黄频高清免费视频| 国产精品欧美亚洲77777| 亚洲精品第二区| 不卡视频在线观看欧美| 久久这里只有精品19| 欧美 亚洲 国产 日韩一| 午夜免费观看性视频| 中文欧美无线码| 亚洲欧美一区二区三区久久| 亚洲三级黄色毛片| 五月伊人婷婷丁香| 老司机亚洲免费影院| 伦精品一区二区三区| 日韩精品有码人妻一区| 丰满少妇做爰视频| 欧美av亚洲av综合av国产av | 亚洲经典国产精华液单| 色哟哟·www| 熟妇人妻不卡中文字幕| 久久久亚洲精品成人影院| 国产av国产精品国产| 在线观看人妻少妇| 这个男人来自地球电影免费观看 | 久久国产亚洲av麻豆专区| 精品视频人人做人人爽| av免费观看日本| 夜夜骑夜夜射夜夜干| 一区二区日韩欧美中文字幕| 亚洲人成电影观看| 最近中文字幕高清免费大全6| videos熟女内射| 久久99精品国语久久久| 人妻人人澡人人爽人人| 久久亚洲国产成人精品v| 一本色道久久久久久精品综合| 国产精品一二三区在线看| videosex国产| 大码成人一级视频| 国产无遮挡羞羞视频在线观看| 国产精品av久久久久免费| av一本久久久久| 亚洲精品一区蜜桃| 最近最新中文字幕大全免费视频 | 国产成人一区二区在线| 日韩制服骚丝袜av| 少妇 在线观看| 老汉色av国产亚洲站长工具| 免费高清在线观看视频在线观看| 欧美精品一区二区大全| 人人妻人人添人人爽欧美一区卜| 97在线人人人人妻| 亚洲av中文av极速乱| 国产精品久久久久久av不卡| 国产精品香港三级国产av潘金莲 | 亚洲欧美日韩另类电影网站| 久久久久久久久久久免费av| 在线观看一区二区三区激情| 成人毛片60女人毛片免费| 校园人妻丝袜中文字幕| 亚洲第一av免费看| 波多野结衣一区麻豆| 亚洲成人手机| 免费看不卡的av| 国产成人91sexporn| 久久久久国产精品人妻一区二区| 国产在线免费精品| 欧美中文综合在线视频| 国产爽快片一区二区三区| 日韩人妻精品一区2区三区| 日日爽夜夜爽网站| 在线观看免费视频网站a站| 免费播放大片免费观看视频在线观看| 欧美日韩av久久| 90打野战视频偷拍视频| 亚洲精品国产色婷婷电影| 国产亚洲av片在线观看秒播厂| 青草久久国产| 97人妻天天添夜夜摸| 免费观看av网站的网址| 国产av国产精品国产| 国产成人午夜福利电影在线观看| 少妇被粗大猛烈的视频| 下体分泌物呈黄色| 国产精品av久久久久免费| 啦啦啦在线免费观看视频4| 国产不卡av网站在线观看| 日韩一卡2卡3卡4卡2021年| 999精品在线视频| 国产黄色免费在线视频| 最近的中文字幕免费完整| 成人毛片a级毛片在线播放| 精品国产国语对白av| 亚洲在久久综合| 久久ye,这里只有精品| 欧美av亚洲av综合av国产av | 久久免费观看电影| 在现免费观看毛片| 最近中文字幕2019免费版| 午夜免费鲁丝| 精品一区二区三卡| 极品人妻少妇av视频| 18禁观看日本| 观看av在线不卡| 性色av一级| 日韩av不卡免费在线播放| 色婷婷久久久亚洲欧美| 大陆偷拍与自拍| 91精品伊人久久大香线蕉| 国产成人一区二区在线| 多毛熟女@视频| 国产日韩欧美在线精品| 久久久精品国产亚洲av高清涩受| 在线观看www视频免费| 狠狠婷婷综合久久久久久88av| 精品少妇内射三级| 久久久久国产网址| 久久久久久久精品精品| 免费在线观看完整版高清| 亚洲精品国产一区二区精华液| 男女午夜视频在线观看| 国产国语露脸激情在线看| 婷婷色av中文字幕| 成人手机av| 亚洲精品在线美女| 天天操日日干夜夜撸| 好男人视频免费观看在线| 国产成人精品福利久久| 人人妻人人添人人爽欧美一区卜| 日韩在线高清观看一区二区三区| 色哟哟·www| 日韩电影二区| 大码成人一级视频| 女人高潮潮喷娇喘18禁视频| 亚洲美女视频黄频| 如何舔出高潮| 丝袜人妻中文字幕| 五月天丁香电影| 国产免费福利视频在线观看| 高清欧美精品videossex| 黑丝袜美女国产一区| 久久韩国三级中文字幕| www.av在线官网国产| 久久久久人妻精品一区果冻| 欧美在线黄色| 国产一区亚洲一区在线观看| 91成人精品电影| 国产成人免费观看mmmm| 亚洲av在线观看美女高潮| 搡女人真爽免费视频火全软件| 午夜精品国产一区二区电影| 五月伊人婷婷丁香| 欧美成人精品欧美一级黄| 哪个播放器可以免费观看大片| 丰满饥渴人妻一区二区三| 久久99精品国语久久久| 侵犯人妻中文字幕一二三四区| 亚洲av欧美aⅴ国产| 亚洲欧美中文字幕日韩二区| 久久精品国产亚洲av高清一级| 你懂的网址亚洲精品在线观看| 国产成人一区二区在线| 亚洲熟女精品中文字幕| 人妻系列 视频| 亚洲精品久久久久久婷婷小说| 亚洲精品成人av观看孕妇| 边亲边吃奶的免费视频| a 毛片基地| 日韩av不卡免费在线播放| 最近2019中文字幕mv第一页| 天天躁夜夜躁狠狠久久av| 亚洲欧美中文字幕日韩二区| 天天操日日干夜夜撸| 久久久久精品性色| 母亲3免费完整高清在线观看 | 亚洲一区中文字幕在线| 亚洲欧美精品自产自拍| 亚洲国产精品成人久久小说| 国产精品 国内视频| 国产 精品1| 视频在线观看一区二区三区| 免费黄色在线免费观看| 亚洲精品日韩在线中文字幕| 欧美成人午夜精品| 国产极品天堂在线| 人妻系列 视频| 香蕉国产在线看| 美女视频免费永久观看网站| 26uuu在线亚洲综合色| 亚洲伊人色综图| 18禁裸乳无遮挡动漫免费视频| 日日啪夜夜爽| 亚洲综合色网址| 在线观看免费视频网站a站| 久久久精品94久久精品| 1024香蕉在线观看| 日韩成人av中文字幕在线观看| 国产在线免费精品| 日韩欧美精品免费久久| 最近最新中文字幕大全免费视频 |