代碼編譯結果的檢測方法和裝置的制造方法

            文檔序號:10488868閱讀:258來源:國知局
            代碼編譯結果的檢測方法和裝置的制造方法
            【專利摘要】本發明公開了一種代碼編譯結果的檢測方法和裝置。其中,該方法包括:從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;從源代碼中獲取有效代碼行的行號;檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;以及在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。本發明解決了相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題。
            【專利說明】
            代碼編譯結果的檢測方法和裝置
            技術領域
            [0001]本發明涉及計算機領域,具體而言,涉及一種代碼編譯結果的檢測方法和裝置。
            【背景技術】
            [0002]目前,為了保證軟件應用的穩定性,通常需要對軟件代碼進行測試,其中,測試代碼覆蓋率為軟件代碼測試過程中的一個重要測試環節,測試代碼覆蓋率即為在代碼編譯過程中對代碼行的執行情況進行統計,比如統計代碼行的執行次數。現有技術通常采用插粧法對代碼行的執行情況進行統計,插粧法具體可以描述為:代碼編譯過程中在源代碼中加入計數代碼段,即對源代碼進行插粧操作;客戶端獲取并執行插粧后的軟件應用;在軟件應用退出后將插粧計數的數據轉存到磁盤中;通過分析磁盤中存儲的文件推導出各個代碼行的執行次數。采用插粧法統計代碼編譯過程中代碼行的執行情況存在以下兩個問題:
            [0003]1、由于插粧計數信息需要在內存中運行后才能產生,那么對于動態加載的模塊,如果沒有執行到則不會加載,也就不會生產相應的計數文件,導致在統計代碼行執行情況時將會缺失對該部分文件的統計。
            [0004]2、在代碼編寫過程中,為了便于讀取,往往會將長的代碼行拆分成多行編寫,如圖1所示的代碼段中的第44行和第45行(圖1中所示方框內的代碼)。對于這種情況,采用插粧法統計代碼行的執行情況時被換行的有效代碼行的數據信息將會被忽略掉,即只統計了第44行的執行次數32768,第45行的執行次數被忽略掉了,這將導致代碼行執行情況的統計結果出現誤差,尤其是在統計差異化代碼行執行情況時這部分差異化代碼行將會被遺漏,導致最終代碼行執行情況的統計結果不準確。
            [0005]針對上述的問題,目前尚未提出有效的解決方案。

            【發明內容】

            [0006]本發明實施例提供了一種代碼編譯結果的檢測方法和裝置,以至少解決相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題。
            [0007]根據本發明實施例的一個方面,提供了一種代碼編譯結果的檢測方法,包括:從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;從源代碼中獲取有效代碼行的行號;檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;以及在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0008]根據本發明實施例的另一方面,還提供了一種代碼編譯結果的檢測裝置,包括:第一獲取模塊,用于從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;第二獲取模塊,用于從源代碼中獲取有效代碼行的行號;檢測模塊,用于檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;以及記錄模塊,用于在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0009]在本發明實施例中,通過從源代碼編譯產生的編譯信息文件中獲取基本塊的信息,依據基本塊的信息檢測源代碼中的有效代碼行的行號中是否存在未記錄在基本塊的信息中且位于基本塊的信息中記錄的最小行號和最大行號之間的行號,若存在則將未記錄在基本塊的信息中的行號記錄為已編譯的代碼行的行號,達到了準確統計代碼編譯過程中有效代碼行執行情況的目的,從而實現了提高代碼編譯過程中代碼行執行情況統計結果的準確度的技術效果,進而解決了相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題。
            【附圖說明】
            [0010]此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:[0011 ]圖1是根據現有技術的代碼行執行次數統計結果的示意圖;
            [0012]圖2是根據本發明實施例的代碼編譯結果的檢測方法的硬件環境的示意圖;
            [0013]圖3是根據本發明實施例的一種可選的代碼編譯結果的檢測方法的流程圖;
            [0014]圖4是根據本發明實施例的編譯信息文件的示意圖;
            [0015]圖5是根據本發明實施例的有效代碼行的示意圖;
            [0016]圖6是根據本發明實施例的代碼行執行次數統計結果的示意圖;
            [0017]圖7是根據本發明實施例的執行信息文件的示意圖;
            [0018]圖8是根據本發明實施例的補錄后的執行信息文件的示意圖;
            [0019]圖9是根據本發明實施例的代碼編譯結果的檢測裝置的示意圖;
            [0020]圖10是根據本發明實施例的一種可選的代碼編譯結果的檢測裝置的示意圖;
            [0021]圖11是根據本發明實施例的另一種可選的代碼編譯結果的檢測裝置的示意圖;
            [0022]圖12是根據本發明實施例的再一種可選的代碼編譯結果的檢測裝置的示意圖;
            [0023]圖13是根據本發明實施例的又一種可選的代碼編譯結果的檢測裝置的示意圖;以及
            [0024]圖14是根據本發明實施例的一種終端的結構框圖。
            【具體實施方式】
            [0025]為了使本技術領域的人員更好地理解本發明方案,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分的實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
            [0026]需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數據在適當情況下可以互換,以便這里描述的本發明的實施例能夠以除了在這里圖示或描述的那些以外的順序實施。此外,術語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統、產品或設備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或對于這些過程、方法、產品或設備固有的其它步驟或單元。
            [0027]首先,在對本發明實施例進行描述的過程中出現的部分名詞或者術語適用于如下解釋:
            [0028]Clang,是一個 C 語言、C++、0b jective_C、0b jective-C++語言的輕量級編譯器。
            [0029]Gcov,是一個測試代碼覆蓋率的工具,即測試代碼編譯過程中代碼行執行情況的工具。
            [0030]Gcno,Gco V執行時生成的文件。
            [0031]實施例1
            [0032]根據本發明實施例,提供了一種代碼編譯結果的檢測方法的方法實施例。
            [0033]可選地,在本實施例中,上述代碼編譯結果的檢測方法可以應用于如圖2所示的由服務器102和終端104所構成的硬件環境中。如圖2所示,服務器102通過網絡與終端104進行連接,上述網絡包括但不限于:廣域網、城域網或局域網,終端104并不限定于PC、手機、平板電腦等。本發明實施例的數據處理方法可以由服務器102來執行,也可以由終端104來執行,還可以是由服務器102和終端104共同執行。其中,終端104執行本發明實施例的數據處理方法也可以是由安裝在其上的客戶端來執行。
            [0034]圖3是根據本發明實施例的一種可選的代碼編譯結果的檢測方法的流程圖,如圖3所示,該方法可以包括以下步驟:
            [0035]步驟S202,從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;
            [0036]步驟S204,從源代碼中獲取有效代碼行的行號;
            [0037]步驟S206,檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;
            [0038]步驟S208,在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0039]通過上述步驟S202至步驟S208,通過從源代碼編譯產生的編譯信息文件中獲取基本塊的信息,依據基本塊的信息檢測源代碼中的有效代碼行的行號中是否存在未記錄在基本塊的信息中且位于基本塊的信息中記錄的最小行號和最大行號之間的行號,若存在則將未記錄在基本塊的信息中的行號記錄為已編譯的代碼行的行號,解決了相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題,從而實現了提高代碼編譯過程中代碼行執行情況統計結果的準確度的技術效果。
            [0040]在步驟S202提供的技術方案中,源代碼進行編譯之后得到的文件為二進制文件,對該二進制文件進行反匯編操作可以得到編譯信息文件,如圖4所示,編譯信息文件可以由反匯編代碼組成,根據這些反匯編代碼可以拆分成至少一個基本塊,每個基本塊對應源代碼中的一段代碼,一個代碼段可以包括至少一個代碼行。本發明實施例定義的基本塊可以具備以下特性:基本塊對應的代碼段中的第一條代碼行語句被執行,則整個代碼段語句都會被執行一次;基本塊為源代碼中一個順序執行的語句序列;一個基本塊只有一個出口語句和一個入口語句,執行時只能從入口語句進入,從出口語句退出;基本塊中所有代碼行語句的執行次數均相同;一個基本塊一般有多個順序執行語句后跟一個跳轉語句組成。
            [0041 ]可選地,編譯信息文件中可以包括至少一個基本塊,每兩個基本塊之間可以用標識符隔開,如圖4所不方框部分,標識符為01450000,該標識符所在的字節為該基本塊的起始位置,該標識符所在字節至下一個標識符之間的字節組成一個基本塊,該基本塊的信息可以由這些字節表示。例如圖4中的第一基本塊與第二基本塊的標識符為01450000,從第一基本塊的起始位置也即標識符01450000開始至第二基本塊的起始位置也即標識符01450000之間的所有字節均屬于第一基本塊,從這些字節中可以獲取到第一基本塊的信息,具體地:標識符01450000之后的字節用于表示第一基本塊的長度,即從該字節至第二基本塊標識符01450000之間的字節數量,如圖4所示,第一基本塊的長度為0000000B,即第一基本塊的長度為11,也即從該字節之后還包括11個字節。在表示第一基本塊長度的字節之后的字節00000001表示第一基本塊的標識,即代表該基本塊的標識號為I,該字節主要用于標識不同的基本塊。在表示不同的基本塊的字節之后的字節00000000用于表示后面記錄的為該基本塊對應的代碼段編譯之后生成的二進制文件的文件名。之后的字節00000003用于表示文件名長度,即用后續的三個字節表示該文件名,即0000632E74736574,文件名為“test.c”,需要說明的是,65742F2E中的2F2E以及00000000中的0000為固定格式,參見第二基本塊中相應字節表示文件名的方式。表示文件名之后的字節用于表示該第一基本塊對應的代碼端中的已編譯的代碼行的行號,分別為0000002B、0000002C、0000002F,即分別為第43、44、47行。之后的兩個字節00000000、00000000用于表示該第一基本塊的終止位置。同樣地,第二基本塊也可以按照上述分析方法得到第二基本塊的信息。
            [0042]需要說明的是,由上述分析可以獲取到基本塊的信息,可以包括但并不限于源代碼中的一段代碼中被記錄為已編譯的代碼行的行號,比如圖4中第一基本塊的信息中記錄的43、44、47。基本塊的信息還可以包括上述分析得到的基本塊的標識符、基本塊的標識、基本塊的長度、基本塊對應的代碼段編譯之后生成的二進制文件的文件名等。需要說明的是,從基本塊的信息中記錄的已編譯的代碼行的行號可以得到最小行號和最大行號,比如最小行號為43,最大行號為47,依據最小行號和最大行號可以得到該基本塊包含的代碼行的區間范圍為43-47,即第43行至第47行對應同一基礎塊。在該區間范圍43-47內,基本塊的信息中只記錄了 44為已編譯的代碼行的行號,對于行號為45、46的代碼行可能是無效代碼行,也可能是沒有統計到。
            [0043]本發明實施例中的編譯信息文件可以是在mac機的osx系統上的Gcno文件,其中,Gcno文件為測試代碼覆蓋率的工具Gcov在執行時生成的文件,該Gcno文件中存儲有代碼段對應的基礎塊的信息,以及代碼段與基礎塊的對應關系等。還需要說明的是,本發明實施例的編譯信息文件還可以是108、1;[111?、&11(11'01(1系統下的代碼編譯過程中產生的文件。
            [0044]在步驟S204提供的技術方案中,osx系統中源代碼文件一般為以.c或.cpp或.m為后綴的文件,本發明實施例可以使用Clang解析該源代碼文件,具體可以使用命令行“01&1^-(^1-(11111^)-1:01^118文件名”,例如Clang-ccl-dump-tokens abc.m,如圖5所不,方框部分為使用Clang對代碼段進行解析得到的圖1所示代碼段中第44行和第45行的有效代碼行。需要說明的是,本發明實施例使用Clang對源代碼進行解析時可以將源代碼中的空白行、注釋行等無效行進行過濾,也可以將與實際執行無關的一些符號比如“{}”進行過濾,以便于使用Clang解析后得到的有效代碼行更加準確。
            [0045]在對源代碼進行解析得到有效代碼行之后,本發明實施例可以獲取有效代碼行的行號。在源代碼中每行代碼均對應一個行號,該行號用于標識該代碼行在源代碼文件中位置,代碼行的行號如圖1所示。需要說明的是,在源代碼文件中每行均對應一個行號,與行號對應的行可以為有效代碼行,比如第44行和第45行,也可以為空白行,比如第43行和第46行,還可以是符號,比如第47行。在源代碼文件中可以記錄有不同行號與代碼行的對應關系,比如行號45對應代碼行“NSLog(@“aabbCCdd: %礦,”,在通過解析得到源代碼中的有效代碼行之后,可以依據源代碼文件中存儲的行號與代碼行的對應關系得到有效代碼行對應的行號,比如當對源代碼解析獲取到有效代碼行“NSL0g(@“aabbCCdd:%@”,”以及“O“bbcccdd” );”時,依據源代碼文件中存儲的行號與代碼行的對應關系可以獲取有效代碼行“NSLog(@“aabbccdd: 的行號為44,有效代碼行 “O “bbcccdd” );,,的行號為45。
            [0046]在步驟S206提供的技術方案中,漏記錄的行號可以為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號。比如,從基本塊的信息中可以獲取到被記錄的最小行號為43,最大行號為47,記錄在基本塊的信息中的已執行編譯的代碼行為44,則漏記錄的行號為45、46,源代碼中的第43-47行對應同一個基本塊。從源代碼中獲取到的有效代碼行可以是一個,也可以是多個,相應地,有效代碼行的行號也可以是一個或者多個。比如,從源代碼中獲取到的有效代碼行的行號為44和45,則檢測有效代碼行的行號中是否存在漏記錄的行號得到的結果為:存在,漏記錄的行號為45。本發明實施例通過檢測有效代碼行的行號中是否存在漏記錄的行號,目的是為了檢測在源代碼編譯過程中統計代碼行的執行情況時是否存在遺漏代碼行未統計,以達到保證源代碼中有效代碼行的執行情況的統計結果的準確性的效果。
            [0047]在步驟S208提供的技術方案中,由于對應同一個基本塊的代碼行的執行次數相同,即當記錄在基本塊信息中已編譯的代碼行與漏記錄行號對應的代碼行的執行次數應該相同,也即在代碼編譯過程中記錄在基本塊信息中已編譯的代碼行被執行一次,則漏記錄行號對應的代碼行也執行一次。為了保證源代碼中有效代碼行的執行情況的統計結果的準確性,本發明實施例在檢測到有效代碼行的行號中存在漏記錄的行號時,可以將漏記錄的行號記錄為已編譯的代碼行的行號,以達到保證當記錄在基本塊信息中已編譯的代碼行與漏記錄行號對應的代碼行的執行次數相同的目的。
            [0048]比如,有效代碼行的行號為44和45,基本塊的信息中被記錄的最小行號為43,最大行號為47,記錄在基本塊的信息中的已編譯的代碼行為44,漏記錄的行號為45、46,則可以得到有效代碼行的行號中存在漏記錄的行號為45。原則上第44行和第45行的代碼的執行次數應該相同,但是由于某種原因導致在統計代碼行的執行次數時未統計第45行代碼的執行次數。因此,為了保證源代碼中代碼行執行次數統計結果的準確性,需要將行號45記錄為已編譯的代碼行的行號,且第45行代碼的執行次數與第44行代碼的執行次數相同,如圖6所示,其中,圖6所示的代碼行執行次數統計結果為對圖1所示的代碼行執行次數統計結果進行修正后的結果,在圖6所示方框中的第44行和第45行代碼的執行次數相同,均為32768。
            [0049]作為一種可選的實施例,步驟S208將漏記錄的行號記錄為已編譯的代碼行的行號可以包括:步驟S2082,將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,其中,執行信息文件至少包括:被記錄為已編譯的代碼行的行號,被記錄為已編譯的代碼行被執行的次數。
            [0050]需要說明的是,執行信息文件為對源代碼執行編譯后得到的文件,如圖7所示,執行信息文件中可以被記錄為已編譯的代碼行的行號以及被記錄為已編譯的代碼行被執行的次數,比如圖7所示方框中的行號44,第44行代碼的執行次數32768。在源代碼執行編譯后得到的執行信息文件中只包括有被記錄為已編譯的代碼行的行號和執行次數,對于漏記錄的行號和該行號對應的代碼行的執行次數并未在執行信息文件中記錄,因此,為了保證執行信息文件中記錄的關于代碼行的執行情況信息的準確性,該實施例可以將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,補錄后的執行信息文件如圖8所示,在圖8所示方框中將漏記錄的行號45以及該第45行代碼的執行次數32768(與第44行代碼的執行次數相同)補錄入執行信息文件中。
            [0051]該實施例通過將將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,提高了執行信息文件中反映的代碼行執行情況的準確性。同時,在執行信息文件中對代碼執行情況進行修改和保存,還能夠達到便于從執行信息文件中直接讀取代碼行執行情況的效果。
            [0052]作為一種可選的實施例,步驟S2082將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中可以包括:步驟S20822,按照行號的順序將漏記錄的行號補入到執行信息文件中對應的位置上,并在位置上記錄漏記錄的行號對應的代碼行被執行的次數,其中,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。
            [0053]需要說明的是,在將漏記錄的行號補如至執行信息文件中時,該實施例優選地按照行號順序進行補錄,可以是按照行號由小到大的順序,也可以是按照行號由大到小的順序。按照行號順序補錄漏記錄的行號,能夠便于從執行信息文件中快速定位行號所在位置,按照行號順序尤其是在代碼行行數特別多個情況下優點更為突出。比如,在圖8所示方框中將行號45補入執行信息文件中行號44的后面。
            [0054]可選地,在將漏記錄的行號補入執行信息文件中時,該實施例還可以將漏記錄的行號對應的代碼行的執行次數補入在該行號的對應位置上,如圖8所示方框中行號45后的執行次數32768。此處需要說明的是,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。比如行號45對應的代碼行的執行次數與對應同一個基礎塊中記錄的已編譯的代碼行的行號44對應的代碼行的執行次數相同,均為32768,如圖8所示。該實施例通過將漏記錄的行號以及該行號對應的代碼行的執行次數一并補入執行信息文件中,能夠達到便于直接從執行信息文件中得到每個代碼行執行情況的效果。
            [0055]作為一種可選的實施例,步驟S204從源代碼中獲取有效代碼行的行號可以包括以下步驟:
            [0056]步驟S2042,從源代碼中過濾掉注釋行、空白行和與源代碼執行不相關的符號信息,得到第一代碼。
            [0057]步驟S2044,將第一代碼中的代碼行的行號記錄為有效代碼行的行號。
            [0058]需要說明的是,第一代碼即為源代碼中除了注釋行、空白行和與源代碼執行不相關的符號(比如“{}”等)之外的、與實際執行相關的真實有效的代碼行。該實施例在對源代碼進行解析時會做預編譯處理,即對源代碼中的過濾掉注釋行、空白行和與源代碼執行不相關的符號信息進行過濾,能夠保證獲取到的有效代碼行的精確度。經過過濾掉注釋行、空白行和與源代碼執行不相關的符號信息后得到的有效代碼行如圖5所示。在保證從源代碼中解析得到的有效代碼行的精確度的基礎上,該實施例可以依據源代碼文件中存儲的行號與代碼行的對應關系,獲取較為準確的有效代碼行的行號,進而達到了提高獲取到的有效代碼行的行號的準確度的效果。
            [0059]作為一種可選的實施例,步驟S202從對源代碼進行編譯所生成的編譯信息文件獲取基本塊的信息可以包括以下步驟:
            [0060]步驟S2022,使用預定的標識符從編譯信息文件中獲取每個基本塊的信息,其中,標識符用于標識基本塊的起始位置。
            [0061 ]步驟S2024,從基本塊的信息中識別出基本塊的標識、已編譯的代碼行的行號,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號。
            [0062]由上述實施例中對基本塊以及基本塊的信息的具體介紹可以知道在編譯信息文件中每個基本塊的起始位置處均有標識符,如圖4中的標識符01450000,需要說明的是,該標識符可以根據實際情況進行設定和調整,也即標識符并不僅限于01450000,其還可以是其他字符。在編譯信息文件中確定標識符之后可以從標識符所在字節至下一個標識符之間的字節識別出該基本塊的信息,該基本塊的信息可以包括但不僅限于基本塊的標識(如圖4中的00000001)、已編譯的代碼行的行號(如圖4中的00000028、0000002(:、0000002?),基本塊的信息還可以包括基本塊的長度(如圖4中的0000000B)、基本塊對應的代碼段編譯之后生成的二進制文件的文件名(如圖4中的0000632E74736574,文件名為“test.c”)等。需要說明的是,已編譯的代碼行的行號(如圖4中的0000002B、0000002C、0000002F)包括被記錄的最小行號和最大行號,如圖4所示,最小行號為0000002B,最大行號為0000002F。
            [0063]該實施例通過獲取包括有已編譯的代碼行的行號的基本塊的信息,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號,以便于建立基本塊與源代碼中代碼段的對應關系,并依據最小行號和最大行號確定漏記錄的行號,進而實現提高代碼行執行情況統計結果準確度的效果。
            [0064]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發明并不受所描述的動作順序的限制,因為依據本發明,某些步驟可以采用其他順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優選實施例,所涉及的動作和模塊并不一定是本發明所必須的。
            [0065]通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。
            [0066]實施例2
            [0067]根據本發明實施例,還提供了一種用于實施上述代碼編譯結果的檢測方法的代碼編譯結果的檢測裝置。圖9是根據本發明實施例的代碼編譯結果的檢測裝置的示意圖,如圖9所示,該裝置可以包括:
            [0068]第一獲取模塊22,用于從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;第二獲取模塊24,用于從源代碼中獲取有效代碼行的行號;檢測模塊26,用于檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內;以及記錄模塊28,用于在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0069]需要說明的是,該實施例中的第一獲取模塊22可以用于執行本申請實施例1中的步驟S202,該實施例中的第二獲取模塊24可以用于執行本申請實施例1中的步驟S204,該實施例中的檢測模塊26可以用于執行本申請實施例1中的步驟S206,該實施例中的記錄模塊28可以用于執行本申請實施例1中的步驟S208。
            [0070]此處需要說明的是,上述模塊與對應的步驟所實現的示例和應用場景相同,但不限于上述實施例1所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環境中,可以通過軟件實現,也可以通過硬件實現。
            [0071]通過上述模塊,可以解決相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題,從而實現提高代碼編譯過程中代碼行執行情況統計結果的準確度的技術效果。
            [0072]在第一獲取模塊22提供的方案中,源代碼進行編譯之后得到的文件為二進制文件,對該二進制文件進行反匯編操作可以得到編譯信息文件。編譯信息文件可以由反匯編代碼組成,根據這些反匯編代碼可以拆分成至少一個基本塊,每個基本塊對應源代碼中的一段代碼,一個代碼段可以包括至少一個代碼行。編譯信息文件可以如圖4所示,關于編譯信息文件和基本塊及其信息已經在本發明方法實施例中進行了詳細介紹,此處不再贅述。
            [0073]在第二獲取模塊24提供的技術方案中,osx系統中源代碼文件一般為以.c或.cpp或.m為后綴的文件,本發明實施例可以使用Clang解析該源代碼文件,具體可以使用命令行“Clang-ccl-dump-tokens文件名”。需要說明的是,本發明實施例使用Clang對源代碼進行解析時可以將源代碼中的空白行、注釋行等無效行進行過濾,也可以將與實際執行無關的一些符號比如“{}”進行過濾,以便于使用Clang解析后得到的有效代碼行更加準確。在對源代碼進行解析得到有效代碼行之后,本發明實施例可以獲取有效代碼行的行號。在源代碼中每行代碼均對應一個行號,該行號用于標識該代碼行在源代碼文件中位置。需要說明的是,在源代碼文件中每行均對應一個行號,與行號對應的行可以為有效代碼行,也可以為空白行,還可以是符號。在源代碼文件中可以記錄有不同行號與代碼行的對應關系,在通過解析得到源代碼中的有效代碼行之后,可以依據源代碼文件中存儲的行號與代碼行的對應關系得到有效代碼行對應的行號。
            [0074]在檢測模塊26提供的技術方案中,漏記錄的行號可以為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號。從源代碼中獲取到的有效代碼行可以是一個,也可以是多個,相應地,有效代碼行的行號也可以是一個或者多個。本發明實施例通過檢測有效代碼行的行號中是否存在漏記錄的行號,目的是為了檢測在源代碼編譯過程中統計代碼行的執行情況時是否存在遺漏代碼行未統計,以達到保證源代碼中有效代碼行的執行情況的統計結果的準確性的效果。
            [0075]在記錄模塊28提供的技術方案中,由于對應同一個基本塊的代碼行的執行次數相同,即當記錄在基本塊信息中已編譯的代碼行與漏記錄行號對應的代碼行的執行次數應該相同,也即在代碼編譯過程中記錄在基本塊信息中已編譯的代碼行被執行一次,則漏記錄行號對應的代碼行也執行一次。為了保證源代碼中有效代碼行的執行情況的統計結果的準確性,本發明實施例在檢測到有效代碼行的行號中存在漏記錄的行號時,可以將漏記錄的行號記錄為已編譯的代碼行的行號,以達到保證當記錄在基本塊信息中已編譯的代碼行與漏記錄行號對應的代碼行的執行次數相同的目的。
            [0076]作為一種可選的實施例,圖10是根據本發明實施例的一種可選的代碼編譯結果的檢測裝置的示意圖,如圖10所示,記錄模塊28可以包括:補錄模塊282,用于將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,其中,執行信息文件至少包括:被記錄為已編譯的代碼行的行號,被記錄為已編譯的代碼行被執行的次數。
            [0077]需要說明的是,該實施例中的補錄模塊282可以用于執行本申請實施例1中的步驟S2082。執行信息文件為對源代碼執行編譯后得到的文件,執行信息文件中可以被記錄為已編譯的代碼行的行號以及被記錄為已編譯的代碼行被執行的次數。在源代碼執行編譯后得到的執行信息文件中只包括有被記錄為已編譯的代碼行的行號和執行次數,對于漏記錄的行號和該行號對應的代碼行的執行次數并未在執行信息文件中記錄,因此,為了保證執行信息文件中記錄的關于代碼行的執行情況信息的準確性,該實施例可以將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中。
            [0078]該實施例通過將將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,提高了執行信息文件中反映的代碼行執行情況的準確性。同時,在執行信息文件中對代碼執行情況進行修改和保存,還能夠達到便于從執行信息文件中直接讀取代碼行執行情況的效果。
            [0079]作為一種可選的實施例,圖11是根據本發明實施例的另一種可選的代碼編譯結果的檢測裝置的示意圖,如圖11所示,補錄模塊282可以包括:第一子補錄模塊2822,用于按照行號的順序將漏記錄的行號補入到執行信息文件中對應的位置上,并在位置上記錄漏記錄的行號對應的代碼行被執行的次數,其中,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。
            [0080]需要說明的是,該實施例中的第一子補錄模塊2822可以用于執行本申請實施例1中的步驟S20822。在將漏記錄的行號補如至執行信息文件中時,該實施例優選地按照行號順序進行補錄,可以是按照行號由小到大的順序,也可以是按照行號由大到小的順序。按照行號順序補錄漏記錄的行號,能夠便于從執行信息文件中快速定位行號所在位置,按照行號順序尤其是在代碼行行數特別多個情況下優點更為突出。
            [0081]可選地,在將漏記錄的行號補入執行信息文件中時,該實施例還可以將漏記錄的行號對應的代碼行的執行次數補入在該行號的對應位置上。此處需要說明的是,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。該實施例通過將漏記錄的行號以及該行號對應的代碼行的執行次數一并補入執行信息文件中,能夠達到便于直接從執行信息文件中得到每個代碼行執行情況的效果。
            [0082]作為一種可選的實施例,圖12是根據本發明實施例的再一種可選的代碼編譯結果的檢測裝置的示意圖,如圖12所示,第二獲取模塊24可以包括:過濾模塊242,用于從源代碼中過濾掉注釋行、空白行和與源代碼執行不相關的符號信息,得到第一代碼;第一子記錄模塊244,用于將第一代碼中的代碼行的行號記錄為有效代碼行的行號。
            [0083]需要說明的是,該實施例中的過濾模塊242可以用于執行本申請實施例1中的步驟S2042,該實施例中的第一子記錄模塊244可以用于執行本申請實施例1中的步驟S2044。
            [0084]需要說明的是,第一代碼即為源代碼中除了注釋行、空白行和與源代碼執行不相關的符號(比如“{}”等)之外的、與實際執行相關的真實有效的代碼行。該實施例在對源代碼進行解析時會做預編譯處理,即對源代碼中的過濾掉注釋行、空白行和與源代碼執行不相關的符號信息進行過濾,能夠保證獲取到的有效代碼行的精確度。在保證從源代碼中解析得到的有效代碼行的精確度的基礎上,該實施例可以依據源代碼文件中存儲的行號與代碼行的對應關系,獲取較為準確的有效代碼行的行號,進而達到了提高獲取到的有效代碼行的行號的準確度的效果。
            [0085]作為一種可選的實施例,圖13是根據本發明實施例的又一種可選的代碼編譯結果的檢測裝置的示意圖,如圖13所示,第一獲取模塊22可以包括:第一子獲取模塊222,用于使用預定的標識符從編譯信息文件中獲取每個基本塊的信息,其中,標識符用于標識基本塊的起始位置;識別模塊224,用于從基本塊的信息中識別出基本塊的標識、已編譯的代碼行的行號,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號。
            [0086]需要說明的是,該實施例中的第一子獲取模塊222可以用于執行本申請實施例1中的步驟S2022,該實施例中的識別模塊224可以用于執行本申請實施例1中的步驟S2024。
            [0087]由上述實施例中對基本塊以及基本塊的信息的具體介紹可以知道在編譯信息文件中每個基本塊的起始位置處均有標識符,需要說明的是,該標識符可以根據實際情況進行設定和調整,也即標識符并不僅限于圖4中的01450000,其還可以是其他字符。在編譯信息文件中確定標識符之后可以從標識符所在字節至下一個標識符之間的字節識別出該基本塊的信息,該基本塊的信息可以包括但不僅限于基本塊的標識、已編譯的代碼行的行號,基本塊的信息還可以包括基本塊的長度、基本塊對應的代碼段編譯之后生成的二進制文件的文件名等。需要說明的是,已編譯的代碼行的行號包括被記錄的最小行號和最大行號。
            [0088]該實施例通過獲取包括有已編譯的代碼行的行號的基本塊的信息,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號,以便于建立基本塊與源代碼中代碼段的對應關系,并依據最小行號和最大行號確定漏記錄的行號,進而實現提高代碼行執行情況統計結果準確度的效果。
            [0089]此處需要說明的是,上述模塊與對應的步驟所實現的示例和應用場景相同,但不限于上述實施例1所公開的內容。需要說明的是,上述模塊作為裝置的一部分可以運行在如圖1所示的硬件環境中,可以通過軟件實現,也可以通過硬件實現,其中,硬件環境包括網絡環境。
            [0090]實施例3
            [0091]根據本發明實施例,還提供了一種用于實施上述代碼編譯結果的檢測方法的服務器或終端。
            [0092]圖14是根據本發明實施例的一種終端的結構框圖,如圖14所示,該終端可以包括:一個或多個(圖中僅示出一個)處理器201、存儲器203、以及傳輸裝置205(如上述實施例中的發送裝置),如圖14所示,該終端還可以包括輸入輸出設備207。
            [0093]其中,存儲器203可用于存儲軟件程序以及模塊,如本發明實施例中的代碼編譯結果的檢測方法和裝置對應的程序指令/模塊,處理器201通過運行存儲在存儲器203內的軟件程序以及模塊,從而執行各種功能應用以及數據處理,即實現上述的代碼編譯結果的檢測方法。存儲器203可包括高速隨機存儲器,還可以包括非易失性存儲器,如一個或者多個磁性存儲裝置、閃存、或者其他非易失性固態存儲器。在一些實例中,存儲器203可進一步包括相對于處理器201遠程設置的存儲器,這些遠程存儲器可以通過網絡連接至終端。上述網絡的實例包括但不限于互聯網、企業內部網、局域網、移動通信網及其組合。
            [0094]上述的傳輸裝置205用于經由一個網絡接收或者發送數據,還可以用于處理器與存儲器之間的數據傳輸。上述的網絡具體實例可包括有線網絡及無線網絡。在一個實例中,傳輸裝置205包括一個網絡適配器(Network Interface Controller,NIC),其可通過網線與其他網絡設備與路由器相連從而可與互聯網或局域網進行通訊。在一個實例中,傳輸裝置205為射頻(Rad1 Frequency,RF)模塊,其用于通過無線方式與互聯網進行通訊。
            [0095]其中,具體地,存儲器203用于存儲應用程序。
            [0096]處理器201可以通過傳輸裝置205調用存儲器203存儲的應用程序,以執行下述步驟:從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;從源代碼中獲取有效代碼行的行號;檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內;以及在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0097]處理器201還用于執行下述步驟:將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,其中,執行信息文件至少包括:被記錄為已編譯的代碼行的行號,被記錄為已編譯的代碼行被執行的次數。
            [0098]處理器201還用于執行下述步驟:按照行號的順序將漏記錄的行號補入到執行信息文件中對應的位置上,并在位置上記錄漏記錄的行號對應的代碼行被執行的次數,其中,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。
            [0099]處理器201還用于執行下述步驟:從源代碼中過濾掉注釋行、空白行和與源代碼執行不相關的符號信息,得到第一代碼;將第一代碼中的代碼行的行號記錄為有效代碼行的行號。
            [0100]處理器201還用于執行下述步驟:使用預定的標識符從編譯信息文件中獲取每個基本塊的信息,其中,標識符用于標識基本塊的起始位置;從基本塊的信息中識別出基本塊的標識、已編譯的代碼行的行號,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號。
            [0101]采用本發明實施例,提供了一種代碼編譯結果的檢測方案。通過從源代碼編譯產生的編譯信息文件中獲取基本塊的信息,依據基本塊的信息檢測源代碼中的有效代碼行的行號中是否存在未記錄在基本塊的信息中且位于基本塊的信息中記錄的最小行號和最大行號之間的行號,若存在則將未記錄在基本塊的信息中的行號記錄為已編譯的代碼行的行號,達到了準確統計代碼編譯過程中有效代碼行執行情況的目的,進而解決了相關技術在代碼編譯過程中針對代碼行執行情況的統計結果不準確的技術問題,實現了提高代碼編譯過程中代碼行執行情況統計結果的準確度的技術效果。
            [0102]可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。
            [0103]本領域普通技術人員可以理解,圖14所示的結構僅為示意,終端可以是智能手機(如Android手機、1S手機等)、平板電腦、掌上電腦以及移動互聯網設備(Mobile InternetDevices,MID)、PAD等終端設備。圖14其并不對上述電子裝置的結構造成限定。例如,終端還可包括比圖14中所示更多或者更少的組件(如網絡接口、顯示裝置等),或者具有與圖14所示不同的配置。
            [0104]本領域普通技術人員可以理解上述實施例的各種方法中的全部或部分步驟是可以通過程序來指令終端設備相關的硬件來完成,該程序可以存儲于一計算機可讀存儲介質中,存儲介質可以包括:閃存盤、只讀存儲器(Read-Only Memory,ROM)、隨機存取器(RandomAccess Memory,RAM)、磁盤或光盤等。
            [0105]實施例4
            [0106]本發明的實施例還提供了一種存儲介質。可選地,在本實施例中,上述存儲介質可以用于執行代碼編譯結果的檢測方法的程序代碼。
            [0107]可選地,在本實施例中,上述存儲介質可以位于上述實施例所示的網絡中的多個網絡設備中的至少一個網絡設備上。
            [0108]可選地,在本實施例中,存儲介質被設置為存儲用于執行以下步驟的程序代碼:
            [0109]SI,從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個基本塊的信息包括:源代碼中的一段代碼中被記錄為已編譯的代碼行的行號;
            [0110]S2,從源代碼中獲取有效代碼行的行號;
            [0111]S3,檢測有效代碼行的行號中是否存在漏記錄的行號,其中,漏記錄的行號為未記錄在基本塊的信息中、且位于基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內;
            [0112]S4,在檢測到有效代碼行的行號中存在漏記錄的行號時,將漏記錄的行號記錄為已編譯的代碼行的行號。
            [0113]可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:將漏記錄的行號作為已編譯的代碼行的行號補入到源代碼被執行所生成的執行信息文件中,其中,執行信息文件至少包括:被記錄為已編譯的代碼行的行號,被記錄為已編譯的代碼行被執行的次數。
            [0114]可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:按照行號的順序將漏記錄的行號補入到執行信息文件中對應的位置上,并在位置上記錄漏記錄的行號對應的代碼行被執行的次數,其中,漏記錄的行號對應的代碼行被執行的次數等于漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。
            [0115]可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:從源代碼中過濾掉注釋行、空白行和與源代碼執行不相關的符號信息,得到第一代碼;將第一代碼中的代碼行的行號記錄為有效代碼行的行號。
            [0116]可選地,存儲介質還被設置為存儲用于執行以下步驟的程序代碼:使用預定的標識符從編譯信息文件中獲取每個基本塊的信息,其中,標識符用于標識基本塊的起始位置;從基本塊的信息中識別出基本塊的標識、已編譯的代碼行的行號,其中,已編譯的代碼行的行號包括被記錄的最小行號和最大行號。
            [0117]可選地,本實施例中的具體示例可以參考上述實施例1和實施例2中所描述的示例,本實施例在此不再贅述。
            [0118]可選地,在本實施例中,上述存儲介質可以包括但不限于:U盤、只讀存儲器(R0M,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質。
            [0119]上述本發明實施例序號僅僅為了描述,不代表實施例的優劣。
            [0120]上述實施例中的集成的單元如果以軟件功能單元的形式實現并作為獨立的產品銷售或使用時,可以存儲在上述計算機可讀取的存儲介質中。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在存儲介質中,包括若干指令用以使得一臺或多臺計算機設備(可為個人計算機、服務器或者網絡設備等)執行本發明各個實施例所述方法的全部或部分步驟。
            [0121]在本發明的上述實施例中,對各個實施例的描述都各有側重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關描述。
            [0122]在本申請所提供的幾個實施例中,應該理解到,所揭露的客戶端,可通過其它的方式實現。其中,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特征可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
            [0123]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
            [0124]另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現,也可以采用軟件功能單元的形式實現。
            [0125]以上所述僅是本發明的優選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護范圍。
            【主權項】
            1.一種代碼編譯結果的檢測方法,其特征在于,包括: 從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個所述基本塊的信息包括:所述源代碼中的一段代碼中被記錄為已編譯的代碼行的行號; 從所述源代碼中獲取有效代碼行的行號; 檢測所述有效代碼行的行號中是否存在漏記錄的行號,其中,所述漏記錄的行號為未記錄在所述基本塊的信息中、且位于所述基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;以及 在檢測到所述有效代碼行的行號中存在所述漏記錄的行號時,將所述漏記錄的行號記錄為已編譯的代碼行的行號。2.根據權利要求1所述的方法,其特征在于,將所述漏記錄的行號記錄為已編譯的代碼行的行號包括: 將所述漏記錄的行號作為已編譯的代碼行的行號補入到所述源代碼被執行所生成的執行信息文件中,其中,所述執行信息文件至少包括:所述被記錄為已編譯的代碼行的行號,所述被記錄為已編譯的代碼行被執行的次數。3.根據權利要求2所述的方法,其特征在于,將所述漏記錄的行號作為已編譯的代碼行的行號補入到所述源代碼被執行所生成的執行信息文件中包括: 按照行號的順序將所述漏記錄的行號補入到所述執行信息文件中對應的位置上,并在所述位置上記錄所述漏記錄的行號對應的代碼行被執行的次數,其中,所述漏記錄的行號對應的代碼行被執行的次數等于所述漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。4.根據權利要求1所述的方法,其特征在于,從所述源代碼中獲取有效代碼行的行號包括: 從所述源代碼中過濾掉注釋行、空白行和與所述源代碼執行不相關的符號信息,得到第一代碼; 將所述第一代碼中的代碼行的行號記錄為所述有效代碼行的行號。5.根據權利要求1所述的方法,其特征在于,從對源代碼進行編譯所生成的編譯信息文件獲取基本塊的信息包括: 使用預定的標識符從所述編譯信息文件中獲取每個所述基本塊的信息,其中,所述標識符用于標識所述基本塊的起始位置; 從所述基本塊的信息中識別出所述基本塊的標識、所述已編譯的代碼行的行號,其中,所述已編譯的代碼行的行號包括所述被記錄的最小行號和最大行號。6.一種代碼編譯結果的檢測裝置,其特征在于,包括: 第一獲取模塊,用于從對源代碼進行編譯所生成的編譯信息文件中獲取基本塊的信息,其中,每個所述基本塊的信息包括:所述源代碼中的一段代碼中被記錄為已編譯的代碼行的行號; 第二獲取模塊,用于從所述源代碼中獲取有效代碼行的行號; 檢測模塊,用于檢測所述有效代碼行的行號中是否存在漏記錄的行號,其中,所述漏記錄的行號為未記錄在所述基本塊的信息中、且位于所述基本塊的信息包括的被記錄的最小行號和最大行號所構成的行號區間內的行號;以及 記錄模塊,用于在檢測到所述有效代碼行的行號中存在所述漏記錄的行號時,將所述漏記錄的行號記錄為已編譯的代碼行的行號。7.根據權利要求6所述的裝置,其特征在于,所述記錄模塊包括: 補錄模塊,用于將所述漏記錄的行號作為已編譯的代碼行的行號補入到所述源代碼被執行所生成的執行信息文件中,其中,所述執行信息文件至少包括:所述被記錄為已編譯的代碼行的行號,所述被記錄為已編譯的代碼行被執行的次數。8.根據權利要求7所述的裝置,其特征在于,所述補錄模塊包括: 第一子補錄模塊,用于按照行號的順序將所述漏記錄的行號補入到所述執行信息文件中對應的位置上,并在所述位置上記錄所述漏記錄的行號對應的代碼行被執行的次數,其中,所述漏記錄的行號對應的代碼行被執行的次數等于所述漏記錄的行號所在的行號區間中已編譯的代碼行的行號對應的代碼行被執行的次數。9.根據權利要求6所述的裝置,其特征在于,所述第二獲取模塊包括: 過濾模塊,用于從所述源代碼中過濾掉注釋行、空白行和與所述源代碼執行不相關的符號信息,得到第一代碼; 第一子記錄模塊,用于將所述第一代碼中的代碼行的行號記錄為所述有效代碼行的行號。10.根據權利要求6所述的裝置,其特征在于,所述第一獲取模塊包括: 第一子獲取模塊,用于使用預定的標識符從所述編譯信息文件中獲取每個所述基本塊的信息,其中,所述標識符用于標識所述基本塊的起始位置; 識別模塊,用于從所述基本塊的信息中識別出所述基本塊的標識、所述已編譯的代碼行的行號,其中,所述已編譯的代碼行的行號包括所述被記錄的最小行號和最大行號。
            【文檔編號】G06F11/36GK105843740SQ201610172311
            【公開日】2016年8月10日
            【申請日】2016年3月23日
            【發明人】劉華星, 唐志彬, 朱喬
            【申請人】騰訊科技(深圳)有限公司
            網友詢問留言 已有0條留言
            • 還沒有人留言評論。精彩留言會獲得點贊!
            1
            婷婷六月激情在线综合激情,亚洲国产大片,久久中文字幕综合婷婷,精品久久久久久中文字幕,亚洲一区二区三区高清不卡,99国产精品热久久久久久夜夜嗨 ,欧美日韩亚洲综合在线一区二区,99国产精品电影,伊人精品线视天天综合,精品伊人久久久大香线蕉欧美
            亚洲精品1区 国产成人一级 91精品国产欧美一区二区 亚洲精品乱码久久久久久下载 国产精品久久久久久久伊一 九色国产 国产精品九九视频 伊人久久成人爱综合网 欧美日韩亚洲区久久综合 欧美日本一道免费一区三区 夜夜爽一区二区三区精品 欧美日韩高清一区二区三区 国产成人av在线 国产精品对白交换绿帽视频 国产视频亚洲 国产在线欧美精品 国产精品综合网 国产日韩精品欧美一区色 国产日韩精品欧美一区喷 欧美日韩在线观看区一二 国产区精品 欧美视频日韩视频 中文字幕天天躁日日躁狠狠躁97 视频一二三区 欧美高清在线精品一区二区不卡 国产精品揄拍一区二区久久 99久久综合狠狠综合久久aⅴ 亚洲乱码视频在线观看 日韩在线第二页 亚洲精品无码专区在线播放 成人亚洲网站www在线观看 欧美三级一区二区 99久久精品免费看国产高清 91麻豆国产在线观看 最新日韩欧美不卡一二三区 成人在线观看不卡 日韩国产在线 在线亚洲精品 亚洲午夜久久久久中文字幕 国产精品成人久久久久久久 精品国产一区二区在线观看 欧美精品国产一区二区三区 中文在线播放 亚洲第一页在线视频 国产午夜精品福利久久 九色国产 精品国产九九 国产永久视频 久久精品人人做人人综合试看 国产一区二区三区免费观看 亚洲精品国产电影 9999热视频 国产精品资源在线 麻豆久久婷婷国产综合五月 国产精品免费一级在线观看 亚洲国产一区二区三区青草影视 中文在线播放 国产成人综合在线 国产在线观看色 国产亚洲三级 国产片一区二区三区 久久99精品久久久久久牛牛影视 亚洲欧美日韩国产 四虎永久免费网站 国产一毛片 国产精品视频在 九九热在线精品 99精品福利视频 色婷婷色99国产综合精品 97成人精品视频在线播放 精品久久久久久中文字幕 亚洲欧美一区二区三区孕妇 亚洲欧美成人网 日韩高清在线二区 国产尤物在线观看 在线不卡一区二区 91网站在线看 韩国精品福利一区二区 欧美日韩国产成人精品 99热精品久久 国产精品免费视频一区 高清视频一区 精品九九久久 欧美日韩在线观看免费 91欧美激情一区二区三区成人 99福利视频 亚洲国产精品91 久热国产在线 精品久久久久久中文字幕女 国产精品久久久久久久久99热 成人自拍视频网 国产精品视频久久久久久 久久影院国产 国产玖玖在线观看 99精品在线免费 亚洲欧美一区二区三区导航 久久久久久久综合 国产欧美日韩精品高清二区综合区 国产精品视频自拍 亚洲一级片免费 久久久久久九九 国产欧美自拍视频 视频一区二区在线观看 欧美日韩一区二区三区久久 中文在线亚洲 伊人热人久久中文字幕 日韩欧美亚洲国产一区二区三区 欧美亚洲国产成人高清在线 欧美日韩国产码高清综合人成 国产性大片免费播放网站 亚洲午夜综合网 91精品久久一区二区三区 国产无套在线播放 国产精品视频网站 国产成人亚洲精品老王 91在线网站 国产视频97 欧美黑人欧美精品刺激 国产一区二区三区免费在线视频 久久久国产精品免费看 99re6久精品国产首页 久久精品91 国产成人一级 国产成人精品曰本亚洲 日本福利在线观看 伊人成综合网 久久综合一本 国产综合久久久久久 久久精品成人免费看 久久福利 91精品国产91久久久久久麻豆 亚洲精品成人在线 亚洲伊人久久精品 欧美日本二区 国产永久视频 国产一区二 一区二区福利 国产一毛片 亚洲精品1区 毛片一区二区三区 伊人久久大香线蕉综合影 国产欧美在线观看一区 亚洲国产欧洲综合997久久 国产一区二区免费视频 国产91精品对白露脸全集观看 久久亚洲国产伦理 欧美成人伊人久久综合网 亚洲性久久久影院 久久99国产精一区二区三区! 91精品国产欧美一区二区 欧美日韩亚洲区久久综合 日韩精品一二三区 久久久夜色精品国产噜噜 国产在线精品福利91香蕉 久久久久久久亚洲精品 97se色综合一区二区二区 91国语精品自产拍在线观看性色 91久久国产综合精品女同我 日韩中文字幕a 国产成人亚洲日本精品 久久国产精品-国产精品 久久国产经典视频 久久国产精品伦理 亚洲第一页在线视频 国产精品久久久久三级 日韩毛片网 久久免费高清视频 麻豆国产在线观看一区二区 91麻豆国产福利在线观看 国产成人精品男人的天堂538 一区二区三区中文字幕 免费在线视频一区 欧美日韩国产成人精品 国产综合网站 国产资源免费观看 亚洲精品亚洲人成在线播放 精品久久久久久中文字幕专区 亚洲人成人毛片无遮挡 国产一起色一起爱 国产香蕉精品视频在 九九热免费观看 日韩亚洲欧美一区 九九热精品在线观看 精品久久久久久中文字幕专区 亚洲欧美自拍偷拍 国产精品每日更新 久久久久国产一级毛片高清板 久久天天躁狠狠躁夜夜中文字幕 久久精品片 日韩在线毛片 国产成人精品本亚洲 国产成人精品一区二区三区 九九热在线观看 国产r级在线观看 国产欧美日韩精品高清二区综合区 韩国电影一区二区 国产精品毛片va一区二区三区 五月婷婷伊人网 久久一区二区三区免费 一本色道久久综合狠狠躁篇 亚洲综合色站 国产尤物在线观看 亚洲一区亚洲二区 免费在线视频一区 欧洲精品视频在线观看 日韩中文字幕a 中文字幕日本在线mv视频精品 91精品在线免费视频 精品国产免费人成在线观看 精品a级片 中文字幕日本在线mv视频精品 日韩在线精品视频 婷婷丁香色 91精品国产高清久久久久 国产成人精品日本亚洲直接 五月综合视频 欧美日韩在线亚洲国产人 精液呈暗黄色 亚洲乱码一区 久久精品中文字幕不卡一二区 亚洲天堂精品在线 激情婷婷综合 国产免费久久精品久久久 国产精品亚洲二区在线 久久免费播放视频 五月婷婷丁香综合 在线亚洲欧美日韩 久久免费精品高清麻豆 精品久久久久久中文字幕 亚洲一区网站 国产精品福利社 日韩中文字幕免费 亚洲综合丝袜 91精品在线播放 国产精品18 亚洲日日夜夜 伊人久久大香线蕉综合影 亚洲精品中文字幕乱码影院 亚洲一区二区黄色 亚洲第一页在线视频 一区二区在线观看视频 国产成人福利精品视频 亚洲高清二区 国内成人免费视频 精品亚洲性xxx久久久 国产精品合集一区二区三区 97av免费视频 国产一起色一起爱 国产区久久 国产资源免费观看 99精品视频免费 国产成人一级 国产精品九九免费视频 欧美91精品久久久久网免费 99热国产免费 久久精品色 98精品国产综合久久 久久精品播放 中文字幕视频免费 国产欧美日韩一区二区三区在线 精品久久蜜桃 国产小视频精品 一本色道久久综合狠狠躁篇 91在线免费观看 亚洲精品区 伊人成综合网 伊人热人久久中文字幕 伊人黄色片 99国产精品热久久久久久夜夜嗨 久久免费精品视频 亚洲一区二区三区高清不卡 久久久久国产一级毛片高清板 国产片一区二区三区 久久狠狠干 99久久婷婷国产综合精品电影 国产99区 国产精品成人久久久久 久久狠狠干 青青国产在线观看 亚洲高清国产拍精品影院 国产精品一区二区av 九九热在线免费视频 伊人久久国产 国产精品久久久久久久久久一区 在线观看免费视频一区 国产精品自在在线午夜区app 国产精品综合色区在线观看 国产毛片久久久久久国产毛片 97国产免费全部免费观看 国产精品每日更新 国产尤物视频在线 九九视频这里只有精品99 一本一道久久a久久精品综合 久久综合给会久久狠狠狠 国产成人精品男人的天堂538 欧美一区二区高清 毛片一区二区三区 国产欧美日韩在线观看一区二区三区 在线国产二区 欧美不卡网 91在线精品中文字幕 在线国产福利 国内精品91久久久久 91亚洲福利 日韩欧美国产中文字幕 91久久精品国产性色也91久久 亚洲性久久久影院 欧美精品1区 国产热re99久久6国产精品 九九热免费观看 国产精品欧美日韩 久久久久国产一级毛片高清板 久久国产经典视频 日韩欧美亚洲国产一区二区三区 欧美亚洲综合另类在线观看 国产精品自在在线午夜区app 97中文字幕在线观看 视频一二三区 精品国产一区在线观看 国产欧美日韩在线一区二区不卡 欧美一区二三区 伊人成人在线观看 国内精品91久久久久 97在线亚洲 国产在线不卡一区 久久久全免费全集一级全黄片 国产精品v欧美精品∨日韩 亚洲毛片网站 在线不卡一区二区 99re热在线视频 久久激情网 国产毛片一区二区三区精品 久久亚洲综合色 中文字幕视频免费 国产视频亚洲 婷婷伊人久久 国产一区二区免费播放 久久99国产精品成人欧美 99国产在线视频 国产成人免费视频精品一区二区 国产不卡一区二区三区免费视 国产码欧美日韩高清综合一区 久久精品国产主播一区二区 国产一区电影 久久精品国产夜色 国产精品国产三级国产 日韩一区二区三区在线 久久97久久97精品免视看 久久国产免费一区二区三区 伊人久久大香线蕉综合电影网 99re6久精品国产首页 久久激情网 亚洲成人高清在线 国产精品网址 国产成人精品男人的天堂538 香蕉国产综合久久猫咪 国产专区中文字幕 91麻豆精品国产高清在线 久久国产经典视频 国产精品成人va在线观看 国产精品爱啪在线线免费观看 日本精品久久久久久久久免费 亚洲综合一区二区三区 久久五月网 精品国产网红福利在线观看 久久综合亚洲伊人色 亚洲国产精品久久久久久网站 在线日韩国产 99国产精品热久久久久久夜夜嗨 国产综合精品在线 国产区福利 精品亚洲综合久久中文字幕 国产制服丝袜在线 毛片在线播放网站 在线观看免费视频一区 国产精品久久久精品三级 亚洲国产电影在线观看 最新日韩欧美不卡一二三区 狠狠综合久久综合鬼色 日本精品1在线区 国产日韩一区二区三区在线播放 欧美日韩精品在线播放 亚洲欧美日韩国产一区二区三区精品 久久综合久久网 婷婷六月激情在线综合激情 亚洲乱码一区 国产专区91 97av视频在线观看 精品久久久久久中文字幕 久久五月视频 国产成人福利精品视频 国产精品网址 中文字幕视频在线 精品一区二区三区免费视频 伊人手机在线视频 亚洲精品中文字幕乱码 国产在线视频www色 色噜噜国产精品视频一区二区 精品亚洲成a人在线观看 国产香蕉尹人综合在线 成人免费一区二区三区在线观看 国产不卡一区二区三区免费视 欧美精品久久天天躁 国产专区中文字幕 久久精品国产免费中文 久久精品国产免费一区 久久无码精品一区二区三区 国产欧美另类久久久精品免费 欧美精品久久天天躁 亚洲精品在线视频 国产视频91在线 91精品福利一区二区三区野战 日韩中文字幕免费 国产精品99一区二区三区 欧美成人高清性色生活 国产精品系列在线观看 亚洲国产福利精品一区二区 国产成人在线小视频 国产精品久久久久免费 99re热在线视频 久久久久久久综合 一区二区国产在线播放 成人国产在线视频 亚洲精品乱码久久久久 欧美日韩一区二区综合 精品久久久久免费极品大片 中文字幕视频二区 激情粉嫩精品国产尤物 国产成人精品一区二区视频 久久精品中文字幕首页 亚洲高清在线 国产精品亚洲一区二区三区 伊人久久艹 中文在线亚洲 国产精品一区二区在线播放 国产精品九九免费视频 亚洲二区在线播放 亚洲狠狠婷婷综合久久久久网站 亚洲欧美日韩网站 日韩成人精品 亚洲国产一区二区三区青草影视 91精品国产福利在线观看 国产精品久久久久久久久99热 国产一区二区精品尤物 久碰香蕉精品视频在线观看 亚洲日日夜夜 在线不卡一区二区 国产午夜亚洲精品 九九热在线视频观看这里只有精品 伊人手机在线视频 91免费国产精品 日韩欧美中字 91精品国产91久久久久 国产全黄三级播放 视频一区二区三区免费观看 国产开裆丝袜高跟在线观看 国产成人欧美 激情综合丝袜美女一区二区 国产成人亚洲综合无 欧美精品一区二区三区免费观看 欧美亚洲国产日韩 日韩亚州 国产欧美日韩精品高清二区综合区 亚洲午夜国产片在线观看 精品久久久久久中文字幕 欧美精品1区 久久伊人久久亚洲综合 亚洲欧美日韩精品 国产成人精品久久亚洲高清不卡 久久福利影视 国产精品99精品久久免费 久久久久免费精品视频 国产日产亚洲精品 亚洲国产午夜电影在线入口 精品无码一区在线观看 午夜国产精品视频 亚洲一级片免费 伊人久久大香线蕉综合影 国产精品久久影院 久碰香蕉精品视频在线观看 www.欧美精品 在线小视频国产 亚洲国产天堂久久综合图区 欧美一区二区三区不卡 日韩美女福利视频 九九精品免视频国产成人 不卡国产00高中生在线视频 亚洲第一页在线视频 欧美日韩在线播放成人 99re视频这里只有精品 国产精品91在线 精品乱码一区二区三区在线 国产区久久 91麻豆精品国产自产在线观看一区 日韩精品成人在线 九九热在线观看 国产精品久久不卡日韩美女 欧美一区二区三区综合色视频 欧美精品免费一区欧美久久优播 国产精品网址 国产专区中文字幕 国产精品欧美亚洲韩国日本久久 日韩美香港a一级毛片 久久精品123 欧美一区二区三区免费看 99r在线视频 亚洲精品国产字幕久久vr 国产综合激情在线亚洲第一页 91免费国产精品 日韩免费小视频 亚洲国产精品综合一区在线 国产亚洲第一伦理第一区 在线亚洲精品 国产精品一区二区制服丝袜 国产在线成人精品 九九精品免视频国产成人 亚洲国产网 欧美日韩亚洲一区二区三区在线观看 在线亚洲精品 欧美一区二区三区高清视频 国产成人精品男人的天堂538 欧美日韩在线观看区一二 亚洲欧美一区二区久久 久久精品中文字幕首页 日本高清www午夜视频 久久精品国产免费 久久999精品 亚洲国产精品欧美综合 88国产精品视频一区二区三区 91久久偷偷做嫩草影院免费看 国产精品夜色视频一区二区 欧美日韩导航 国产成人啪精品午夜在线播放 一区二区视频在线免费观看 99久久精品国产自免费 精液呈暗黄色 久久99国产精品 日本精品久久久久久久久免费 精品国产97在线观看 99re视频这里只有精品 国产视频91在线 999av视频 亚洲美女视频一区二区三区 久久97久久97精品免视看 亚洲国产成人久久三区 99久久亚洲国产高清观看 日韩毛片在线视频 综合激情在线 91福利一区二区在线观看 一区二区视频在线免费观看 激情粉嫩精品国产尤物 国产成人精品曰本亚洲78 国产成人精品本亚洲 国产精品成人免费视频 国产成人啪精品视频免费软件 久久精品国产亚洲妲己影院 国产精品成人久久久久久久 久久大香线蕉综合爱 欧美一区二区三区高清视频 99热国产免费 在线观看欧美国产 91精品视频在线播放 国产精品福利社 欧美精品一区二区三区免费观看 国产一区二区免费视频 国产午夜精品一区二区 精品视频在线观看97 91精品福利久久久 国产一区福利 国产综合激情在线亚洲第一页 国产精品久久久久久久久久久不卡 九色国产 在线日韩国产 黄网在线观看 亚洲一区小说区中文字幕 中文字幕丝袜 日本二区在线观看 日本国产一区在线观看 欧美日韩一区二区三区久久 欧美精品亚洲精品日韩专 国产日产亚洲精品 久久综合九色综合欧美播 亚洲国产欧美无圣光一区 欧美视频区 亚洲乱码视频在线观看 久久无码精品一区二区三区 九九热精品免费视频 久久99精品久久久久久牛牛影视 国产精品成久久久久三级 国产一区福利 午夜国产精品视频 日本二区在线观看 99久久网站 国产亚洲天堂 精品国产一区二区三区不卡 亚洲国产日韩在线一区 国产成人综合在线观看网站 久久免费高清视频 欧美在线导航 午夜精品久久久久久99热7777 欧美久久综合网 国产小视频精品 国产尤物在线观看 亚洲国产精品综合一区在线 欧美一区二区三区不卡视频 欧美黑人欧美精品刺激 日本福利在线观看 久久国产偷 国产手机精品一区二区 国产热re99久久6国产精品 国产高清啪啪 欧美亚洲国产成人高清在线 国产在线第三页 亚洲综合一区二区三区 99r在线视频 99精品久久久久久久婷婷 国产精品乱码免费一区二区 国产在线精品福利91香蕉 国产尤物视频在线 五月婷婷亚洲 中文字幕久久综合伊人 亚洲精品一级毛片 99国产精品电影 在线视频第一页 久久99国产精品成人欧美 国产白白视频在线观看2 成人精品一区二区www 亚洲成人网在线观看 麻豆91在线视频 色综合合久久天天综合绕视看 久久精品国产免费高清 国产不卡一区二区三区免费视 欧美国产中文 99精品欧美 九九在线精品 国产中文字幕在线免费观看 国产一区中文字幕在线观看 国产成人一级 国产精品一区二区制服丝袜 国产一起色一起爱 亚洲精品成人在线 亚洲欧美精品在线 国产欧美自拍视频 99精品久久久久久久婷婷 久99视频 国产热re99久久6国产精品 视频一区亚洲 国产精品视频分类 国产精品成在线观看 99re6久精品国产首页 亚洲在成人网在线看 亚洲国产日韩在线一区 久久国产三级 日韩国产欧美 欧美在线一区二区三区 国产精品美女一级在线观看 成人午夜免费福利视频 亚洲天堂精品在线 91精品国产手机 欧美日韩视频在线播放 狠狠综合久久综合鬼色 九一色视频 青青视频国产 亚洲欧美自拍一区 中文字幕天天躁日日躁狠狠躁97 日韩免费大片 996热视频 伊人成综合网 亚洲天堂欧美 日韩精品亚洲人成在线观看 久久综合给会久久狠狠狠 日韩精品亚洲人成在线观看 日韩国产欧美 亚洲成aⅴ人片在线影院八 亚洲精品1区 99久久精品免费 国产精品高清在线观看 国产精品久久久免费视频 在线亚洲欧美日韩 91在线看视频 国产精品96久久久久久久 欧美日韩国产成人精品 91在线亚洲 热久久亚洲 国产精品美女免费视频观看 日韩在线毛片 亚洲永久免费视频 九九免费在线视频 亚洲一区网站 日本高清二区视频久二区 精品国产美女福利在线 伊人久久艹 国产精品久久久久三级 欧美成人精品第一区二区三区 99久久精品国产自免费 在线观看日韩一区 国产中文字幕一区 成人免费午夜视频 欧美日韩另类在线 久久99国产精品成人欧美 色婷婷中文网 久久天天躁夜夜躁狠狠躁2020 欧美成人伊人久久综合网 国产精品福利资源在线 国产伦精品一区二区三区高清 国产精品亚洲综合色区韩国 亚洲一区欧美日韩 色综合视频 国语自产精品视频在线区 国产高清a 成人国内精品久久久久影 国产在线精品香蕉综合网一区 国产不卡在线看 国产成人精品精品欧美 国产欧美日韩综合精品一区二区三区 韩国电影一区二区 国产在线视频www色 91中文字幕在线一区 国产人成午夜免视频网站 亚洲综合一区二区三区 色综合视频一区二区观看 久久五月网 九九热精品在线观看 国产一区二区三区国产精品 99久热re在线精品996热视频 亚洲国产网 在线视频亚洲一区 日韩字幕一中文在线综合 国产高清一级毛片在线不卡 精品国产色在线 国产高清视频一区二区 精品日本久久久久久久久久 亚洲国产午夜精品乱码 成人免费国产gav视频在线 日韩欧美一区二区在线观看 欧美曰批人成在线观看 韩国电影一区二区 99re这里只有精品6 日韩精品一区二区三区视频 99re6久精品国产首页 亚洲欧美一区二区三区导航 欧美色图一区二区三区 午夜精品视频在线观看 欧美激情在线观看一区二区三区 亚洲热在线 成人国产精品一区二区网站 亚洲一级毛片在线播放 亚洲一区小说区中文字幕 亚洲午夜久久久久影院 国产自产v一区二区三区c 国产精品视频免费 久久调教视频 国产成人91激情在线播放 国产精品欧美亚洲韩国日本久久 久久亚洲日本不卡一区二区 91中文字幕网 成人国产在线视频 国产视频91在线 欧美成人精品第一区二区三区 国产精品福利在线 久久综合九色综合精品 欧美一区二区三区精品 久久国产综合尤物免费观看 久久99青青久久99久久 日韩精品免费 久久国产精品999 91亚洲视频在线观看 国产精品igao视频 色综合区 在线亚洲欧国产精品专区 国产一区二区三区在线观看视频 亚洲精品成人在线 一区二区国产在线播放 中文在线亚洲 亚洲精品第一国产综合野 国产一区二区精品久久 一区二区三区四区精品视频 99热精品久久 中文字幕视频二区 国产成人精品男人的天堂538 99精品影视 美女福利视频一区二区 久久午夜夜伦伦鲁鲁片 综合久久久久久久综合网 国产精品国产欧美综合一区 国产99视频在线观看 国产亚洲女在线精品 婷婷影院在线综合免费视频 国产亚洲3p一区二区三区 91成人爽a毛片一区二区 亚洲一区二区高清 国产欧美亚洲精品第二区首页 欧美日韩导航 亚洲高清二区 欧美激情观看一区二区久久 日韩毛片在线播放 亚洲欧美日韩高清中文在线 亚洲日本在线播放 国产精品一区二区制服丝袜 精品国产一区二区三区不卡 国产不卡在线看 国产欧美网站 四虎永久在线观看视频精品 国产黄色片在线观看 夜夜综合 一本色道久久综合狠狠躁篇 欧美亚洲综合另类在线观看 国产91在线看 伊人久久国产 欧美一区二区在线观看免费网站 国产精品久久久久三级 久久福利 日韩中文字幕a 亚洲午夜久久久久影院 91在线高清视频 国产亚洲一区二区三区啪 久久人精品 国产精品亚洲午夜一区二区三区 综合久久久久久 久久伊人一区二区三区四区 国产综合久久久久久 日韩一区精品视频在线看 国产精品日韩欧美制服 日本精品1在线区 99re视频 无码av免费一区二区三区试看 国产视频1区 日韩欧美中文字幕一区 日本高清中文字幕一区二区三区a 亚洲国产欧美无圣光一区 国产在线视频一区二区三区 欧美国产第一页 在线亚洲欧美日韩 日韩中文字幕第一页 在线不卡一区二区 伊人久久青青 国产精品一区二区在线播放 www.五月婷婷 麻豆久久婷婷国产综合五月 亚洲精品区 久久国产欧美另类久久久 99在线视频免费 伊人久久中文字幕久久cm 久久精品成人免费看 久久这里只有精品首页 88国产精品视频一区二区三区 中文字幕日本在线mv视频精品 国产在线精品成人一区二区三区 伊人精品线视天天综合 亚洲一区二区黄色 国产尤物视频在线 亚洲精品99久久久久中文字幕 国产一区二区三区免费观看 伊人久久大香线蕉综合电影网 国产成人精品区在线观看 日本精品一区二区三区视频 日韩高清在线二区 久久免费播放视频 一区二区成人国产精品 国产精品免费精品自在线观看 亚洲精品视频二区 麻豆国产精品有码在线观看 精品日本一区二区 亚洲欧洲久久 久久中文字幕综合婷婷 中文字幕视频在线 国产成人精品综合在线观看 91精品国产91久久久久福利 精液呈暗黄色 香蕉国产综合久久猫咪 国产专区精品 亚洲精品无码不卡 国产永久视频 亚洲成a人片在线播放观看国产 一区二区国产在线播放 亚洲一区二区黄色 欧美日韩在线观看视频 亚洲精品另类 久久国产综合尤物免费观看 国产一区二区三区国产精品 高清视频一区 国产精品igao视频 国产精品资源在线 久久综合精品国产一区二区三区 www.五月婷婷 精品色综合 99热国产免费 麻豆福利影院 亚洲伊人久久大香线蕉苏妲己 久久电影院久久国产 久久精品伊人 在线日韩理论午夜中文电影 亚洲国产欧洲综合997久久 伊人国产精品 久草国产精品 欧美一区精品二区三区 亚洲成人高清在线 91免费国产精品 日韩精品福利在线 国产一线在线观看 国产不卡在线看 久久99青青久久99久久 亚洲精品亚洲人成在线播放 99久久免费看国产精品 国产日本在线观看 青草国产在线视频 麻豆久久婷婷国产综合五月 国产中文字幕一区 91久久精品国产性色也91久久 国产一区a 国产欧美日韩成人 国产亚洲女在线精品 一区二区美女 中文字幕在线2021一区 在线小视频国产 久久这里只有精品首页 国产在线第三页 欧美日韩中文字幕 在线亚洲+欧美+日本专区 精品国产一区二区三区不卡 久久这里精品 欧美在线va在线播放 精液呈暗黄色 91精品国产手机 91在线免费播放 欧美视频亚洲色图 欧美国产日韩精品 日韩高清不卡在线 精品视频免费观看 欧美日韩一区二区三区四区 国产欧美亚洲精品第二区首页 亚洲韩精品欧美一区二区三区 国产精品视频免费 在线精品小视频 久久午夜夜伦伦鲁鲁片 国产无套在线播放 久热这里只精品99re8久 欧美久久久久 久久香蕉国产线看观看精品蕉 国产成人精品男人的天堂538 亚洲人成网站色7799在线观看 日韩在线第二页 一本色道久久综合狠狠躁篇 国产一区二区三区不卡在线观看 亚洲乱码在线 在线观看欧美国产 久久福利青草精品资源站免费 国产玖玖在线观看 在线亚洲精品 亚洲成aⅴ人在线观看 精品91在线 欧美一区二三区 日韩中文字幕视频在线 日本成人一区二区 日韩免费专区 国内精品在线观看视频 久久国产综合尤物免费观看 国产精品系列在线观看 一本一道久久a久久精品综合 亚洲免费播放 久久精品国产免费 久久人精品 亚洲毛片网站 亚洲成a人一区二区三区 韩国福利一区二区三区高清视频 亚洲精品天堂在线 一区二区三区中文字幕 亚洲国产色婷婷精品综合在线观看 亚洲国产成人久久笫一页 999国产视频 国产精品香港三级在线电影 欧美日韩一区二区三区四区 日韩国产欧美 国产精品99一区二区三区 午夜国产精品理论片久久影院 亚洲精品中文字幕麻豆 亚洲国产高清视频 久久免费手机视频 日韩a在线观看 五月婷婷亚洲 亚洲精品中文字幕麻豆 中文字幕丝袜 www国产精品 亚洲天堂精品在线 亚洲乱码一区 国产日韩欧美三级 久久999精品 伊人热人久久中文字幕 久热国产在线视频 国产欧美日韩在线观看一区二区三区 国产一二三区在线 日韩国产欧美 91精品国产91久久久久 亚洲一区小说区中文字幕 精品一区二区免费视频 国产精品视频免费 国产精品亚洲综合色区韩国 亚洲国产精品成人午夜在线观看 欧美国产日韩精品 中文字幕精品一区二区精品