成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

調(diào)試心得:通過(guò)觀察正常的程序行為來(lái)識(shí)別Bug

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

有時(shí)候,當(dāng)我調(diào)試一個(gè)問(wèn)題的時(shí)候,我會(huì)特意忽略掉某些線程。
這個(gè)時(shí)候,有人就問(wèn)了:”這些線程是干什么的?你為什么知道要忽略它們?”
我的回答是:我也不清楚這些線程是干啥的,但是無(wú)論它的內(nèi)部工作是什么,這都是正常的。”

博主 Tess Ferrandez 一直在編寫關(guān)于 CLR 調(diào)試的系列文章,這些文章十分有用,但最為重要的一條是在調(diào)試 ASP.NET 死鎖問(wèn)題時(shí)該如何忽略掉不相關(guān)的部分。
在實(shí)際項(xiàng)目中,死鎖和掛起這類問(wèn)題十分難以調(diào)試,因?yàn)槌霈F(xiàn)這類問(wèn)題時(shí),調(diào)試器中并沒(méi)有輸出異常相關(guān)的信息。程序突然之間就停止了響應(yīng),開(kāi)發(fā)者不得不苦思冥想,到底哪里出錯(cuò)了。

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

舉個(gè)例子,先運(yùn)行程序一段時(shí)間,然后中斷到調(diào)試器,看看內(nèi)存數(shù)據(jù),線程,加載的模塊等相關(guān)信息,并將這些信息記錄下來(lái)。你所記錄下的這些信息,就是所謂的”正常”的程序行為,就是說(shuō),當(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)的線程,說(shuō)老實(shí)話,我也不清楚這些線程是干啥的,但是因?yàn)樗鼈兛偸窃谀抢锴臒o(wú)聲息的運(yùn)行著,所以,我也不會(huì)太關(guān)注它們,這些可能就是我上面所說(shuō)的正常的東西。

總結(jié)

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

責(zé)任編輯:武曉燕 來(lái)源: 今日頭條
相關(guān)推薦

2025-01-07 11:00:00

AI生成

2025-01-20 10:36:00

訓(xùn)練模型AI

2017-03-31 09:00:25

機(jī)器人模仿人類

2021-03-26 13:49:29

人工智能AI深度學(xué)習(xí)

2013-11-08 09:22:17

程序員Bug調(diào)試

2017-04-19 10:25:01

JS斷點(diǎn)調(diào)試

2020-07-10 16:52:43

DelveGo程序開(kāi)源

2021-03-25 14:46:24

人工智能機(jī)器學(xué)習(xí)技術(shù)

2013-07-15 15:47:35

App用戶行為

2017-11-27 11:26:35

程序員Bug調(diào)試

2010-04-07 11:36:56

JNCIP

2012-03-20 10:28:43

2011-02-22 16:09:53

Eclipse調(diào)試

2009-04-27 09:18:55

2010-09-07 13:03:22

2022-12-30 11:05:40

Rust代碼

2022-03-31 11:46:00

Go傳輸編碼標(biāo)準(zhǔn)庫(kù)

2023-03-10 08:37:33

預(yù)熱優(yōu)化PostgreSQL

2009-06-11 17:37:32

EJB注釋

2010-07-20 11:35:41

避免SQL Serve
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91视频进入 | 成人在线免费视频 | 99视频在线免费观看 | 成人国产精品一级毛片视频毛片 | 亚洲欧洲精品一区 | 欧美一区二区三区久久精品 | 久久精品久久久 | 欧美激情视频一区二区三区在线播放 | 国产精品自拍啪啪 | 日韩视频一区在线观看 | 色www精品视频在线观看 | 婷婷久久综合 | 中文字幕不卡视频在线观看 | 精品1区 | 91在线观看| 欧美亚洲第一区 | 五月天婷婷久久 | 日本免费视频在线观看 | 911精品美国片911久久久 | 久久大香| 精品久久久一区二区 | 亚洲精品在线视频 | 亚洲成人精品 | www.操com| 久久国产精品-国产精品 | 免费的av网站 | 亚洲精品中文字幕中文字幕 | av在线一区二区三区 | 国产日韩视频在线 | 亚洲欧美综合 | 午夜影院黄 | 黄视频网站免费观看 | 精品96久久久久久中文字幕无 | 亚洲一区二区三区观看 | 先锋资源网站 | 久久婷婷国产麻豆91 | 一区二区三区四区av | 围产精品久久久久久久 | 久久99精品久久久久久 | 自拍在线| 成人aaa视频 |