亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

有時(shí)候,當(dāng)我調(diào)試一個(gè)問題的時(shí)候,我會(huì)特意忽略掉某些線程。

這個(gè)時(shí)候,有人就問了:”這些線程是干什么的?你為什么知道要忽略它們?”

我的回答是:我也不清楚這些線程是干啥的,但是無論它的內(nèi)部工作是什么,這都是正常的。”

博主 Tess Ferrandez 一直在編寫關(guān)于 CLR 調(diào)試的系列文章,這些文章十分有用,但最為重要的一條是在調(diào)試 ASP.NET 死鎖問題時(shí)該如何忽略掉不相關(guān)的部分。

在實(shí)際項(xiàng)目中,死鎖和掛起這類問題十分難以調(diào)試,因?yàn)槌霈F(xiàn)這類問題時(shí),調(diào)試器中并沒有輸出異常相關(guān)的信息。程序突然之間就停止了響應(yīng),開發(fā)者不得不苦思冥想,到底哪里出錯(cuò)了。

出現(xiàn)此類問題,我們需要先有一個(gè)大概的思路,即:我們需要尋找那些”不同尋常”的東西,而為了找到這類東西,我們首先需要知道,哪些東西是正常的。

舉個(gè)例子,先運(yùn)行程序一段時(shí)間,然后中斷到調(diào)試器,看看內(nèi)存數(shù)據(jù),線程,加載的模塊等相關(guān)信息,并將這些信息記錄下來。你所記錄下的這些信息,就是所謂的”正常”的程序行為,就是說,當(dāng)程序正常運(yùn)行的時(shí)候,你所記錄的就是正常的運(yùn)行數(shù)據(jù)。

有了上面的記錄,當(dāng)程序異常的時(shí)候,再次對(duì)比下運(yùn)行時(shí)數(shù)據(jù),就有可能識(shí)別出那些不太正常的數(shù)據(jù)結(jié)構(gòu)了。

當(dāng)調(diào)試一個(gè)大型工程的時(shí)候,可能程序會(huì)啟動(dòng)非常多的線程,你不必知曉每個(gè)線程具體的工作細(xì)節(jié)。例如,當(dāng)我掛接調(diào)試器到一個(gè)目標(biāo)進(jìn)程后,我經(jīng)常會(huì)看到有一些線程會(huì)等待 RPC 對(duì)象或者是內(nèi)核線程池相關(guān)的線程,說老實(shí)話,我也不清楚這些線程是干啥的,但是因?yàn)樗鼈兛偸窃谀抢锴臒o聲息的運(yùn)行著,所以,我也不會(huì)太關(guān)注它們,這些可能就是我上面所說的正常的東西。

總結(jié)

隨著代碼規(guī)模越來越大,診斷機(jī)制需要進(jìn)一步完善,單純通過下斷點(diǎn)調(diào)試可能不是那么有效了,這個(gè)時(shí)候,需要結(jié)合調(diào)試輸出和日志來查找問題。

分享到:
標(biāo)簽:Bug
用戶無頭像

網(wǎng)友整理

注冊時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評(píng)定2018-06-03

通用課目體育訓(xùn)練成績評(píng)定