亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

調(diào)用堆棧關(guān)系獲取方法及裝置的制造方法

文檔序號(hào):8922385閱讀:389來源:國知局
調(diào)用堆棧關(guān)系獲取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)技術(shù)領(lǐng)域,特別涉及一種調(diào)用堆棧關(guān)系獲取方法及裝置。
【背景技術(shù)】
[0002] JavaScript函數(shù)的調(diào)用堆棧關(guān)系指JavaScript函數(shù)之間的調(diào)用關(guān)系。例如,A文 件a函數(shù)調(diào)用了B文件b函數(shù),B文件b函數(shù)調(diào)用了C文件c函數(shù),則調(diào)用堆棧關(guān)系可以表 示為:A:a->B:b_>C:c。開發(fā)人員根據(jù)該JavaScript函數(shù)的調(diào)用堆棧關(guān)系,能夠在缺乏相應(yīng) 的函數(shù)名和程序注釋的情況下,閱讀JavaScript代碼。
[0003] -般地,在JavaScript代碼發(fā)布前,采用JavaScript代碼混淆技術(shù)對待發(fā)布 JavaScript代碼進(jìn)行混淆,將待發(fā)布代碼中的所有變量、函數(shù)、類的名稱變?yōu)楹喍痰挠⑽淖?母代號(hào),去除待發(fā)布代碼中的冗余信息,使得混淆后代碼與混淆前代碼完成相同的功能,混 淆后代碼很難被反編譯,實(shí)現(xiàn)了對JavaScript代碼的保護(hù)。
[0004] 由于混淆后代碼缺乏相應(yīng)的函數(shù)名和程序注釋,使得開發(fā)人員無法閱讀混淆后代 碼,不能獲取混淆后代碼的函數(shù)之間的調(diào)用關(guān)系,無法對混淆后代碼進(jìn)行測試。

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

[0005] 為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種調(diào)用堆棧關(guān)系獲取方法及裝 置。所述技術(shù)方案如下:
[0006] -方面,提供了一種調(diào)用堆棧關(guān)系獲取方法,所述方法包括:
[0007] 對于打開的每一個(gè)頁面,記錄所述頁面所加載的多個(gè)代碼文件;
[0008] 對于所述頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù),在所述函數(shù)開始運(yùn)行和結(jié) 束運(yùn)行時(shí),至少獲取所述函數(shù)的調(diào)用層次,所述函數(shù)的調(diào)用層次包括調(diào)用所述函數(shù)的函數(shù) 名和所述函數(shù)調(diào)用的函數(shù)名中的至少一項(xiàng);
[0009] 根據(jù)所述多個(gè)代碼文件中每個(gè)函數(shù)的調(diào)用層次,得到所述多個(gè)代碼文件的調(diào)用堆 棧關(guān)系。
[0010] 另一方面,提供了一種調(diào)用堆棧關(guān)系獲取裝置,所述裝置包括:
[0011] 代碼文件加載模塊,用于對于打開的每一個(gè)頁面,記錄所述頁面所加載的多個(gè)代 碼文件;
[0012] 調(diào)用信息獲取模塊,用于對于所述頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù), 在所述函數(shù)開始運(yùn)行和結(jié)束運(yùn)行時(shí),至少獲取所述函數(shù)的調(diào)用層次,所述函數(shù)的調(diào)用層次 包括調(diào)用所述函數(shù)的函數(shù)名和所述函數(shù)調(diào)用的函數(shù)名中的至少一項(xiàng);
[0013] 調(diào)用堆棧關(guān)系獲取模塊,用于根據(jù)所述多個(gè)代碼文件中每個(gè)函數(shù)的調(diào)用層次,得 到所述多個(gè)代碼文件的調(diào)用堆棧關(guān)系。
[0014] 本發(fā)明實(shí)施例提供的技術(shù)方案帶來的有益效果是:
[0015] 在代碼運(yùn)行過程中,對于打開的每一個(gè)頁面,通過記錄該頁面所加載的多個(gè)代碼 文件,并記錄函數(shù)開始運(yùn)行和結(jié)束運(yùn)行時(shí)的調(diào)用層次,從而得到該頁面中多個(gè)代碼文件的 調(diào)用堆棧關(guān)系,該調(diào)用堆棧關(guān)系可以直觀顯示該頁面中多個(gè)代碼文件的函數(shù)之間的邏輯調(diào) 用關(guān)系,使得開發(fā)人員在缺乏相應(yīng)的函數(shù)名和程序注釋的情況下,也可以對代碼進(jìn)行測試。
【附圖說明】
[0016] 為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使 用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于 本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他 的附圖。
[0017] 圖1是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系獲取方法流程圖;
[0018] 圖2是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系獲取方法流程圖;
[0019] 圖3是本發(fā)明實(shí)施例提供的二元組獲取示意圖;
[0020] 圖4是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系獲取示意圖;
[0021] 圖5是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系應(yīng)用示意圖;
[0022] 圖6是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系應(yīng)用示意圖;
[0023] 圖7是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系獲取裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方 式作進(jìn)一步地詳細(xì)描述。
[0025] 圖1是本發(fā)明實(shí)施例提供的調(diào)用堆棧關(guān)系獲取流程圖。參見圖1,該實(shí)施例包括:
[0026] 101、對于打開的每一個(gè)頁面,記錄該頁面所加載的多個(gè)代碼文件。
[0027] 102、對于該頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù),在該函數(shù)開始運(yùn)行和結(jié) 束運(yùn)行時(shí),至少獲取該函數(shù)的調(diào)用層次,該函數(shù)的調(diào)用層次包括調(diào)用該函數(shù)的函數(shù)名和該 函數(shù)調(diào)用的函數(shù)名中的至少一項(xiàng)。
[0028] 103、根據(jù)該多個(gè)代碼文件中每個(gè)函數(shù)的調(diào)用層次,得到該多個(gè)代碼文件的調(diào)用堆 棧關(guān)系。
[0029] 本發(fā)明實(shí)施例提供的方法,在代碼運(yùn)行過程中,對于打開的每一個(gè)頁面,通過記錄 該頁面所加載的多個(gè)代碼文件,并記錄該頁面中多個(gè)代碼文件的每一個(gè)函數(shù)開始運(yùn)行和結(jié) 束運(yùn)行時(shí),函數(shù)的調(diào)用層次,從而得到該頁面中多個(gè)代碼文件的調(diào)用堆棧關(guān)系,該調(diào)用堆棧 關(guān)系可以直觀顯示該頁面中多個(gè)代碼文件的函數(shù)之間的邏輯調(diào)用關(guān)系,使得開發(fā)人員在缺 乏相應(yīng)的函數(shù)名和程序注釋的情況下,也可以對代碼進(jìn)行測試。
[0030] 可選地,對于該頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù),在該函數(shù)開始運(yùn)行 和結(jié)束運(yùn)行時(shí),至少獲取該函數(shù)的調(diào)用層次包括:
[0031] 對于該頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù),當(dāng)該函數(shù)開始運(yùn)行時(shí),至少 獲取調(diào)用該函數(shù)的函數(shù)名;
[0032] 當(dāng)該函數(shù)結(jié)束運(yùn)行時(shí),至少獲取該函數(shù)調(diào)用的函數(shù)名。
[0033] 可選地,該方法還包括:
[0034] 對于該頁面中運(yùn)行的多個(gè)代碼文件中的每一個(gè)函數(shù),在該函數(shù)開始運(yùn)行和結(jié)束運(yùn) 行時(shí),獲取該函數(shù)的行號(hào)。
[0035] 可選地,該方法還包括:
[0036] 確定變化的行號(hào)對應(yīng)的函數(shù);
[0037] 根據(jù)該多個(gè)代碼文件的調(diào)用堆棧關(guān)系,確定該函數(shù)在輸出的調(diào)用堆棧關(guān)系中所對 應(yīng)的部分;
[0038] 根據(jù)該函數(shù)在輸出的調(diào)用堆棧關(guān)系中所對應(yīng)的部分,確定當(dāng)前行號(hào)變化所影響的 功能。
[0039] 可選地,根據(jù)該函數(shù)在輸出的調(diào)用堆棧關(guān)系中所對應(yīng)的部分,確定當(dāng)前行號(hào)變化 所影響的功能包括:
[0040] 根據(jù)該函數(shù)在輸出的調(diào)用堆棧關(guān)系中所對應(yīng)的部分,確定該調(diào)用堆棧關(guān)系中所對 應(yīng)部分對應(yīng)的代碼文件;
[0041] 根據(jù)該代碼文件,確定加載該代碼文件的頁面對應(yīng)的功能。
[0042] 可選地,該方法還包括:
[0043] 對該多個(gè)代碼文件進(jìn)行混淆后,得到發(fā)布代碼;
[0044] 根據(jù)該多個(gè)代碼文件的調(diào)用堆棧關(guān)系,確定該發(fā)布代碼中函數(shù)之間的調(diào)用關(guān)系;
[0045] 根據(jù)該發(fā)布代碼中函數(shù)之間的調(diào)用關(guān)系,對該發(fā)布代碼進(jìn)行調(diào)整。
[0046] 圖2是本發(fā)
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1