mbly.Class.Funct1nA ();
5104:對(duì)前面S103中找到的函數(shù)名稱,通過(guò)命令!name2ee Assembly, dll Assembly.Class.Funct1nA,找到函數(shù)的編譯入口地址,例如:函數(shù)的編譯后的JITTED Code Address為:000007ff01593b00 ;
5105:對(duì)S104找到的函數(shù)編譯入口地址,通過(guò)BP命令設(shè)置斷點(diǎn)并輸入日志,具體命令:Bp 000007ff01593b00 "r $t0=i$t0+l;.printf \" Funct1nA executes: %d times,然后繼續(xù)程序執(zhí)行,看斷點(diǎn)是否命中,從而確認(rèn)問(wèn)題代碼。
[0025]如圖2所示,一種解決程序運(yùn)行期間停止響應(yīng)的裝置,包括,程序監(jiān)測(cè)模塊、程序調(diào)試模塊、程序?qū)Ρ饶K、地址尋找模塊和程序運(yùn)行模塊;
程序監(jiān)測(cè)模塊:出現(xiàn)程序停止響應(yīng)后,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及該請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間;
程序調(diào)試模塊:對(duì)程序的服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間,多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧;
程序?qū)Ρ饶K:對(duì)比上述程序調(diào)試模塊多次調(diào)用棧的結(jié)果,找到程序一直正在執(zhí)行的函數(shù)名稱;
地址尋找模塊:對(duì)于上述程序?qū)Ρ饶K找到的函數(shù)名稱,通過(guò)命令找到函數(shù)的編譯入口地址;
程序運(yùn)行模塊:對(duì)上述地址尋找模塊找到的函數(shù)編譯入口地址,通過(guò)命令設(shè)置斷點(diǎn)并輸入日志,然后繼續(xù)程序執(zhí)行,看斷點(diǎn)是否命中,從而確認(rèn)問(wèn)題代碼。
[0026]并發(fā)明技術(shù)方案中的IIS和windbg均為本領(lǐng)域技術(shù)人員明確的技術(shù)用語(yǔ)。而命令和函數(shù)中對(duì)于本領(lǐng)域技術(shù)人員均是明確的。
[0027]本發(fā)明技術(shù)方案適用于.net平臺(tái)開發(fā)的所有軟件程序。
[0028]綜上所述,本發(fā)明技術(shù)方案,
通過(guò)在系統(tǒng)上運(yùn)行插件監(jiān)控裝置,使得用戶可以直接判斷出系統(tǒng)問(wèn)題是否有插件引起,插件執(zhí)行的情況,運(yùn)行的效率,影響的數(shù)據(jù)可以通過(guò)管理界面清楚的得出。使產(chǎn)品系統(tǒng)自身得到了完善,不在受困于外部插件帶來(lái)的麻煩。
[0029]最后應(yīng)說(shuō)明的是:以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1.一種解決程序運(yùn)行期間停止響應(yīng)的方法,其特征在于,包括以下步驟: 步驟101、出現(xiàn)程序停止響應(yīng)后,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及該請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間; 步驟102、對(duì)程序的服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間,多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧; 步驟103、對(duì)比上述步驟102多次調(diào)用棧的結(jié)果,找到程序一直正在執(zhí)行的函數(shù)名稱; 步驟104、對(duì)于上述步驟103找到的函數(shù)名稱,通過(guò)命令找到函數(shù)的編譯入口地址; 步驟105、對(duì)步驟104找到的函數(shù)編譯入口地址,通過(guò)命令設(shè)置斷點(diǎn)并輸入日志,然后繼續(xù)程序執(zhí)行,看斷點(diǎn)是否命中,從而確認(rèn)問(wèn)題代碼。2.根據(jù)權(quán)利要求1所述的解決程序運(yùn)行期間停止響應(yīng)的方法,其特征在于,步驟101具體為:通過(guò)IIS的工作進(jìn)程的監(jiān)控請(qǐng)求時(shí)間,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間。3.根據(jù)權(quán)利要求1或2所述的解決程序運(yùn)行期間停止響應(yīng)的方法,其特征在于,步驟102具體為:使用windbg工具附加到服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧。4.根據(jù)權(quán)利要求3所述的解決程序運(yùn)行期間停止響應(yīng)的方法,其特征在于,所述預(yù)設(shè)的間隔時(shí)間為10秒。5.根據(jù)權(quán)利要求1或2所述的解決程序運(yùn)行期間停止響應(yīng)的方法,其特征在于,步驟105通過(guò)命令設(shè)置斷點(diǎn)并輸入日志中的命令為BP命令。6.一種解決程序運(yùn)行期間停止響應(yīng)的裝置,其特征在于,包括,程序監(jiān)測(cè)模塊、程序調(diào)試模塊、程序?qū)Ρ饶K、地址尋找模塊和程序運(yùn)行模塊; 所述程序監(jiān)測(cè)模塊:出現(xiàn)程序停止響應(yīng)后,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及該請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間; 所述程序調(diào)試模塊:對(duì)程序的服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間,多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧; 所述程序?qū)Ρ饶K:對(duì)比上述程序調(diào)試模塊多次調(diào)用棧的結(jié)果,找到程序一直正在執(zhí)行的函數(shù)名稱; 所述地址尋找模塊:對(duì)于上述程序?qū)Ρ饶K找到的函數(shù)名稱,通過(guò)命令找到函數(shù)的編譯入口地址; 所述程序運(yùn)行模塊:對(duì)上述地址尋找模塊找到的函數(shù)編譯入口地址,通過(guò)命令設(shè)置斷點(diǎn)并輸入日志,然后繼續(xù)程序執(zhí)行,看斷點(diǎn)是否命中,從而確認(rèn)問(wèn)題代碼。7.根據(jù)權(quán)利要求6所述的解決程序運(yùn)行期間停止響應(yīng)的裝置,其特征在于,所述程序監(jiān)測(cè)模塊具體通過(guò)IIS的工作進(jìn)程的監(jiān)控請(qǐng)求時(shí)間,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間。8.根據(jù)權(quán)利要求6或7所述的解決程序運(yùn)行期間停止響應(yīng)的裝置,其特征在于,所述程序調(diào)試模塊,使用windbg工具附加到服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧。9.根據(jù)權(quán)利要求8所述的解決程序運(yùn)行期間停止響應(yīng)的裝置,其特征在于,所述預(yù)設(shè)的間隔時(shí)間為10秒。10.根據(jù)權(quán)利要求6或7所述的解決程序運(yùn)行期間停止響應(yīng)的裝置,其特征在于,所述程序運(yùn)行模塊中通過(guò)命令設(shè)置斷點(diǎn)并輸入日志中的命令為BP命令。
【專利摘要】本發(fā)明公開了一種解決程序運(yùn)行期間停止響應(yīng)的方法和裝置,其中,解決程序運(yùn)行期間停止響應(yīng)的方法,包括以下步驟:出現(xiàn)程序停止響應(yīng)后,確認(rèn)是否存在長(zhǎng)時(shí)間運(yùn)行的請(qǐng)求操作以及該請(qǐng)求操作的具體客戶端地址、狀態(tài)和停止響應(yīng)時(shí)間;對(duì)程序的服務(wù)進(jìn)程,根據(jù)預(yù)設(shè)的間隔時(shí)間,多次打印調(diào)用棧,并分別記錄操作的調(diào)用棧;對(duì)比多次調(diào)用棧的結(jié)果,找到程序一直正在執(zhí)行的函數(shù)名稱;對(duì)于找到的函數(shù)名稱,通過(guò)命令找到函數(shù)的編譯入口地址;對(duì)找到的函數(shù)編譯入口地址,通過(guò)命令設(shè)置斷點(diǎn)并輸入日志,然后繼續(xù)程序執(zhí)行,看斷點(diǎn)是否命中,從而確認(rèn)問(wèn)題代碼。達(dá)到快速定位引發(fā)問(wèn)題的具體代碼的目的。
【IPC分類】G06F11/07
【公開號(hào)】CN105260257
【申請(qǐng)?zhí)枴緾N201510768838
【發(fā)明人】張剛
【申請(qǐng)人】用友網(wǎng)絡(luò)科技股份有限公司
【公開日】2016年1月20日
【申請(qǐng)日】2015年11月12日