欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識方法

文檔序號:10654310閱讀:515來源:國知局
基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識方法
【專利摘要】本發(fā)明涉及一種基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識方法。首先通過源碼靜態(tài)分析技術(shù)進(jìn)行詞法分析、語法分析和控制流分析,獲取源碼調(diào)用關(guān)系數(shù)據(jù)和函數(shù)長度數(shù)據(jù),將全部數(shù)據(jù)分類存儲在數(shù)據(jù)庫中;然后根據(jù)獲取的數(shù)據(jù)生成調(diào)用圖,利用復(fù)雜網(wǎng)絡(luò)分析方法進(jìn)行調(diào)用圖節(jié)點(diǎn)指標(biāo)計(jì)算,包括交互度、接近中心性、節(jié)點(diǎn)介數(shù)和函數(shù)長度,最終利用多屬性決策方法進(jìn)行節(jié)點(diǎn)關(guān)鍵程度計(jì)算;然后結(jié)合用戶的需求和數(shù)據(jù)庫中保存的狀態(tài)數(shù)據(jù),利用獲得的函數(shù)調(diào)用圖節(jié)點(diǎn)的關(guān)鍵程度數(shù)據(jù)計(jì)算關(guān)鍵節(jié)點(diǎn)排序和相應(yīng)灰度比例數(shù)據(jù),并進(jìn)行可視化展示。本發(fā)明可快速的在復(fù)雜調(diào)用關(guān)系圖中識別和標(biāo)識出關(guān)鍵節(jié)點(diǎn),顯著提高工作效率。
【專利說明】
基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明設(shè)及復(fù)雜網(wǎng)絡(luò)分析技術(shù),特別設(shè)及函數(shù)調(diào)用關(guān)系圖和關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識 方法,提出了一種實(shí)用的基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識方 法。
【背景技術(shù)】
[0002] 復(fù)雜網(wǎng)絡(luò)即呈現(xiàn)高度復(fù)雜性的網(wǎng)絡(luò),一般認(rèn)為具有小世界特性和無標(biāo)度特性即為 復(fù)雜網(wǎng)絡(luò)。小世界特性描述了復(fù)雜網(wǎng)絡(luò)通常具有很小的特征路徑長度和較大的平均聚集系 數(shù),它掲示了短鏈效應(yīng)普遍存在,如著名的"六度分離"理論。無標(biāo)度特性刻畫了復(fù)雜網(wǎng)絡(luò)的 不均勻復(fù)雜性,節(jié)點(diǎn)和連接呈幕律度分布,即大部分節(jié)點(diǎn)只有少數(shù)連接,而少數(shù)節(jié)點(diǎn)則擁有 大量的連接。復(fù)雜網(wǎng)絡(luò)分析是W數(shù)學(xué)中的圖論為理論基礎(chǔ),大量地應(yīng)用統(tǒng)計(jì)物理學(xué)的方法, 對網(wǎng)絡(luò)的幾何性質(zhì)、形成機(jī)制、演化規(guī)律、結(jié)構(gòu)穩(wěn)定性和動力學(xué)等方面的特性進(jìn)行研究的方 法。其常用的網(wǎng)絡(luò)復(fù)雜性指標(biāo)有度,包括入度(W某頂點(diǎn)為弧頭,終止于該定點(diǎn)的弧的數(shù)目 稱為該頂點(diǎn)的入度)和出度(W某頂點(diǎn)為弧尾,起始于該頂點(diǎn)的弧的數(shù)目稱為該頂點(diǎn)的出 度)。介數(shù),網(wǎng)絡(luò)中所有最短路徑中經(jīng)過該節(jié)點(diǎn)的路徑的數(shù)目占最短路徑總數(shù)的比例。節(jié)點(diǎn) 介數(shù)代表了函數(shù)節(jié)點(diǎn)在軟件執(zhí)行過程中的重要性,節(jié)點(diǎn)介數(shù)越大,其影響的路徑范圍越廣。 本發(fā)明提出的新方法依靠復(fù)雜網(wǎng)絡(luò)分析來獲取函數(shù)調(diào)用關(guān)系圖中關(guān)鍵節(jié)點(diǎn)的排序,并最終 按照實(shí)際需求在給定的調(diào)用關(guān)系圖中進(jìn)行標(biāo)識。
[0003] 函數(shù)調(diào)用關(guān)系圖展示了程序代碼塊之間不同層次的函數(shù)調(diào)用關(guān)系,包括頂層的模 塊間函數(shù)調(diào)用關(guān)系、文件間函數(shù)調(diào)用關(guān)系和底層的函數(shù)調(diào)用關(guān)系。圖中的節(jié)點(diǎn)可代表一個(gè) 模塊、文件或者函數(shù),而邊代表了節(jié)點(diǎn)之間的調(diào)用關(guān)系。函數(shù)調(diào)用關(guān)系圖展示了所有可能執(zhí) 行的路徑,運(yùn)些執(zhí)行路徑在實(shí)際的一次執(zhí)行過程中不會全部發(fā)生。目前利用靜態(tài)分析即可 獲得函數(shù)調(diào)用關(guān)系數(shù)據(jù),現(xiàn)有的生成函數(shù)調(diào)用圖的工具非常之多。運(yùn)些工具基本功能類似, 雖然提供了不同的布局和展示方式,但并沒有標(biāo)識關(guān)鍵節(jié)點(diǎn)的能力,例如Doxygen、CodeVi Z 等。Doxygen作為一個(gè)功能強(qiáng)大的文檔生成工具,除了能根據(jù)注釋生成文檔,還能可視化文 檔間的關(guān)系,提取代碼結(jié)構(gòu)并自動生成依賴圖、協(xié)作圖和函數(shù)調(diào)用關(guān)系圖等。而CodeViz則 利用源代碼編譯過程收集函數(shù)調(diào)用信息,結(jié)合Graphviz可視化工具將調(diào)用數(shù)據(jù)展示出來。 本發(fā)明提出的新方法中對函數(shù)調(diào)用關(guān)系和節(jié)點(diǎn)采用相應(yīng)技術(shù)進(jìn)行進(jìn)一步分析,將識別和標(biāo) 識出其中的關(guān)鍵節(jié)點(diǎn)。
[0004] 本發(fā)明設(shè)及到另一背景是開源軟件的分析問題。由于較為龐大的軟件函數(shù)調(diào)用關(guān) 系圖非常復(fù)雜,泛泛的分析和展示其調(diào)用關(guān)系圖必不能把握其重點(diǎn)和核屯、節(jié)點(diǎn)。而本發(fā)明 的方法可W基于復(fù)雜網(wǎng)絡(luò)分析來識別和標(biāo)識關(guān)鍵節(jié)點(diǎn),也可提供W關(guān)鍵節(jié)點(diǎn)為中屯、的裁剪 和過濾方式,從而使調(diào)用圖體量適中且重點(diǎn)突出,不再讓開發(fā)者依賴個(gè)人經(jīng)驗(yàn)和手工分析。 而軟件多版本升級演化往往設(shè)及到重要BUG的修復(fù)和新功能的增加,在多版本差異對比圖 中利用該方法同樣可W識別和標(biāo)識出關(guān)鍵差異節(jié)點(diǎn),對于用戶版本定制和升級都具有相當(dāng) 重要的意義。另一方面,關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識有助于理解函數(shù)調(diào)用的關(guān)鍵路徑,在漏桐威 脅等級關(guān)聯(lián)性分析W及熱點(diǎn)函數(shù)性能瓶頸分析中應(yīng)用該方法,可W快速收斂到目標(biāo)結(jié)果。 但是,目前還沒有一種方法(或軟件)能夠進(jìn)行模塊或文件調(diào)用/依賴關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識 別和標(biāo)識,更沒有函數(shù)調(diào)用關(guān)系圖、多版本函數(shù)調(diào)用關(guān)系差異圖的關(guān)鍵節(jié)點(diǎn)識別和標(biāo)識能 力。

【發(fā)明內(nèi)容】

[0005] 本發(fā)明的目的在于提供一種基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識 別和標(biāo)識方法。通過運(yùn)種方法可W高效的識別和標(biāo)識出模塊調(diào)用關(guān)系圖、文件依賴關(guān)系圖、 函數(shù)調(diào)用關(guān)系圖、多版本函數(shù)調(diào)用關(guān)系差異圖等調(diào)用圖中的關(guān)鍵節(jié)點(diǎn),為其提供明確的裁 剪和過濾方式,使問題簡單化且重點(diǎn)突出。本發(fā)明能夠?qū)㈤_發(fā)者從繁重的逐行代碼分析和 關(guān)鍵節(jié)點(diǎn)分析工作中解放出來,同時(shí)應(yīng)用于漏桐威脅等級關(guān)聯(lián)性分析W及熱點(diǎn)函數(shù)性能瓶 頸分析等問題中,可W加速相關(guān)分析結(jié)果收斂,引導(dǎo)開發(fā)者輔助定位核屯、問題,顯著提高工 作效率。
[0006] 本發(fā)明的基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識方法,包括 =部分,如圖1所示,第一部分是調(diào)用關(guān)系獲取,第二部分是復(fù)雜網(wǎng)絡(luò)分析,第=部分是關(guān)鍵 節(jié)點(diǎn)標(biāo)識,具體描述如下:
[0007] 1)調(diào)用關(guān)系獲取:通過源碼靜態(tài)分析技術(shù)進(jìn)行詞法分析、語法分析和控制流分析, 獲取源碼調(diào)用關(guān)系,并通過括號匹配分析技術(shù)獲取函數(shù)長度數(shù)據(jù)(即函數(shù)占用的代碼行 數(shù)),將全部數(shù)據(jù)分類存儲在數(shù)據(jù)庫中,利用W上數(shù)據(jù)即可生成調(diào)用圖;
[0008] 2)復(fù)雜網(wǎng)絡(luò)分析:利用復(fù)雜網(wǎng)絡(luò)分析方法進(jìn)行調(diào)用圖節(jié)點(diǎn)指標(biāo)計(jì)算,主要指標(biāo)包 括交互度、接近中屯、性、節(jié)點(diǎn)介數(shù)和函數(shù)長度,最終利用多屬性決策方法進(jìn)行節(jié)點(diǎn)關(guān)鍵程度 計(jì)算;
[0009] 3)關(guān)鍵節(jié)點(diǎn)標(biāo)識:結(jié)合用戶的需求和數(shù)據(jù)庫中保存的狀態(tài)數(shù)據(jù),利用函數(shù)調(diào)用圖 節(jié)點(diǎn)關(guān)鍵程度數(shù)據(jù)計(jì)算關(guān)鍵節(jié)點(diǎn)排序和相應(yīng)灰度比例數(shù)據(jù),并進(jìn)行可視化標(biāo)識。
[0010] 下面對本發(fā)明方法進(jìn)行具體說明。
[0011] 1)調(diào)用關(guān)系獲取
[0012] 調(diào)用關(guān)系獲取階段主要通過源碼靜態(tài)分析技術(shù)進(jìn)行詞法分析、語法分析和控制流 分析等,完成函數(shù)定義和調(diào)用等信息的分析和獲取。本方法從源代碼的編譯過程中獲取函 數(shù)定義和調(diào)用信息,通過括號匹配分析函數(shù)起止行號并計(jì)算出函數(shù)長度數(shù)據(jù)。為了便于后 期的查詢、分析和調(diào)用圖生成,將運(yùn)些數(shù)據(jù)錄入數(shù)據(jù)庫中W下相關(guān)表格中:
[0013] 目錄文件列表:用來記錄源碼目錄和文件路徑。主要包括文件/目錄名稱,所屬版 本倍息等。
[0014] 函數(shù)定義列表:用來記錄所有函數(shù)的定義相關(guān)信息。主要包括函數(shù)名稱,函數(shù)所屬 的文件,函數(shù)的起止行號等。
[0015] 靜態(tài)函數(shù)調(diào)用列表:用來記錄靜態(tài)函數(shù)調(diào)用的相關(guān)信息。主要包括調(diào)用函數(shù)信息, 被調(diào)用函數(shù)信息,W及運(yùn)兩個(gè)函數(shù)所屬的文件等。
[0016] 2)復(fù)雜網(wǎng)絡(luò)分析
[0017] 復(fù)雜網(wǎng)絡(luò)分析階段主要根據(jù)獲取的調(diào)用信息生成調(diào)用圖,利用復(fù)雜網(wǎng)絡(luò)分析的思 想計(jì)算該圖各個(gè)節(jié)點(diǎn)的交互度、接近中屯、性和節(jié)點(diǎn)介數(shù),通過代碼括號匹配分析技術(shù)獲取 節(jié)點(diǎn)函數(shù)長度,并利用多屬性決策方法計(jì)算節(jié)點(diǎn)的最終關(guān)鍵程度。多屬性決策方法即為將 獲取到的節(jié)點(diǎn)交互度、接近中屯、性、節(jié)點(diǎn)介數(shù)和節(jié)點(diǎn)函數(shù)長度信息按不同的權(quán)重系數(shù)加權(quán) 求和,系數(shù)可W根據(jù)人工評估結(jié)果對比調(diào)優(yōu),最終依據(jù)加權(quán)和評估每個(gè)節(jié)點(diǎn)的關(guān)鍵程度。
[0018] 交互度,即綜合考慮出度和入度,其中出度為該節(jié)點(diǎn)調(diào)用其他節(jié)點(diǎn)的次數(shù),入度為 該節(jié)點(diǎn)被調(diào)用的次數(shù)。交互度表征節(jié)點(diǎn)的局部交互程度,WD表示,計(jì)算公式如下,其中X表 示節(jié)點(diǎn)入度、Y表示節(jié)點(diǎn)出度,Xmin表示節(jié)點(diǎn)入度最小值Jmin表示節(jié)點(diǎn)出度最小值,Xmax表 示節(jié)點(diǎn)入度最大值、Ymax表示節(jié)點(diǎn)出度最大值。出度和入度可類比為調(diào)用和被調(diào)用進(jìn)行理 解。整體來講,Xmax、Ymax表示出度和入度的正理想方案;Xmin、化in表示出度和入度的負(fù)理 想方案,公式分子為每個(gè)方案到負(fù)理想方案的距離,分母為每個(gè)方案到負(fù)理想方案的距離 與每個(gè)方案到正理想方案的距離之和。整個(gè)公式計(jì)算結(jié)果表示每個(gè)方案對理想方案的貼近 程度,也可理解為節(jié)點(diǎn)出度與入度接近各自最大值并且遠(yuǎn)離各自最小值的程度。
[0019]
[0020] 接近中屯、性,考慮了節(jié)點(diǎn)間通信的獨(dú)立性,即當(dāng)前節(jié)點(diǎn)與其他節(jié)點(diǎn)通信的可能性 對通信所需中間媒介的最少個(gè)數(shù)的依賴程度,可類比調(diào)用圖數(shù)據(jù)流進(jìn)行理解。假設(shè)du表示 W節(jié)點(diǎn)i為起點(diǎn)j為終點(diǎn)的最短路徑中所含邊的數(shù)量,則節(jié)點(diǎn)i的接近中屯、性可W表示為其 至圓絡(luò)中其他所有節(jié)點(diǎn)距離之和的倒數(shù),具體計(jì)算公式如下,其中CC康示接近中屯、性,N表 示調(diào)用圖中總的節(jié)點(diǎn)個(gè)數(shù),i表示被計(jì)算指標(biāo)的當(dāng)前節(jié)點(diǎn),j表示除當(dāng)前計(jì)算指標(biāo)節(jié)點(diǎn)之外 的其他節(jié)點(diǎn)
[0021]
[0022] 節(jié)點(diǎn)介數(shù)定義為調(diào)用圖中所有最短路徑中經(jīng)過該節(jié)點(diǎn)的路徑的數(shù)目占最短路徑 總數(shù)的比例。介數(shù)反映了相應(yīng)的節(jié)點(diǎn)在整個(gè)調(diào)用圖中的作用和影響力,是一個(gè)重要的全局 幾何量,具體計(jì)算公式如下,Cb(V)表示節(jié)點(diǎn)介數(shù),分子表示圖中任意兩節(jié)點(diǎn)的最短路徑經(jīng) 過該節(jié)點(diǎn)的個(gè)數(shù),分母表示圖中任意兩節(jié)點(diǎn)之間最短路徑個(gè)數(shù)。其中,V表示被計(jì)算介數(shù)指 標(biāo)的當(dāng)前節(jié)點(diǎn),V屬于整個(gè)節(jié)點(diǎn)集合V,S、t表示整個(gè)節(jié)點(diǎn)集合V中其他任意兩個(gè)節(jié)點(diǎn)。
[0023]
[0024] 之后將交互度、接近中屯、性、節(jié)點(diǎn)介數(shù)和如前所述方法計(jì)算得到的函數(shù)長度數(shù)據(jù) 等指標(biāo),利用如前所述的多屬性決策方法進(jìn)行計(jì)算,最終得出加權(quán)和代表節(jié)點(diǎn)的關(guān)鍵程度。
[0025] 3)關(guān)鍵節(jié)點(diǎn)標(biāo)識
[0026] 關(guān)鍵節(jié)點(diǎn)標(biāo)識階段主要完成函數(shù)調(diào)用關(guān)系圖的生成與標(biāo)識。通過分析第一步和第 二步中生成的函數(shù)定義、調(diào)用信息和關(guān)鍵程度數(shù)據(jù),計(jì)算關(guān)鍵節(jié)點(diǎn)排序信息并結(jié)合用戶的 輸入信息Wsvg圖(可縮放矢量圖形)表現(xiàn)出不同層次的函數(shù)調(diào)用關(guān)系及其關(guān)鍵節(jié)點(diǎn),包括 模塊(目錄)級別的調(diào)用信息、文件級別的調(diào)用信息和函數(shù)調(diào)用關(guān)系圖。在圖中用圓型節(jié)點(diǎn) 表示模塊/文件或者函數(shù);用帶有權(quán)值的有向線條表示兩個(gè)節(jié)點(diǎn)之間存在的調(diào)用關(guān)系,調(diào)用 方向與箭頭方式一致,權(quán)值代表調(diào)用次數(shù)。每次可W選擇特定版本的一個(gè)或多個(gè)模塊,一個(gè) 或多個(gè)文件,一個(gè)或多個(gè)文件所包含的函數(shù)進(jìn)行調(diào)用圖可視化和關(guān)鍵節(jié)點(diǎn)標(biāo)識。函數(shù)調(diào)用 關(guān)系圖中關(guān)鍵節(jié)點(diǎn)的具體表現(xiàn)形式有兩種,一種為模塊/文件級節(jié)點(diǎn),另一種為函數(shù)級節(jié) 點(diǎn)。
[0027] a)模塊/文件級節(jié)點(diǎn):
[0028] 為了表示出更加豐富的信息,將模塊/文件級節(jié)點(diǎn)設(shè)置為不同灰度的顏色。白色節(jié) 點(diǎn)代表普通節(jié)點(diǎn)(即沒有被標(biāo)識為關(guān)鍵節(jié)點(diǎn)的一般節(jié)點(diǎn)),灰色節(jié)點(diǎn)代表關(guān)鍵節(jié)點(diǎn),且灰度 越大代表該節(jié)點(diǎn)的關(guān)鍵程度越高。每個(gè)節(jié)點(diǎn)都有統(tǒng)計(jì)數(shù)據(jù),模塊/文件級節(jié)點(diǎn)的關(guān)鍵程度是 其所包含的全體函數(shù)關(guān)鍵程度的加權(quán)平均和,而邊上的權(quán)值則是兩個(gè)節(jié)點(diǎn)所包含的全體函 數(shù)之間調(diào)用關(guān)系的總和。并有開關(guān)菜單來裁剪邊和節(jié)點(diǎn),顯示和隱藏一般或關(guān)鍵節(jié)點(diǎn)數(shù)據(jù), 下一級菜單提供分層展示等。
[0029] b)函數(shù)級節(jié)點(diǎn):
[0030] 同理,為了表示出更加豐富的信息,函數(shù)級節(jié)點(diǎn)也設(shè)置為不同灰度的顏色。白色節(jié) 點(diǎn)代表普通函數(shù)節(jié)點(diǎn)(即沒有被標(biāo)識為關(guān)鍵節(jié)點(diǎn)的一般節(jié)點(diǎn)),灰色節(jié)點(diǎn)代表關(guān)鍵函數(shù)節(jié) 點(diǎn),且灰度越大代表該函數(shù)的關(guān)鍵程度越高。每個(gè)節(jié)點(diǎn)同樣都有統(tǒng)計(jì)數(shù)據(jù),函數(shù)級節(jié)點(diǎn)的關(guān) 鍵程度由如前所述方法算得出,邊的權(quán)值可表示為對應(yīng)兩個(gè)節(jié)點(diǎn)函數(shù)之間調(diào)用次數(shù)的總 和。并有開關(guān)菜單來裁剪邊和節(jié)點(diǎn),函數(shù)調(diào)用關(guān)系圖及其關(guān)鍵節(jié)點(diǎn)標(biāo)識為最低層次的視圖。 [0031 ]本發(fā)明方案的具體的步驟如下:
[0032] 1)調(diào)用關(guān)系獲取,圖5是調(diào)用關(guān)系獲取流程圖,包括:
[0033] la)進(jìn)入復(fù)雜網(wǎng)絡(luò)分析系統(tǒng),查看是否存在待分析的調(diào)用圖版本。
[0034] 化)如果已經(jīng)存在該版本調(diào)用圖,進(jìn)入If ),否則進(jìn)入Ic)。
[0035] Ic)加入對應(yīng)源碼版本的源代碼。
[0036] Id)進(jìn)行源代碼靜態(tài)分析。
[0037] i .遍歷源代碼目錄,獲取代碼中所有文件的相對路徑信息。
[0038] ii .修改源代碼的編譯參數(shù)。
[0039] iii.編譯源碼,生成隱藏函數(shù)定義信息和函數(shù)調(diào)用信息的中間結(jié)果。
[0040] iv.從中間文件中分析出函數(shù)定義和行號等信息。
[0041 ] V.從中間文件中分析出函數(shù)調(diào)用信息。
[0042] Ie)將Id)分析得到的文件路徑信息、函數(shù)定義信息、調(diào)用關(guān)系和函數(shù)長度數(shù)據(jù)入 庫,分別錄入目錄文件列表,函數(shù)定義列表和靜態(tài)調(diào)用列表等,進(jìn)入化)。
[0043] If)進(jìn)行復(fù)雜網(wǎng)絡(luò)分析。
[0044] 2)復(fù)雜網(wǎng)絡(luò)分析,圖6是復(fù)雜網(wǎng)絡(luò)分析流程圖,包括:
[0045] 2a)計(jì)算關(guān)鍵節(jié)點(diǎn)指標(biāo)。
[0046] 2b)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)交互度指標(biāo)數(shù)據(jù),進(jìn)入化),否則進(jìn)入2c)。
[0047] 2c)利用交互度公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2d)。
[004引2d)緩存所有節(jié)點(diǎn)交互度指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入化)。
[0049] 2e)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)接近中屯、性指標(biāo)數(shù)據(jù),進(jìn)入化),否則進(jìn)入2f)。
[0050] 2f)利用接近中屯、性公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2g)。
[0051] 2g)緩存所有節(jié)點(diǎn)接近中屯、性指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入化)。
[0052] 2h)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)介數(shù)指標(biāo)數(shù)據(jù),進(jìn)入化),否則進(jìn)入2i)。
[0053] 2i)利用介數(shù)公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2j)。
[0054] 2j)緩存所有節(jié)點(diǎn)介數(shù)指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入化)。
[0055] 2k)利用多屬性決策方法計(jì)算各節(jié)點(diǎn)的關(guān)鍵程度。
[0056] 3)關(guān)鍵節(jié)點(diǎn)標(biāo)識,圖7是關(guān)鍵節(jié)點(diǎn)標(biāo)識流程圖,包括:
[0057] 3a)根據(jù)已生成的指標(biāo)數(shù)據(jù)和多屬性決策結(jié)果,進(jìn)行節(jié)點(diǎn)的關(guān)鍵程度排序。
[005引3b)如果已經(jīng)生成對應(yīng)調(diào)用圖的節(jié)點(diǎn)關(guān)鍵程度排序數(shù)據(jù),則進(jìn)入3d),否則進(jìn)入 3c)。
[0059] 3c)根據(jù)節(jié)點(diǎn)關(guān)鍵程度排序結(jié)果計(jì)算關(guān)鍵節(jié)點(diǎn)的灰度比例,進(jìn)入3b)。
[0060] 3d)根據(jù)關(guān)鍵節(jié)點(diǎn)灰度比例數(shù)據(jù)生成調(diào)用圖的關(guān)鍵節(jié)點(diǎn)標(biāo)識視圖。
[0061] 本發(fā)明結(jié)合復(fù)雜網(wǎng)絡(luò)分析和調(diào)用圖展示技術(shù),提出了一種實(shí)用的基于復(fù)雜網(wǎng)絡(luò)分 析的函數(shù)調(diào)用關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識方法。該方法通過靜態(tài)分析開源軟件特定版本 源代碼,獲取函數(shù)調(diào)用關(guān)系相關(guān)數(shù)據(jù)并入庫,通過計(jì)算網(wǎng)絡(luò)復(fù)雜性指標(biāo),包括交互度、接近 中屯、性和介數(shù)等指標(biāo)并進(jìn)行自適應(yīng)的多屬性決策來計(jì)算調(diào)用圖中各個(gè)節(jié)點(diǎn)的重要度數(shù)據(jù), 生成相應(yīng)節(jié)點(diǎn)灰度顯示比例,最終使用Graphviz等開源工具按照本發(fā)明的識別和標(biāo)識方法 生成調(diào)用關(guān)系關(guān)鍵節(jié)點(diǎn)標(biāo)識視圖。該發(fā)明及圖形化展示填補(bǔ)了函數(shù)調(diào)用關(guān)系關(guān)鍵節(jié)點(diǎn)識別 及標(biāo)識的空白,克服了關(guān)鍵節(jié)點(diǎn)分析依靠開發(fā)者的個(gè)人經(jīng)驗(yàn)和手工方式效率低下、分析口 檻較高、分析結(jié)果不易存儲等困難。
[0062] 本發(fā)明提出的新方法可快速的在復(fù)雜調(diào)用關(guān)系圖中識別和標(biāo)識出關(guān)鍵節(jié)點(diǎn),可用 于函數(shù)調(diào)用關(guān)系圖按關(guān)鍵節(jié)點(diǎn)的裁剪和過濾,將復(fù)雜而龐大的函數(shù)調(diào)用關(guān)系圖按重要度分 解,使問題簡單化且重點(diǎn)突出。本發(fā)明能夠?qū)㈤_發(fā)者從繁重的關(guān)鍵代碼人工分析和依據(jù)個(gè) 人經(jīng)驗(yàn)的分析工作中解放出來,同時(shí)可應(yīng)用于漏桐威脅等級關(guān)聯(lián)性分析W及熱點(diǎn)函數(shù)性能 瓶頸分析、測試用例排序等問題中,可W結(jié)合節(jié)點(diǎn)重要度和分析目標(biāo),加速相關(guān)分析結(jié)果快 速收斂或引入新的有效分析指標(biāo),引導(dǎo)開發(fā)者快速輔助定位核屯、問題,為開源軟件的分析、 開發(fā)、升級和維護(hù)等問題的部分過程提供高效的輔助方法,顯著提高工作效率。
【附圖說明】
[0063] 圖1是基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用關(guān)系圖關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識流程圖。
[0064] 圖2是調(diào)用關(guān)系獲取流程圖。
[0065] 圖3是復(fù)雜網(wǎng)絡(luò)分析流程圖。
[0066] 圖4是關(guān)鍵節(jié)點(diǎn)標(biāo)識流程圖。
[0067] 圖5、6是實(shí)施例1的函數(shù)調(diào)用示意圖。
[006引圖7、8是實(shí)施例2的函數(shù)調(diào)用示意圖。
【具體實(shí)施方式】
[0069] 下面通過實(shí)施例對本發(fā)明作進(jìn)一步的說明,但不W任何方式限制本發(fā)明的范圍。
[0070] 實(shí)施例1
[0071] 設(shè)定如下使用場景:
[0072] 用戶使用本方法對linux3.5.4源碼中的ipc/msg.c文件中的函數(shù)調(diào)用圖進(jìn)行關(guān)鍵 函數(shù)識別和標(biāo)識。
[0073] 用戶登錄Linux內(nèi)核函數(shù)調(diào)用關(guān)系平臺,并在平臺中選擇選項(xiàng)生成ipc/msg.C文件 內(nèi)函數(shù)調(diào)用關(guān)系,平臺顯示ipc/msg.C文件內(nèi)函數(shù)調(diào)用關(guān)系并生成相應(yīng)數(shù)據(jù)存儲在數(shù)據(jù)庫, 數(shù)據(jù)庫中的數(shù)據(jù)描述了ipc/msg. C中的函數(shù)、函數(shù)之間的靜態(tài)調(diào)用關(guān)系、函數(shù)靜態(tài)調(diào)用次 數(shù)、在網(wǎng)頁中顯示的顏色等信息。數(shù)據(jù)庫中的部分?jǐn)?shù)據(jù)如表1所示:
[0074]表1.數(shù)據(jù)庫中部分?jǐn)?shù)據(jù) 「00751
[0076] 平臺中ipc/msg. C文件的函數(shù)調(diào)用圖如圖5所示。
[0077] 2)用戶選擇關(guān)鍵函數(shù)識別功能,系統(tǒng)按照圖3中的流程進(jìn)行節(jié)點(diǎn)關(guān)鍵程度的計(jì)算, 可W得到函數(shù)節(jié)點(diǎn)的各個(gè)指標(biāo)W及函數(shù)關(guān)鍵程度值,如表2所示:
[0078] 表2.函數(shù)節(jié)點(diǎn)的各個(gè)指標(biāo)W及函數(shù)關(guān)鍵程度值
[0079]
'[0080]~~3)將計(jì)算得出的關(guān)鍵節(jié)點(diǎn)W灰度等級的形式展現(xiàn)出來,修改數(shù)據(jù)庫中ipc/msg. C 文件的節(jié)點(diǎn)顏色,使用修改后的文件展示ipc/msg.C文件內(nèi)函數(shù)調(diào)用關(guān)系如圖6所示,圖中 灰度等級越深代表該函數(shù)節(jié)點(diǎn)在文件中的關(guān)鍵程度越高是較為關(guān)鍵的節(jié)點(diǎn)。ipc/msg. C文 件中最關(guān)鍵的函數(shù)節(jié)點(diǎn)是系統(tǒng)調(diào)用sys_msgctl,用黑色表示;關(guān)鍵程度第二的關(guān)鍵節(jié)點(diǎn)do_ msgrcv,用深灰色表示;其他關(guān)鍵節(jié)點(diǎn)依次用灰度較淺的顏色表示;關(guān)鍵節(jié)點(diǎn)之外的函數(shù)節(jié) 點(diǎn)統(tǒng)一用的淺灰色表示。
[0081 ] 4)為檢驗(yàn)本方法的正確率,對Linux源碼文件ipc/msg. C熟悉的人員對文件進(jìn)行人 工關(guān)鍵節(jié)點(diǎn)識別,與本方法自動識別相比如表3所示:
[0082] 表3.兩種方法對比 r00831
[0084] 從表中可W得出本方法對Linux內(nèi)核源碼函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)的識別正確率較 局。
[0085] 實(shí)施例2
[0086] 設(shè)定如下使用場景:
[0087] 用戶使用本方法對1 inux3.5.4源碼中的kerne Vf ork. C文件中的函數(shù)調(diào)用圖進(jìn)行 關(guān)鍵函數(shù)識別和標(biāo)識。用戶登錄Linux內(nèi)核函數(shù)調(diào)用關(guān)系平臺,并在平臺中選擇選項(xiàng)生成 kernel/fork.c文件內(nèi)函數(shù)調(diào)用關(guān)系,平臺顯示kerneVfork.c文件內(nèi)函數(shù)調(diào)用關(guān)系并生成 相應(yīng)數(shù)據(jù)存儲在數(shù)據(jù)庫,數(shù)據(jù)庫中的數(shù)據(jù)描述了 kernel/fork.c中的函數(shù)、函數(shù)之間的靜態(tài) 調(diào)用關(guān)系、函數(shù)靜態(tài)調(diào)用次數(shù)、在網(wǎng)頁中顯示的顏色等信息。數(shù)據(jù)庫中部分信息如表4所示:
[0088] 表4.數(shù)據(jù)庫中部分信息
[0089]
[0090]
[0091] 平臺中kerne Vf ork. C文件的函數(shù)調(diào)用圖如圖7所示。
[0092] 2)用戶選擇關(guān)鍵函數(shù)識別功能,系統(tǒng)按照圖3中的流程進(jìn)行節(jié)點(diǎn)關(guān)鍵程度的計(jì)算, 可W得到函數(shù)節(jié)點(diǎn)的各個(gè)指標(biāo)W及關(guān)鍵程度值,如表5所示:
[0093] 表5.函數(shù)節(jié)點(diǎn)的各個(gè)指標(biāo)W及函數(shù)重要程度值
[0094]
[00M] 3)將計(jì)算得出的關(guān)鍵節(jié)點(diǎn)W灰度等級的形式展現(xiàn)出來,修改數(shù)據(jù)庫中kernel/ fork. C文件的節(jié)點(diǎn)顏色,使用修改后的文件展示kernel/f ork. C文件內(nèi)函數(shù)調(diào)用關(guān)系如圖8 所示,圖中灰度等級越深代表該函數(shù)節(jié)點(diǎn)在文件中的關(guān)鍵程度越高是較為關(guān)鍵的節(jié)點(diǎn)。 1^6111日1/'〇'4.(3文件中最關(guān)鍵的函數(shù)節(jié)點(diǎn)是系統(tǒng)調(diào)用(3〇97_91'〇。日33,用黑色表示;關(guān)鍵程度 第二的關(guān)鍵節(jié)點(diǎn)dup_mm,用深灰色表示;其他關(guān)鍵節(jié)點(diǎn)依次用灰度較淺的顏色表示;關(guān)鍵節(jié) 點(diǎn)之外的函數(shù)節(jié)點(diǎn)統(tǒng)一用白色表示。
[0096] 4)為檢驗(yàn)本方法的正確率,對Linux源碼文件kernel/fork.c熟悉的人員對文件進(jìn) 行人工關(guān)鍵節(jié)點(diǎn)識別,與本方法自動識別相比如表6所示:
[0097] 表6.兩種方法對比
[0099] 從表中可W得出本方法對Linux內(nèi)核源碼函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)的識別正確率較 局。
[0100] W上實(shí)施例僅用W說明本發(fā)明的技術(shù)方案而非對其進(jìn)行限制,本領(lǐng)域的普通技術(shù) 人員可W對本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明的精神和范圍,本 發(fā)明的保護(hù)范圍應(yīng)W權(quán)利要求所述為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種基于復(fù)雜網(wǎng)絡(luò)分析的函數(shù)調(diào)用圖關(guān)鍵節(jié)點(diǎn)的識別和標(biāo)識方法,包括以下步驟: 1) 通過源碼靜態(tài)分析技術(shù)進(jìn)行詞法分析、語法分析和控制流分析,獲取源碼調(diào)用關(guān)系 數(shù)據(jù),并通過括號匹配分析技術(shù)獲取函數(shù)長度數(shù)據(jù),將全部數(shù)據(jù)分類存儲在數(shù)據(jù)庫中; 2) 根據(jù)步驟1)獲取的數(shù)據(jù)生成調(diào)用圖,利用復(fù)雜網(wǎng)絡(luò)分析方法進(jìn)行調(diào)用圖節(jié)點(diǎn)指標(biāo)計(jì) 算,所述指標(biāo)包括交互度、接近中心性、節(jié)點(diǎn)介數(shù)和函數(shù)長度,最終利用多屬性決策方法進(jìn) 行節(jié)點(diǎn)關(guān)鍵程度計(jì)算; 3) 結(jié)合用戶的需求和數(shù)據(jù)庫中保存的狀態(tài)數(shù)據(jù),利用步驟2)獲得的函數(shù)調(diào)用圖節(jié)點(diǎn)的 關(guān)鍵程度數(shù)據(jù)計(jì)算關(guān)鍵節(jié)點(diǎn)排序和相應(yīng)灰度比例數(shù)據(jù),并進(jìn)行可視化展示。2. 如權(quán)利要求1所述的方法,其特征在于,步驟1)從源代碼的編譯過程中獲取函數(shù)定義 和調(diào)用信息,通過括號匹配分析函數(shù)起止行號并計(jì)算出函數(shù)長度數(shù)據(jù),并將這些數(shù)據(jù)錄入 數(shù)據(jù)庫中的以下相關(guān)表格中:目錄文件列表,用來記錄源碼目錄和文件路徑;函數(shù)定義列 表,用來記錄所有函數(shù)的定義相關(guān)信息;靜態(tài)函數(shù)調(diào)用列表,用來記錄靜態(tài)函數(shù)調(diào)用的相關(guān) 信息。3. 如權(quán)利要求1所述的方法,其特征在于,步驟1)進(jìn)行調(diào)用關(guān)系獲取的具體步驟包括: la) 進(jìn)入復(fù)雜網(wǎng)絡(luò)分析系統(tǒng),查看是否存在待分析的調(diào)用圖版本; lb) 如果已經(jīng)存在該版本調(diào)用圖,進(jìn)入If ),否則進(jìn)入Ic); lc) 加入對應(yīng)源碼版本的源代碼; ld) 進(jìn)行源代碼靜態(tài)分析; i.遍歷源代碼目錄,獲取代碼中所有文件的相對路徑信息; i i .修改源代碼的編譯參數(shù); iii. 編譯源碼,生成隱藏函數(shù)定義信息和函數(shù)調(diào)用信息的中間結(jié)果; iv. 從中間文件中分析出函數(shù)定義和行號信息; V.從中間文件中分析出函數(shù)調(diào)用信息; le) 將Id)分析得到的文件路徑信息、函數(shù)定義信息、調(diào)用關(guān)系和函數(shù)長度入庫,分別錄 入目錄文件列表,函數(shù)定義列表和靜態(tài)函數(shù)調(diào)用列表,進(jìn)入Ib); lf) 進(jìn)行復(fù)雜網(wǎng)絡(luò)分析。4. 如權(quán)利要求1所述的方法,其特征在于,步驟2)所述交互度表征節(jié)點(diǎn)的局部交互程 度,其綜合考慮出度和入度,其中出度為該節(jié)點(diǎn)調(diào)用其他節(jié)點(diǎn)的次數(shù),入度為該節(jié)點(diǎn)被調(diào)用 的次數(shù);所述接近中心性考慮節(jié)點(diǎn)間通信的獨(dú)立性,即當(dāng)前節(jié)點(diǎn)與其他節(jié)點(diǎn)通信的可能性 對通信所需中間媒介的最少個(gè)數(shù)的依賴程度;所述節(jié)點(diǎn)介數(shù)為調(diào)用圖中所有最短路徑中經(jīng) 過該節(jié)點(diǎn)的路徑的數(shù)目占最短路徑總數(shù)的比例。 Fi加擬剎蔸步4斫襪的玄法.苴賠紅亦千.斫襪亦百磨的撲管公忒為.兵干,U衣不父1皮,λ衣不節(jié)?八皮、Y衣不節(jié)?出皮,Xmin衣不節(jié)?八度最小值、Ymin 表示節(jié)點(diǎn)出度最小值,Xmax表示節(jié)點(diǎn)入度最大值,Ymax表示節(jié)點(diǎn)出度最大值; 所述接近中心性的計(jì)算公式為:其中,CCi表示接近中心性,dij表示以節(jié)點(diǎn)i為起點(diǎn)j為終點(diǎn)的最短路徑中所含邊的數(shù) 量,N表示調(diào)用圖中總的節(jié)點(diǎn)個(gè)數(shù),i表示被計(jì)算指標(biāo)的當(dāng)前節(jié)點(diǎn),j表示除當(dāng)前計(jì)算指標(biāo)節(jié) 點(diǎn)之外的其他節(jié)點(diǎn); sa太屯·占各撕的斗晳/入.其中,Cb(V)表示節(jié)點(diǎn)介數(shù),分子表示圖中任意兩節(jié)點(diǎn)的最短路徑經(jīng)過該節(jié)點(diǎn)的個(gè)數(shù),分 母表示圖中任意兩節(jié)點(diǎn)之間最短路徑個(gè)數(shù);V表示被計(jì)算介數(shù)指標(biāo)的當(dāng)前節(jié)點(diǎn),V屬于整個(gè) 節(jié)點(diǎn)集合V,s、t表示整個(gè)節(jié)點(diǎn)集合V中其他任意兩個(gè)節(jié)點(diǎn)。6. 如權(quán)利要求1所述的方法,其特征在于,步驟2)進(jìn)行復(fù)雜網(wǎng)絡(luò)分析的具體步驟包括: 2a)計(jì)算關(guān)鍵節(jié)點(diǎn)指標(biāo); 2b)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)交互度指標(biāo)數(shù)據(jù),進(jìn)入2e),否則進(jìn)入2c); 2c)利用交互度公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2d); 2d)緩存所有節(jié)點(diǎn)交互度指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入2b); 2e)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)接近中心性指標(biāo)數(shù)據(jù),進(jìn)入2h),否則進(jìn)入2f); 2f)利用接近中心性公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2g); 2g)緩存所有節(jié)點(diǎn)接近中心性指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入2e); 2h)如果已經(jīng)計(jì)算完成所有節(jié)點(diǎn)介數(shù)指標(biāo)數(shù)據(jù),進(jìn)入2k),否則進(jìn)入2i); 2i)利用介數(shù)公式計(jì)算所有節(jié)點(diǎn)的該項(xiàng)指標(biāo)數(shù)據(jù),進(jìn)入2j); 2j)緩存所有節(jié)點(diǎn)介數(shù)指標(biāo)數(shù)據(jù),存入臨時(shí)文件,進(jìn)入2h); 2k)利用多屬性決策方法計(jì)算各節(jié)點(diǎn)的關(guān)鍵程度。7. 如權(quán)利要求1所述的方法,其特征在于,步驟3)在函數(shù)調(diào)用關(guān)系圖中用圓型節(jié)點(diǎn)表示 模塊/文件或者函數(shù);用帶有權(quán)值的有向線條表示兩個(gè)節(jié)點(diǎn)之間存在的調(diào)用關(guān)系,調(diào)用方向 與箭頭方式一致,權(quán)值代表調(diào)用次數(shù);每次選擇特定版本的一個(gè)或多個(gè)模塊,一個(gè)或多個(gè)文 件,一個(gè)或多個(gè)文件所包含的函數(shù)進(jìn)行調(diào)用圖可視化和關(guān)鍵節(jié)點(diǎn)標(biāo)識。8. 如權(quán)利要求7所述的方法,其特征在于,步驟3)中,函數(shù)調(diào)用關(guān)系圖中關(guān)鍵節(jié)點(diǎn)的具 體表現(xiàn)形式有兩種: a) 模塊/文件級節(jié)點(diǎn):將模塊/文件級節(jié)點(diǎn)設(shè)置為不同灰度的顏色,白色節(jié)點(diǎn)代表普通 節(jié)點(diǎn),灰色節(jié)點(diǎn)代表關(guān)鍵節(jié)點(diǎn),且灰度越大代表該節(jié)點(diǎn)的關(guān)鍵程度越高;模塊/文件級節(jié)點(diǎn) 的關(guān)鍵程度是其所包含的全體函數(shù)關(guān)鍵程度的加權(quán)平均和,而邊上的權(quán)值則是兩個(gè)節(jié)點(diǎn)所 包含的全體函數(shù)之間調(diào)用關(guān)系的總和; b) 函數(shù)級節(jié)點(diǎn):將函數(shù)級節(jié)點(diǎn)也設(shè)置為不同灰度的顏色,白色節(jié)點(diǎn)代表普通函數(shù)節(jié)點(diǎn), 灰色節(jié)點(diǎn)代表關(guān)鍵函數(shù)節(jié)點(diǎn),且灰度越大代表該函數(shù)的關(guān)鍵程度越高;函數(shù)級節(jié)點(diǎn)的關(guān)鍵 程度由多屬性決策方法計(jì)算得出,邊的權(quán)值為對應(yīng)兩個(gè)節(jié)點(diǎn)函數(shù)之間調(diào)用次數(shù)的總和。9. 如權(quán)利要求8所述的方法,其特征在于,步驟3)進(jìn)行關(guān)鍵節(jié)點(diǎn)標(biāo)識的具體步驟包括: 3a)根據(jù)已生成的指標(biāo)數(shù)據(jù)和多屬性決策方法,進(jìn)行關(guān)鍵節(jié)點(diǎn)的關(guān)鍵程度排序; 3b)如果已經(jīng)生成對應(yīng)調(diào)用圖的關(guān)鍵節(jié)點(diǎn)標(biāo)識數(shù)據(jù),則進(jìn)入3d),否則進(jìn)入3c); 3c)根據(jù)關(guān)鍵節(jié)點(diǎn)關(guān)鍵程度數(shù)據(jù)和排序結(jié)果計(jì)算關(guān)鍵節(jié)點(diǎn)的灰度比例,進(jìn)入3b); 3d)根據(jù)關(guān)鍵節(jié)點(diǎn)灰度比例數(shù)據(jù)生成調(diào)用圖的關(guān)鍵節(jié)點(diǎn)標(biāo)識視圖。
【文檔編號】G06F9/54GK106020950SQ201610313138
【公開日】2016年10月12日
【申請日】2016年5月12日
【發(fā)明人】李斌, 田兆楠, 賀也平
【申請人】中國科學(xué)院軟件研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
新疆| 贵阳市| 德钦县| 明溪县| 农安县| 微博| 临漳县| 洮南市| 普安县| 中超| 象州县| 永寿县| 新蔡县| 蓬溪县| 上犹县| 通渭县| 保山市| 巴林右旗| 德江县| 明光市| 台南县| 九江县| 峨山| 寿阳县| 凤阳县| 德庆县| 边坝县| 葵青区| 图木舒克市| 登封市| 清河县| 安图县| 西昌市| 马关县| 临武县| 体育| 九江市| 磐安县| 广饶县| 南漳县| 栖霞市|