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

    基于K-最短路徑的大規(guī)模函數(shù)調(diào)用關(guān)系分析

    2018-01-03 01:59:03張晶晶石劍君高玉金計(jì)衛(wèi)星
    關(guān)鍵詞:函數(shù)調(diào)用源碼結(jié)點(diǎn)

    張晶晶 石劍君 高玉金 計(jì)衛(wèi)星

    (北京理工大學(xué)計(jì)算機(jī)學(xué)院 北京 100081)

    基于K-最短路徑的大規(guī)模函數(shù)調(diào)用關(guān)系分析

    張晶晶 石劍君 高玉金 計(jì)衛(wèi)星

    (北京理工大學(xué)計(jì)算機(jī)學(xué)院 北京 100081)

    函數(shù)調(diào)用關(guān)系反映了軟件系統(tǒng)中函數(shù)之間的依賴關(guān)系,在軟件分析、軟件測(cè)試與軟件維護(hù)等眾多軟件工程領(lǐng)域都有著廣泛的應(yīng)用。但在大型復(fù)雜軟件中搜索兩個(gè)函數(shù)之間的調(diào)用關(guān)系時(shí) ,由于函數(shù)數(shù)量眾多、函數(shù)之間調(diào)用關(guān)系復(fù)雜,使得搜索所需時(shí)間較長。為了獲得任意兩個(gè)函數(shù)之間的調(diào)用路徑,提出使用K-最短路徑算法,并對(duì)K-最短路徑算法進(jìn)行并行化優(yōu)化,減少搜索時(shí)間,為用戶分析函數(shù)調(diào)用關(guān)系提供方便。通過對(duì)Linux內(nèi)核3.19(包含40多萬個(gè)函數(shù)結(jié)點(diǎn)和110多萬調(diào)用關(guān)系)進(jìn)行分析,實(shí)驗(yàn)結(jié)果表明通過并行化優(yōu)化,并行加速比一般可達(dá)5~6倍。

    函數(shù)調(diào)用關(guān)系 K-最短路徑 路徑搜索 Linux內(nèi)核

    0 引 言

    隨著軟件技術(shù)的快速發(fā)展,軟件應(yīng)用遍及各行各業(yè),人們對(duì)于軟件各項(xiàng)功能的要求也越來越高,隨之而來的是軟件代碼規(guī)模日益增大,代碼量達(dá)到了百萬行乃至數(shù)千萬行。例如,最流行的開源操作系統(tǒng)Linux 內(nèi)核的代碼量已經(jīng)從1萬多行代碼增長到2 000多萬行。對(duì)于大型軟件系統(tǒng)而言,由于代碼規(guī)模龐大、自身邏輯復(fù)雜、說明文檔匱乏等特點(diǎn),使得代碼分析工作越來越困難。

    函數(shù)調(diào)用關(guān)系一般以一種有向圖的形式表示,是程序理解、程序分析中重要的研究內(nèi)容。在程序理解中,一個(gè)函數(shù)一般代表一個(gè)具體功能或者問題求解的實(shí)現(xiàn),函數(shù)調(diào)用關(guān)系反映了軟件系統(tǒng)中函數(shù)間的依賴關(guān)系。大型程序一般都是通過對(duì)函數(shù)的組織和調(diào)用來實(shí)現(xiàn)整個(gè)程序的功能要求,掌握函數(shù)之間的調(diào)用關(guān)系對(duì)理解程序是非常有幫助的。

    除此之外,在軟件工程的其他領(lǐng)域函數(shù)調(diào)用關(guān)系也有著廣泛的應(yīng)用,例如集成測(cè)試、回歸測(cè)試[3]、逆向工程、編譯優(yōu)化、軟件測(cè)試與維護(hù)等。在編譯優(yōu)化技術(shù)中,一方面通過分析程序的調(diào)用關(guān)系,使得沒有調(diào)用鏈關(guān)聯(lián)的函數(shù)的局部變量共享全局存儲(chǔ)單元,降低程序運(yùn)行時(shí)對(duì)內(nèi)存的需求,并提高相應(yīng)存儲(chǔ)單元的利用率[1];另一方面也可以根據(jù)建立的函數(shù)調(diào)用關(guān)系,分析函數(shù)調(diào)用關(guān)系中每個(gè)函數(shù)的寄存器使用集合,估算出每個(gè)函數(shù)調(diào)用點(diǎn)進(jìn)行上下文保存所需要的最小訪存集合,從而減少函數(shù)調(diào)用點(diǎn)所保存的上下文,消除冗余訪存操作,同時(shí)也能提升性能[2]。在路徑集成測(cè)試[4]中,對(duì)于大型程序進(jìn)行完全路徑測(cè)試幾乎是不可能完成的,所以如果將路徑測(cè)試級(jí)別上升到函數(shù)組件的級(jí)別,根據(jù)函數(shù)調(diào)用關(guān)系再結(jié)合判斷循環(huán)分支結(jié)構(gòu)生成組件的控制流圖,然后再結(jié)合路徑測(cè)試方法,最后構(gòu)造出組件繼承測(cè)試模型,這樣可以大大減少測(cè)試的復(fù)雜度。

    考慮到函數(shù)調(diào)用關(guān)系在各個(gè)方面的廣泛應(yīng)用,如何能夠準(zhǔn)確地獲取反應(yīng)實(shí)際程序執(zhí)行時(shí)兩個(gè)函數(shù)之間真正的調(diào)用關(guān)系,一直是大家關(guān)注的熱點(diǎn)。對(duì)于大規(guī)模項(xiàng)目而言,查詢兩個(gè)函數(shù)之間的全部調(diào)用路徑可以通過連接查詢,但是時(shí)間復(fù)雜度卻很高。因此,出于對(duì)性能的考慮,查詢兩個(gè)函數(shù)之間的所有調(diào)用路徑幾乎是不可能的。本文提出基于K-最短路徑算法查找兩個(gè)函數(shù)之間的調(diào)用路徑的方法,首先解析源碼存儲(chǔ)所有函數(shù)之間的調(diào)用關(guān)系,然后通過Yen算法來獲得函數(shù)之間前K條調(diào)用路徑,最后再得到函數(shù)之間調(diào)用關(guān)系。K-最短路徑問題是典型的NP[23]問題[10],復(fù)雜度高,通過對(duì)Yen算法并行化優(yōu)化,降低了時(shí)間復(fù)雜度,提高了搜索性能。

    1 相關(guān)工作

    目前,國內(nèi)外關(guān)于靜態(tài)分析函數(shù)調(diào)用關(guān)系的工具很多。文獻(xiàn)[5]中提到三種函數(shù)調(diào)用關(guān)系靜態(tài)分析方法,分別是使用正則表達(dá)式提取、使用開源軟件ctags[24]和cscope[25]提取、構(gòu)建抽象語法樹獲取函數(shù)調(diào)用關(guān)系。使用正則表達(dá)式提取調(diào)用關(guān)系是最簡單的辦法,通過掃描每一個(gè)源碼文件,匹配源碼中所有函數(shù)定義、存儲(chǔ)函數(shù)名、參數(shù)列表、所在文件等信息。然后再對(duì)源碼進(jìn)行第二次掃描,進(jìn)行匹配函數(shù)中調(diào)用的函數(shù),再將函數(shù)調(diào)用關(guān)系存儲(chǔ)起來。Ctags是一個(gè)開源的工具,可以從源程序代碼樹產(chǎn)生索引文件,通過解析索引文件產(chǎn)生函數(shù)之間的依賴關(guān)系。Cscope是一個(gè)C語言的瀏覽工具,可以找到函數(shù)或者變量定義位置、被調(diào)用函數(shù)位置等信息。通過Yacc和Lex實(shí)現(xiàn)C構(gòu)建抽象語法樹來提取函數(shù)調(diào)用關(guān)系。

    文獻(xiàn)[6] 提出一個(gè)基于RTL的函數(shù)調(diào)用圖生成工具CG-RTL,其核心模塊數(shù)據(jù)預(yù)處理是從編譯中間結(jié)果中提取函數(shù)定義以及靜態(tài)函數(shù)調(diào)用關(guān)系等信息。在CG-RTL的基礎(chǔ)上[7]提出了基于內(nèi)核跟蹤的動(dòng)態(tài)函數(shù)調(diào)用圖生成工具DCG-RTL,使用S2E作為獲取動(dòng)態(tài)函數(shù)調(diào)用數(shù)據(jù)的工具,記錄運(yùn)行時(shí)的函數(shù)調(diào)用和返回信息,分析跟蹤信息得到動(dòng)態(tài)和靜態(tài)函數(shù)調(diào)用關(guān)系。

    基于數(shù)據(jù)庫的在線函數(shù)調(diào)用圖工具DBCG-RTL[8]采用動(dòng)態(tài)靜態(tài)結(jié)合的方式從編譯過程中提取函數(shù)定義、函數(shù)間調(diào)用信息,以及模塊與函數(shù)間的調(diào)用關(guān)系,然后存入數(shù)據(jù)庫。

    K-最短路徑問題是最短路徑問題的另外一種形式,可以最大程度地滿足用戶對(duì)不同路徑的需求。K-最短路徑問題在其他領(lǐng)域中也有廣泛的應(yīng)用[19],如路徑規(guī)劃、物流規(guī)劃、GPS導(dǎo)航、生物醫(yī)學(xué)、社交網(wǎng)絡(luò)、基于位置的服務(wù)(LBS)等。文獻(xiàn)[22]中提出通過K-最短路徑求不含環(huán)路的所有負(fù)荷供電路徑來計(jì)算負(fù)荷停電概率和停電風(fēng)險(xiǎn)值。

    但在實(shí)際應(yīng)用中所需處理的數(shù)據(jù)規(guī)模很大,使得算法非常復(fù)雜,因此,求解算法的選擇是解決問題的關(guān)鍵。文獻(xiàn)[10]中提出K-最短路徑問題分為一般K-最短路徑問題和限定無環(huán)K-最短路徑問題,并闡述了兩類問題的求解算法。

    2 基于K-最短路徑函數(shù)調(diào)用關(guān)系分析與可視化

    2.1 K-最短路徑算法

    隨著軟件代碼規(guī)模的日益增大,函數(shù)調(diào)用關(guān)系也越來越復(fù)雜,某兩個(gè)函數(shù)之間的調(diào)用關(guān)系也不止一條。在大規(guī)模軟件代碼中比如Linux 內(nèi)核,其代碼量現(xiàn)在已經(jīng)增長到2 000多萬行。Linux內(nèi)核3.19的源碼中有約40 000多個(gè)源文件,源碼解析結(jié)果中有約40多萬個(gè)函數(shù)結(jié)點(diǎn),110多萬條函數(shù)調(diào)用關(guān)系。毫無疑問,Linux內(nèi)核是一個(gè)復(fù)雜的系統(tǒng),獲取兩個(gè)函數(shù)之間的調(diào)用關(guān)系路徑也就更加困難。

    在分析函數(shù)調(diào)用關(guān)系時(shí),理論上有必要對(duì)所有的可達(dá)路徑進(jìn)行分析,通過連接查詢可以得到函數(shù)之間的調(diào)用關(guān)系。但是搜索兩個(gè)結(jié)點(diǎn)的所有函數(shù)調(diào)用關(guān)系問題是一個(gè)NP問題[23],如果對(duì)所有的函數(shù)之間的可達(dá)路徑都進(jìn)行分析,不僅搜索花費(fèi)的時(shí)間很長,而且在很多應(yīng)用中并無必要。因此,出于對(duì)性能的考慮,可以選擇只獲取兩個(gè)函數(shù)之間的K條漸次短函數(shù)調(diào)用路徑。

    K-最短路徑算法是最短路徑問題的推廣,該算法能得到兩個(gè)結(jié)點(diǎn)之間的K條漸次短路徑[9]。在許多領(lǐng)域用戶除了希望得到最短路徑以外,還希望得到K條漸次短路徑。自1971年以來,有大量的文獻(xiàn)對(duì)K條次短路徑進(jìn)行了研究和探索,本文使用Yen路徑算法[9]對(duì)Linux內(nèi)核的函數(shù)調(diào)用關(guān)系進(jìn)行了分析,并且通過設(shè)置不同的K值來測(cè)試路徑搜索時(shí)間,確定最優(yōu)的K值。

    基于函數(shù)調(diào)用的K條漸次短路徑搜索方法的實(shí)現(xiàn)主要包括兩部分:第一部分是通過初始化建立一個(gè)可以表達(dá)函數(shù)之間調(diào)用關(guān)系的有向圖,第二部分再用K-最短路徑算法獲取兩個(gè)函數(shù)之間的前K條漸次短調(diào)用關(guān)系路徑。

    構(gòu)建有向圖之后調(diào)用Yen算法,獲得K條漸次短路徑。Yen算法采用遞推法中偏離路徑算法思想,適用于非負(fù)權(quán)邊的有向圖結(jié)構(gòu)[10]。假定通過初始化建立有向圖G,s和t是圖G的兩個(gè)結(jié)點(diǎn),用P表示從s到t的路徑,Pj(j≤K)表示第j條次短路徑。其算法的核心思想是利用已求得的前K-1條漸次短路徑P1,P2,…,Pk-1來求第K條最短路徑,最短路徑可以用標(biāo)準(zhǔn)求解最短路徑算法得到,比如Dijkstr算法。

    Yen算法的偽代碼如下:

    Input:G(V,E):weighteddirectedgraph,withsetof verticesVandsetofdirectededgesE; s:thesourcenode; t:thedestinationnode;K:thenumberofshortestpathstofind;1 A[0]←Dijkstr(G,s,t);2 B←[];3 fork=1toK:4 fori=0tosize(A[k?1])-2:5 vNode←A[k-1].node(i);6 rootPath←A[k-1].nodes(0,i);7 foreachpathp∈A:8 ifrootPath==p.nodes(0,i):9 G.remove(p.edge(i,i+1));10 foreachnode∈rootPathexceptvNode:11 G.remove(rootPathNode);12 spurPath←Dijkstra(G,vNode,t);13 totalPath←rootPath+spurPath;14 B.a(chǎn)ppend(totalPath);15 A[k]←B[0];16 returnA;

    算法的主要過程是將路徑Pk-1中除了終止結(jié)點(diǎn)t之外的其他結(jié)點(diǎn)作為偏離結(jié)點(diǎn)v,計(jì)算每個(gè)偏離結(jié)點(diǎn)v到終止結(jié)點(diǎn)t的最短路徑;然后再與Pk-1中起始結(jié)點(diǎn)s到偏離結(jié)點(diǎn)v的路徑拼接,構(gòu)造成候選路徑;最后在所有候選路徑中選擇一條最短路徑即為Pk。其中,B是一個(gè)Treeset 集合,每次添加路徑都會(huì)根據(jù)路徑的權(quán)重值排序,使得路徑根據(jù)權(quán)重值按升序排列。

    在Linux內(nèi)核3.19中,搜索函數(shù)metronomefb_probe與mac_address_string之間的調(diào)用路徑,通過統(tǒng)計(jì)得到不同K值時(shí)所需時(shí)間如圖1所示。

    圖1 不同K值下搜索兩個(gè)函數(shù)間的路徑關(guān)系所需時(shí)間

    實(shí)驗(yàn)中機(jī)器配置如下:64位windows7操作系統(tǒng), 4.00 GHz的Intel(R) Core(TM) i7-4790K處理器,8 GB內(nèi)存。由圖1可以看出K值為10時(shí),所需搜索時(shí)間將近達(dá)到70秒,搜索性能比較差,并行化是一個(gè)降低時(shí)間復(fù)雜度的好方法,因此,本文對(duì)Yen算法進(jìn)行了并行化優(yōu)化。

    獲得兩個(gè)結(jié)點(diǎn)間的第K條最短路徑主要是將第K-1條路徑上除了終止結(jié)點(diǎn)之外的每個(gè)結(jié)點(diǎn)作為偏離結(jié)點(diǎn),再計(jì)算偏離結(jié)點(diǎn)到終止結(jié)點(diǎn)之間的最短路徑。即將Pk-1中除了終止結(jié)點(diǎn)t之外的任何結(jié)點(diǎn)作為偏離結(jié)點(diǎn)v,計(jì)算每個(gè)偏離結(jié)點(diǎn)v到終止結(jié)點(diǎn)t的最短路徑。根據(jù)分析,在求解第K條最短路徑的過程中,每次求解偏離結(jié)點(diǎn)到終止結(jié)點(diǎn)的過程是兩個(gè)相對(duì)獨(dú)立的過程。因此本文使用多線程并行計(jì)算一條路徑中的每個(gè)偏離結(jié)點(diǎn)到終止結(jié)點(diǎn)間的最短路徑,這樣可以充分利用多核CPU的并行優(yōu)勢(shì),提高搜索性能。并行優(yōu)化后的Yen算法的偽代碼:

    Input:G(V,E):weighteddirectedgraph,withsetof verticesVandsetofdirectededgesE; s:thesourcenode; t:thedestinationnode; K:thenumberofshortestpathstofind;1 A[0]←Dijkstr(G,s,t);2 B←[];3 fork=1toK:4 fori=0tosize(A[k-1])-2:5 pool.execute(YenCandidatesPath(A,i,k,t,G,B));6 ifalltaskshavecompleted:7 A[k]←B[0];8 returnA;YenCandidatesPath(A,i,k,t,G,B):1 graph=G.clone();2 vNode←A[k-1].node(i);3 rootPath←A[k-1].nodes(0,i);4 foreachpathp∈A:5 ifrootPath==p.nodes(0,i):6 graph.remove(p.edge(i,i+1));7 foreachnode∈rootPath:8 ifnode!=vNode:9 graph.remove(rootPathNode);10 spurPath←Dijkstra(graph,vNode,t);11 totalPath←rootPath+spurPath;12 synchronized(obj):13 B.a(chǎn)ppend(totalPath);

    算法主要思想基本是將第K-1條路徑上每個(gè)偏離結(jié)點(diǎn)提交一個(gè)任務(wù)(偽代碼中第4~5行),計(jì)算其到終止結(jié)點(diǎn)的最短路徑。等到所有任務(wù)執(zhí)行完畢,再從當(dāng)前所有候選路徑中選擇一條最短的路徑,即為第K條最短路徑。

    計(jì)算每個(gè)偏離結(jié)點(diǎn)到終止結(jié)點(diǎn)的過程中主要的數(shù)據(jù)共享有:A、B、t、G。A:此表用于存儲(chǔ)前K-1條漸次短路徑。B:用于存儲(chǔ)候選路徑的列表。t:終止結(jié)點(diǎn)。G:可以表示函數(shù)之間調(diào)用關(guān)系的有向圖,由于每次計(jì)算都需要沒有刪除過任何邊的圖G,所以在并行化中每次計(jì)算之前要將圖G做深度復(fù)制。

    2.2 函數(shù)調(diào)用關(guān)系分析及可視化

    對(duì)于大型復(fù)雜軟件,通過傳統(tǒng)的文本閱讀來理解復(fù)雜的函數(shù)調(diào)用關(guān)系比較困難,而可視化工具在代碼分析的基礎(chǔ)之上,形成了對(duì)代碼的部分抽象表示,可以加速程序員對(duì)代碼的理解。我們已經(jīng)實(shí)現(xiàn)一個(gè)內(nèi)核的可視化工具——KernelGraph,KerneGraph參照在線地圖服務(wù),是利用可視化技術(shù)實(shí)現(xiàn)的一個(gè)大規(guī)模代碼理解工具。KernelGraph既可以從全局顯示模塊之間的關(guān)系,以及已有模塊中含有bug的百分比,也可以進(jìn)行函數(shù)、變量搜索,函數(shù)調(diào)用路徑搜索等。函數(shù)調(diào)用路徑搜索是KernelGraph的一個(gè)重要功能。

    Echarts[11]中力導(dǎo)圖可以清晰的顯示各個(gè)結(jié)點(diǎn)之間的關(guān)系,KernelGraph利用力導(dǎo)圖這一特點(diǎn)顯示函數(shù)和函數(shù)之間的調(diào)用關(guān)系,如圖2所示。

    圖2 函數(shù)之間的路徑搜索結(jié)果及其可視化表示

    圖2顯示了函數(shù)metronomefb_probe與mac_address_string之間的函數(shù)調(diào)用路徑的搜索結(jié)果,圖中清晰地表達(dá)了函數(shù)之間的調(diào)用關(guān)系。

    3 實(shí)驗(yàn)結(jié)果分析

    在獲取函數(shù)調(diào)用關(guān)系的過程中,首先我們使用 Doxygen[12]來解析Linux內(nèi)核3.19[13]的源碼。Doxygen可以在內(nèi)核代碼的預(yù)處理過程中,從每個(gè)源文件中提取代碼結(jié)構(gòu)并輸出一個(gè)XML文件。這些XML是源碼的結(jié)構(gòu)化數(shù)據(jù),包含函數(shù)之間的調(diào)用關(guān)系。然后通過提取XML中關(guān)于源碼的函數(shù),以及函數(shù)之間的調(diào)用關(guān)系,得到可以表達(dá)函數(shù)之間調(diào)用關(guān)系的link文件。

    解析Linux內(nèi)核3.19得到的 link文件中有40多萬個(gè)結(jié)點(diǎn),110多萬條邊,結(jié)點(diǎn)表示函數(shù),邊表示兩個(gè)函數(shù)之間的調(diào)用關(guān)系。獲取兩個(gè)函數(shù)之間的前K條漸次短路徑,需要設(shè)定一個(gè)合理的K值。本文針對(duì)函數(shù)結(jié)點(diǎn)metronomefb_probe與mac_address_string之間的調(diào)用關(guān)系,統(tǒng)計(jì)在設(shè)定不同的K值下搜索所需的時(shí)間,實(shí)驗(yàn)結(jié)果如圖3所示。

    圖3 不同K值路徑搜索所需時(shí)間

    通過實(shí)驗(yàn)數(shù)據(jù)表明,在串行算法和并行算法中搜索時(shí)間與K值都是成線性比例關(guān)系。K值過大,需要搜索時(shí)間過長,影響用戶體驗(yàn),K值過小,又無法得到用戶所需的調(diào)用路徑。因此設(shè)定一個(gè)合理的K值顯得尤為重要。

    為了獲得一個(gè)合理的K值,首先解析了Linux內(nèi)核源碼中的Kernel文件夾,得到一個(gè)可以表示Kernel文件夾中函數(shù)之間調(diào)用關(guān)系的link文件,文件中包含5 850個(gè)結(jié)點(diǎn),10 940個(gè)邊。再通過分析5 850個(gè)結(jié)點(diǎn)中每個(gè)結(jié)點(diǎn)與其他結(jié)點(diǎn)之間的調(diào)用關(guān)系,最后統(tǒng)計(jì)出在Kernel文件夾中所有調(diào)用路徑條數(shù)的可能值,如圖4所示。

    圖4 Kernel文件夾中兩個(gè)函數(shù)之間調(diào)用關(guān)系的路徑條數(shù)的數(shù)量

    由圖4可以得到,在Kernel文件夾中,函數(shù)之間的調(diào)用路徑條數(shù)分別為6和12時(shí),數(shù)量值急速下降。因此,在設(shè)置K值,一般推薦值為6或者12,或者選擇相近值作為查找路徑的上限。

    通過對(duì)Yen算法并行優(yōu)化之后,搜索所需時(shí)間顯著降低。通過對(duì)Linux內(nèi)核3.19進(jìn)行實(shí)驗(yàn)統(tǒng)計(jì),分別設(shè)置K值為1~10,搜索函數(shù)結(jié)點(diǎn)metronomefb_probe與mac_address_string之間的路徑,得出實(shí)驗(yàn)數(shù)據(jù)如圖5所示。

    圖5 獲取前K條漸次短路徑并行算法加速比

    由于K值為1時(shí),直接調(diào)用Dijkstr算法獲得最短路徑,所以不論算法優(yōu)化之前還是優(yōu)化之后,搜索所需時(shí)間一樣。

    4 結(jié) 語

    隨著軟件技術(shù)的發(fā)展,軟件代碼規(guī)模日益增大,函數(shù)調(diào)用關(guān)系也越來越復(fù)雜。為保證用戶可以獲得大型復(fù)雜系統(tǒng)中兩個(gè)函數(shù)之間的調(diào)用關(guān)系,本文使用并行化優(yōu)化后的K-最短路徑算法,對(duì)函數(shù)調(diào)用關(guān)系進(jìn)行分析,并且將函數(shù)調(diào)用關(guān)系用Echarts中的力導(dǎo)圖做可視化展示,使得用戶可以得到兩個(gè)函數(shù)之間前K條漸次短路徑的簡潔直觀圖。當(dāng)然,目前的工作還有一些需要改進(jìn)的部分,比如源碼解析中,Doxygen不能完全解析出所有函數(shù)調(diào)用關(guān)系。主要是由于大量的預(yù)處理指令沒有被Doxygen正確識(shí)別和處理,例如宏定義和條件編譯。經(jīng)過分析Linux內(nèi)核3.19的trace動(dòng)態(tài)運(yùn)行結(jié)果得到大約有9 000多個(gè)(已識(shí)別的函數(shù)調(diào)用關(guān)系有110多萬)函數(shù)調(diào)用關(guān)系丟失。在將來工作中,我們將使用特殊的預(yù)處理程序和工業(yè)級(jí)的編譯器配合完成源代碼的解析,獲取在不同預(yù)處理?xiàng)l件下函數(shù)之間的關(guān)系。

    [1] 蔣湘濤,胡志剛,賀建飚. 基于調(diào)用鏈分析的低功耗編譯優(yōu)化[J]. 吉林大學(xué)學(xué)報(bào)(工),2009,39(1):145-149.

    [2] 時(shí)磊,王紅梅. 基于調(diào)用鏈分析的訪存優(yōu)化技術(shù)[J]. 微電子學(xué)與計(jì)算機(jī),2012,29(7):32-34.

    [3] 鄭錦勤,牟永敏. 基于函數(shù)調(diào)用路徑的回歸測(cè)試用例選擇排序方法研究[J].計(jì)算機(jī)應(yīng)用研究,2016,33(7):2063-2067.

    [4] 馮國堯. 基于函數(shù)調(diào)用的路徑集成測(cè)試模型研究[J]. 電子世界,2015(20):19-20.

    [5] 江夢(mèng)濤,荊琦. C語言靜態(tài)代碼分析中的調(diào)用關(guān)系提取方法[J]. 計(jì)算機(jī)科學(xué),2014,41(S1):442-444.

    [6] 孫衛(wèi)真,杜香燕,向勇,等. 基于RTL的函數(shù)調(diào)用圖生成工具CG·RTL[J]. 小型微型計(jì)算機(jī)系統(tǒng),2014,35(3):555-559.

    [7] 向勇,湯衛(wèi)東,杜香燕,等. 基于內(nèi)核跟蹤的動(dòng)態(tài)函數(shù)調(diào)用圖生成方法[J].計(jì)算機(jī)應(yīng)用研究, 2015, 32(4):1095-1099.

    [8] 賈狄,向勇,孫衛(wèi)真,等. 基于數(shù)據(jù)庫的在線函數(shù)調(diào)用圖工具[J].小型微型計(jì)算機(jī)系統(tǒng), 2016, 37(3):422-427.

    [9] Hershberger J, Maxel M, Suri S. Finding the k Shortest Simple Paths: A New Algorithm and its Implementaton[J]. ACM, 2007, 3(4):45.

    [10] 徐濤,丁曉璐,李建伏. K最短路徑算法綜述[J]. 計(jì)算機(jī)工程與設(shè)計(jì),2013,34(11):3900-3906.

    [11] Echarts[DB/OL].2016. http://echarts.baidu.com.cn/.

    [12] Doxygen[DB/OL].2016. http://www.doxygen.org/.

    [13] Linux kernel archives[DB/OL].2016. https://www.kernel.org/.

    [14] The interactive map linux kernel[DB/OL].April 2016. http://www.makelinux.com/kernel_map/intro.

    [15] 張素智,張琳,曲旭凱.基于最短路徑的加權(quán)屬性圖聚類算法研究[J].計(jì)算機(jī)應(yīng)用與軟件,2016,33(11):212-214,281.

    [16] 丁德武. Linux內(nèi)核函數(shù)調(diào)用關(guān)系的復(fù)雜網(wǎng)絡(luò)分析[J]. 池州學(xué)院學(xué)報(bào),2012(6):1-3.

    [17] 邱釗. K最短路徑算法及其應(yīng)用研究[D].電子科技大學(xué), 2014.

    [18] 于汶雨. K最短路徑問題的研究與應(yīng)用[D].南京郵電大學(xué),2016.

    [19] 張鐘. 大規(guī)模圖上的最短路徑問題研究[D].中國科學(xué)技術(shù)大學(xué),2014.

    [20] 趙禮峰,于汶雨. 求解k最短路徑問題的混合遺傳算法[J]. 計(jì)算機(jī)技術(shù)與發(fā)展,2016,26(10):32-35

    [21] 苗磊,陳莉君. 基于靜態(tài)分析的函數(shù)調(diào)用關(guān)系研究[J].計(jì)算機(jī)與數(shù)字工程,2014,42(9):1653-1656.

    [22] 王增平,姚玉海,張首魁,等. 基于k最短路徑算法的負(fù)荷停電風(fēng)險(xiǎn)在線評(píng)估[J]. 電力自動(dòng)化設(shè)備, 2016,36(1):1-5.

    [23] George H Polychronopoulos.Stochastic Shorten Path Problems with Recourse[J]. Networks, 1996, 27(2):133-143.

    [24] Ctags[DB/OL],2016. http://ctags.sourceforge.net/.

    [25] Cscope[DB/OL].2016.http://cscope.sourceforge.net/.

    ANALYSYSOFLARGE-SCALEFUNCTIONCALLRELATIONBASEDONK-SHORTESTPATH

    Zhang Jingjing Shi Jianjun Gao Yujin Ji Weixing

    (SchoolofComputerScienceandTechnology,BeijingInstituteofTechnology,Beijing100081,China)

    The function call relationship reflects the dependency between the functions in software system, and has been widely used in much software engineering fields, such as software analysis, software testing and software maintenance. However, in large complex software search between the two functions of the call relationship, due to the large number of functions, calls between the complex relationships, making the search takes longer. In order to obtain the calling path between any two functions, we proposed to use K-shortest path algorithm and optimize the K-shortest path algorithm to reduce the search time, which was convenient for users to analyze the function call relationship. Through the analysis of Linux kernel 3.19 (including more than 400,000 function nodes and 110 million call relationships), the experimental results showed that through the parallel optimization, parallel speed was 5~6 times than the average.

    Function call relationship K-shortest Path search Linux kernel

    2017-03-05。張晶晶,碩士生,主研領(lǐng)域:代碼分析可視化。石劍君,博士生。高玉金,講師。計(jì)衛(wèi)星,副教授。

    TP3

    A

    10.3969/j.issn.1000-386x.2017.12.005

    猜你喜歡
    函數(shù)調(diào)用源碼結(jié)點(diǎn)
    基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
    基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
    基于C語言的數(shù)學(xué)菜單的設(shè)計(jì)與實(shí)現(xiàn)
    企業(yè)如何保護(hù)源碼
    基于函數(shù)調(diào)用序列模式和函數(shù)調(diào)用圖的程序缺陷檢測(cè)方法*
    Ladyzhenskaya流體力學(xué)方程組的確定模與確定結(jié)點(diǎn)個(gè)數(shù)估計(jì)
    探討C++編程中避免代碼冗余的技巧
    Unity3D項(xiàng)目腳本優(yōu)化分析與研究
    中國新通信(2017年1期)2017-03-08 03:12:21
    基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
    基于Raspberry PI為結(jié)點(diǎn)的天氣云測(cè)量網(wǎng)絡(luò)實(shí)現(xiàn)
    久久久久免费精品人妻一区二区| 午夜福利视频1000在线观看| 国产午夜福利久久久久久| 国产成人a∨麻豆精品| 国产精品久久久久久亚洲av鲁大| 搡老熟女国产l中国老女人| 国产白丝娇喘喷水9色精品| 午夜久久久久精精品| 国产精品爽爽va在线观看网站| 国内精品一区二区在线观看| 亚洲婷婷狠狠爱综合网| 少妇高潮的动态图| 99热全是精品| 亚洲最大成人av| 国产真实伦视频高清在线观看| 免费av观看视频| 可以在线观看的亚洲视频| 国产成年人精品一区二区| 国内精品美女久久久久久| 国产色爽女视频免费观看| 在线看三级毛片| 午夜a级毛片| 日本成人三级电影网站| 欧美色欧美亚洲另类二区| 岛国在线免费视频观看| 99热只有精品国产| 午夜免费男女啪啪视频观看 | or卡值多少钱| 2021天堂中文幕一二区在线观| 国产精品99久久久久久久久| 国产在视频线在精品| 成人特级黄色片久久久久久久| 精品国产三级普通话版| 久久久久国产网址| 国产乱人偷精品视频| 男女之事视频高清在线观看| 成人毛片a级毛片在线播放| 欧美+日韩+精品| 中文字幕人妻熟人妻熟丝袜美| 一进一出抽搐动态| 日本免费a在线| 国产精品一及| 婷婷六月久久综合丁香| 搞女人的毛片| 午夜爱爱视频在线播放| 亚洲精品粉嫩美女一区| 精品人妻偷拍中文字幕| 99久久成人亚洲精品观看| 男女之事视频高清在线观看| 一进一出好大好爽视频| 国产免费一级a男人的天堂| 日日摸夜夜添夜夜添av毛片| 亚洲第一电影网av| 秋霞在线观看毛片| 久久韩国三级中文字幕| 免费电影在线观看免费观看| 国产白丝娇喘喷水9色精品| 真实男女啪啪啪动态图| 插阴视频在线观看视频| 日韩欧美 国产精品| 久久久国产成人精品二区| 亚洲国产欧美人成| 美女大奶头视频| av在线蜜桃| 国产精品久久久久久久电影| 成人永久免费在线观看视频| 99久久成人亚洲精品观看| 亚洲精品国产av成人精品 | av卡一久久| 久久国产乱子免费精品| 亚洲中文字幕日韩| 久久久久久久久中文| 国产精品久久电影中文字幕| 国产片特级美女逼逼视频| 99国产精品一区二区蜜桃av| 亚洲国产欧美人成| 啦啦啦观看免费观看视频高清| 最近最新中文字幕大全电影3| 好男人在线观看高清免费视频| 最近视频中文字幕2019在线8| avwww免费| 国产免费一级a男人的天堂| 国产精品不卡视频一区二区| 午夜福利成人在线免费观看| 国产美女午夜福利| 岛国在线免费视频观看| 五月玫瑰六月丁香| 日本色播在线视频| 男女啪啪激烈高潮av片| 九九在线视频观看精品| 国产成人一区二区在线| 男女那种视频在线观看| 久久人妻av系列| 欧美极品一区二区三区四区| 国产成人影院久久av| 综合色丁香网| 波多野结衣高清作品| 在线观看av片永久免费下载| 91狼人影院| 观看免费一级毛片| 国产精品一区www在线观看| 99久久无色码亚洲精品果冻| 91久久精品国产一区二区三区| 久久精品国产清高在天天线| av在线观看视频网站免费| 1000部很黄的大片| 人人妻人人澡人人爽人人夜夜 | 亚洲最大成人av| 久久这里只有精品中国| 中文字幕av成人在线电影| 久久久久国产精品人妻aⅴ院| 校园春色视频在线观看| 午夜精品在线福利| 午夜福利在线观看吧| 亚洲国产欧美人成| 亚洲av美国av| 亚洲成人中文字幕在线播放| 国产三级中文精品| 日本-黄色视频高清免费观看| 天天一区二区日本电影三级| h日本视频在线播放| 亚洲精品亚洲一区二区| 欧美日韩一区二区视频在线观看视频在线 | 精品人妻偷拍中文字幕| 我的老师免费观看完整版| 国产高清不卡午夜福利| 亚洲第一区二区三区不卡| 不卡一级毛片| 人人妻人人澡人人爽人人夜夜 | АⅤ资源中文在线天堂| 国产高清视频在线播放一区| 亚洲av五月六月丁香网| 国产伦在线观看视频一区| 99热这里只有精品一区| 51国产日韩欧美| 亚洲aⅴ乱码一区二区在线播放| 99热只有精品国产| 亚洲成人精品中文字幕电影| 亚洲最大成人中文| 精品一区二区三区av网在线观看| 久久国内精品自在自线图片| 亚洲av成人av| 午夜福利高清视频| 97超碰精品成人国产| 久久久a久久爽久久v久久| 国产av一区在线观看免费| 精品午夜福利视频在线观看一区| 精品无人区乱码1区二区| 99久久精品国产国产毛片| 久久午夜亚洲精品久久| 成年免费大片在线观看| 亚洲av不卡在线观看| 免费人成在线观看视频色| 免费看光身美女| 亚洲精品日韩av片在线观看| 免费av毛片视频| 一区福利在线观看| 免费电影在线观看免费观看| 国产精品一及| 五月玫瑰六月丁香| 91在线精品国自产拍蜜月| 别揉我奶头~嗯~啊~动态视频| 给我免费播放毛片高清在线观看| 男插女下体视频免费在线播放| 麻豆精品久久久久久蜜桃| 国产精品电影一区二区三区| 不卡一级毛片| 亚洲av.av天堂| 天美传媒精品一区二区| 欧美成人精品欧美一级黄| 亚洲av中文字字幕乱码综合| 亚洲三级黄色毛片| 熟妇人妻久久中文字幕3abv| 国产高潮美女av| 亚洲欧美成人综合另类久久久 | 51国产日韩欧美| 可以在线观看的亚洲视频| 老司机午夜福利在线观看视频| 可以在线观看毛片的网站| 搡老熟女国产l中国老女人| 91久久精品电影网| 国产精品福利在线免费观看| 99国产极品粉嫩在线观看| 久久国产乱子免费精品| 久久人人爽人人爽人人片va| 有码 亚洲区| 日本爱情动作片www.在线观看 | 亚洲国产精品合色在线| 亚洲人成网站在线播放欧美日韩| 永久网站在线| 在线观看av片永久免费下载| 亚洲乱码一区二区免费版| 国产蜜桃级精品一区二区三区| 黑人高潮一二区| 岛国在线免费视频观看| 一进一出抽搐动态| 精品人妻一区二区三区麻豆 | 少妇熟女aⅴ在线视频| 免费av不卡在线播放| av福利片在线观看| 成年版毛片免费区| 国产午夜精品论理片| 人人妻人人看人人澡| 久久久精品大字幕| 国产av一区在线观看免费| 啦啦啦观看免费观看视频高清| 又黄又爽又刺激的免费视频.| 亚洲美女搞黄在线观看 | 一进一出抽搐gif免费好疼| 免费观看在线日韩| 三级男女做爰猛烈吃奶摸视频| 国产伦在线观看视频一区| 老师上课跳d突然被开到最大视频| 国产精品久久久久久久久免| 日本一二三区视频观看| 久久久久九九精品影院| av在线播放精品| 亚洲无线在线观看| 亚洲av美国av| 3wmmmm亚洲av在线观看| 久久久久久九九精品二区国产| 亚洲精品日韩在线中文字幕 | 成人鲁丝片一二三区免费| 色哟哟·www| 99在线人妻在线中文字幕| 亚洲国产欧美人成| 久久久久久久午夜电影| 亚洲综合色惰| 99热只有精品国产| 久久久久久国产a免费观看| 男女边吃奶边做爰视频| 国产精品久久久久久精品电影| avwww免费| 97人妻精品一区二区三区麻豆| 国产老妇女一区| 国产午夜福利久久久久久| 插逼视频在线观看| 亚洲中文字幕一区二区三区有码在线看| 精品不卡国产一区二区三区| 三级男女做爰猛烈吃奶摸视频| 日韩国内少妇激情av| 免费无遮挡裸体视频| 你懂的网址亚洲精品在线观看 | 欧美一区二区亚洲| 国产精品久久久久久av不卡| 毛片女人毛片| 亚洲国产精品久久男人天堂| 国产久久久一区二区三区| 啦啦啦啦在线视频资源| 国产精品永久免费网站| 久久99热6这里只有精品| 大又大粗又爽又黄少妇毛片口| 中文资源天堂在线| 网址你懂的国产日韩在线| 亚洲av二区三区四区| 我的老师免费观看完整版| 深夜a级毛片| 91久久精品国产一区二区三区| 俺也久久电影网| 国产v大片淫在线免费观看| 人妻制服诱惑在线中文字幕| 精品不卡国产一区二区三区| 一区二区三区高清视频在线| 日本色播在线视频| 国产欧美日韩精品亚洲av| 乱人视频在线观看| 麻豆成人午夜福利视频| 中出人妻视频一区二区| 国内精品久久久久精免费| 日本熟妇午夜| 两个人的视频大全免费| 国产 一区精品| 久久中文看片网| a级毛片a级免费在线| 亚洲七黄色美女视频| 午夜福利视频1000在线观看| 一级黄片播放器| 亚洲精品乱码久久久v下载方式| 日日摸夜夜添夜夜添小说| 成年版毛片免费区| 国内少妇人妻偷人精品xxx网站| 日韩欧美精品v在线| 亚洲熟妇中文字幕五十中出| 欧美性猛交╳xxx乱大交人| av女优亚洲男人天堂| 欧美极品一区二区三区四区| 精品久久久噜噜| 国产高清不卡午夜福利| 国产精品无大码| 综合色av麻豆| 久久精品夜色国产| 亚洲av中文字字幕乱码综合| 精品一区二区三区视频在线观看免费| 亚洲成人精品中文字幕电影| 在线免费观看的www视频| 久久综合国产亚洲精品| 亚洲欧美清纯卡通| 极品教师在线视频| a级一级毛片免费在线观看| 成人永久免费在线观看视频| 日日摸夜夜添夜夜添小说| 久久久欧美国产精品| 久久精品91蜜桃| 91久久精品电影网| 国产伦精品一区二区三区视频9| 日韩制服骚丝袜av| 狠狠狠狠99中文字幕| 少妇人妻精品综合一区二区 | 亚洲av免费在线观看| 激情 狠狠 欧美| 亚洲欧美日韩卡通动漫| 成人av在线播放网站| 亚洲av成人精品一区久久| 国产极品精品免费视频能看的| 亚洲自拍偷在线| 日韩三级伦理在线观看| 舔av片在线| 欧美3d第一页| 啦啦啦观看免费观看视频高清| 欧美人与善性xxx| 日韩欧美 国产精品| 深夜精品福利| 久久久久九九精品影院| 精品久久久久久久久久久久久| 亚洲欧美日韩东京热| 久久热精品热| 精品一区二区免费观看| 露出奶头的视频| 最后的刺客免费高清国语| 日韩亚洲欧美综合| 国产片特级美女逼逼视频| 亚洲国产色片| 午夜福利成人在线免费观看| 亚洲国产精品久久男人天堂| 成人一区二区视频在线观看| 一个人看视频在线观看www免费| 国产精品亚洲一级av第二区| 亚洲成人av在线免费| 日产精品乱码卡一卡2卡三| 亚洲av免费在线观看| 嫩草影院新地址| 男女那种视频在线观看| 日本色播在线视频| 国产精品嫩草影院av在线观看| 亚洲人成网站在线观看播放| 日韩欧美精品v在线| 亚洲国产精品成人综合色| 99热精品在线国产| 亚洲人成网站在线播放欧美日韩| 国产极品精品免费视频能看的| 欧美日本亚洲视频在线播放| 97人妻精品一区二区三区麻豆| 国产成人91sexporn| 国产精品三级大全| 日韩高清综合在线| 色视频www国产| 免费人成在线观看视频色| 精品福利观看| 亚洲精品日韩av片在线观看| 欧美日韩精品成人综合77777| 国产精品一区二区三区四区久久| 夜夜爽天天搞| 欧美丝袜亚洲另类| 中文字幕免费在线视频6| 成人美女网站在线观看视频| 黄色配什么色好看| 国产三级中文精品| 久久久久久伊人网av| 日日干狠狠操夜夜爽| av在线亚洲专区| 国产精品久久久久久久电影| 国产成人91sexporn| 欧美xxxx黑人xx丫x性爽| 中文字幕免费在线视频6| 国产精品人妻久久久久久| 不卡一级毛片| 精品一区二区免费观看| 久久6这里有精品| 欧美中文日本在线观看视频| 小蜜桃在线观看免费完整版高清| 国产成人精品久久久久久| 久久精品国产清高在天天线| av视频在线观看入口| 精品午夜福利视频在线观看一区| 欧美日韩国产亚洲二区| 国产精品久久久久久亚洲av鲁大| 亚洲内射少妇av| 国产精品嫩草影院av在线观看| 国内久久婷婷六月综合欲色啪| 内射极品少妇av片p| 蜜臀久久99精品久久宅男| 久久人人爽人人爽人人片va| 一本久久中文字幕| 最近最新中文字幕大全电影3| 国产爱豆传媒在线观看| 国产一区二区三区在线臀色熟女| 亚洲一区高清亚洲精品| 99久久九九国产精品国产免费| 日本 av在线| 亚洲精品国产av成人精品 | 久久精品国产亚洲av天美| 午夜福利在线观看吧| 午夜久久久久精精品| 国产精品国产高清国产av| 免费人成在线观看视频色| 国产爱豆传媒在线观看| 99九九线精品视频在线观看视频| 成年免费大片在线观看| 国产精品国产高清国产av| 久久久久久伊人网av| 99久久精品国产国产毛片| 免费观看精品视频网站| 嫩草影视91久久| 一夜夜www| 国产精品久久电影中文字幕| 国产白丝娇喘喷水9色精品| 久久国产乱子免费精品| 国产精品女同一区二区软件| 亚洲av电影不卡..在线观看| 在线播放无遮挡| 日韩欧美精品v在线| 偷拍熟女少妇极品色| 欧洲精品卡2卡3卡4卡5卡区| 国产免费一级a男人的天堂| 噜噜噜噜噜久久久久久91| 一卡2卡三卡四卡精品乱码亚洲| 免费在线观看影片大全网站| 国产欧美日韩精品亚洲av| 狂野欧美白嫩少妇大欣赏| 91狼人影院| 美女大奶头视频| 亚洲精品久久国产高清桃花| 人妻丰满熟妇av一区二区三区| ponron亚洲| 亚洲性夜色夜夜综合| 女人十人毛片免费观看3o分钟| 熟女人妻精品中文字幕| 亚洲精华国产精华液的使用体验 | 女人十人毛片免费观看3o分钟| 成人二区视频| 亚洲中文字幕日韩| 男女下面进入的视频免费午夜| 亚洲欧美清纯卡通| 欧美+日韩+精品| 成人国产麻豆网| 国产黄色视频一区二区在线观看 | 国产成人91sexporn| 国产麻豆成人av免费视频| 18+在线观看网站| 91麻豆精品激情在线观看国产| 男人和女人高潮做爰伦理| 国产亚洲精品综合一区在线观看| 麻豆久久精品国产亚洲av| 久久久久久大精品| 直男gayav资源| 国产精品久久久久久亚洲av鲁大| 露出奶头的视频| 啦啦啦啦在线视频资源| 国产精品亚洲一级av第二区| 亚洲精品日韩av片在线观看| 观看美女的网站| 国产乱人偷精品视频| 亚洲激情五月婷婷啪啪| 中国美女看黄片| 国产色婷婷99| 精品人妻视频免费看| 国产成人a∨麻豆精品| 在线国产一区二区在线| 久久精品夜夜夜夜夜久久蜜豆| 99riav亚洲国产免费| 日本在线视频免费播放| 亚洲经典国产精华液单| 日韩欧美三级三区| 高清毛片免费观看视频网站| 国产aⅴ精品一区二区三区波| 精品不卡国产一区二区三区| 国产高清激情床上av| 六月丁香七月| 精品人妻一区二区三区麻豆 | 麻豆一二三区av精品| 22中文网久久字幕| 久久久久久国产a免费观看| av女优亚洲男人天堂| 国产伦一二天堂av在线观看| 草草在线视频免费看| 欧美成人免费av一区二区三区| 亚洲精品一卡2卡三卡4卡5卡| 日本爱情动作片www.在线观看 | 在线观看免费视频日本深夜| 美女xxoo啪啪120秒动态图| 人妻久久中文字幕网| 人人妻,人人澡人人爽秒播| 嫩草影院入口| 精品少妇黑人巨大在线播放 | 婷婷六月久久综合丁香| 男人和女人高潮做爰伦理| 亚洲丝袜综合中文字幕| 看非洲黑人一级黄片| 少妇猛男粗大的猛烈进出视频 | 久久国产乱子免费精品| 日韩亚洲欧美综合| av在线亚洲专区| 国产欧美日韩精品亚洲av| 日本黄色片子视频| 身体一侧抽搐| 噜噜噜噜噜久久久久久91| 欧美最黄视频在线播放免费| 国产高清激情床上av| 久久久国产成人免费| 在线观看66精品国产| 淫秽高清视频在线观看| 啦啦啦韩国在线观看视频| 99久久精品热视频| 久久久久精品国产欧美久久久| 一进一出抽搐gif免费好疼| 亚洲四区av| 黄色配什么色好看| 亚洲国产高清在线一区二区三| 免费看美女性在线毛片视频| 亚洲欧美精品综合久久99| 国产三级在线视频| 国产精品久久视频播放| 搞女人的毛片| 久久人人爽人人爽人人片va| 一卡2卡三卡四卡精品乱码亚洲| 亚洲中文字幕一区二区三区有码在线看| 狠狠狠狠99中文字幕| 观看免费一级毛片| 一a级毛片在线观看| 精品人妻熟女av久视频| 三级国产精品欧美在线观看| а√天堂www在线а√下载| 午夜视频国产福利| 国产真实伦视频高清在线观看| 亚洲国产色片| 老熟妇乱子伦视频在线观看| 嫩草影院精品99| 国产综合懂色| 99久久中文字幕三级久久日本| 久久久国产成人精品二区| 欧美日本亚洲视频在线播放| 国产亚洲av嫩草精品影院| 婷婷亚洲欧美| 一级毛片电影观看 | 亚洲成a人片在线一区二区| av中文乱码字幕在线| 一级黄片播放器| 嫩草影视91久久| 高清毛片免费观看视频网站| 精品一区二区三区视频在线观看免费| 男女视频在线观看网站免费| 国产高清不卡午夜福利| 亚洲国产精品成人综合色| 九九在线视频观看精品| 毛片女人毛片| 国产熟女欧美一区二区| 亚洲精品影视一区二区三区av| 麻豆一二三区av精品| 九九热线精品视视频播放| 国产久久久一区二区三区| 蜜臀久久99精品久久宅男| 可以在线观看的亚洲视频| 免费av不卡在线播放| 国产一区二区在线av高清观看| 久久久久久久亚洲中文字幕| 久久精品夜夜夜夜夜久久蜜豆| 欧美成人免费av一区二区三区| 欧美+亚洲+日韩+国产| 乱系列少妇在线播放| 精品福利观看| 天美传媒精品一区二区| 国产又黄又爽又无遮挡在线| 高清日韩中文字幕在线| 亚洲国产色片| 男人舔奶头视频| 三级毛片av免费| 在线a可以看的网站| 免费看a级黄色片| 精品欧美国产一区二区三| 精品少妇黑人巨大在线播放 | 亚洲欧美中文字幕日韩二区| 变态另类成人亚洲欧美熟女| 国国产精品蜜臀av免费| 校园春色视频在线观看| 国产精品久久久久久亚洲av鲁大| 1000部很黄的大片| 午夜亚洲福利在线播放| 欧美人与善性xxx| 在线观看美女被高潮喷水网站| 国产激情偷乱视频一区二区| 美女大奶头视频| 欧美成人免费av一区二区三区| 天天躁夜夜躁狠狠久久av| 乱系列少妇在线播放| 三级男女做爰猛烈吃奶摸视频| 国产精品久久久久久av不卡| 人人妻人人看人人澡| 日本精品一区二区三区蜜桃| 又黄又爽又刺激的免费视频.| 久久这里只有精品中国| 国产91av在线免费观看| 婷婷精品国产亚洲av在线| 国产精品久久久久久久久免| 亚洲精品在线观看二区| 一级黄片播放器| 午夜福利在线在线| 国产视频内射| 国产免费一级a男人的天堂| a级毛片免费高清观看在线播放| 大又大粗又爽又黄少妇毛片口| 男人舔女人下体高潮全视频| 欧美成人免费av一区二区三区| 国内精品美女久久久久久| videossex国产| 日本成人三级电影网站|