任何举动之前,先思考,思考,再思考
任何舉動(dòng)之前,先思考,思考,再思考——《Windows用戶態(tài)程序高效排錯(cuò)》之讀書筆記
之所以會(huì)讀《Windows用戶態(tài)程序高效排錯(cuò)》這本書,是因?yàn)槟硞€(gè)賣存儲(chǔ)的技術(shù)大拿不停地給我丟case,一些雖然看起來(lái)很容易,但是設(shè)計(jì)細(xì)節(jié)部分的case讓人崩潰。在這段時(shí)間陸續(xù)重新開始使用netmon、windbg等工具來(lái)幫助排錯(cuò)。無(wú)奈,到處托人幫忙,正好有位同鄉(xiāng)MVP手頭有這本書,死臉皮要過來(lái)看了。很好很強(qiáng)大!雖然對(duì)匯編,c,c++等語(yǔ)言是一竅不通,硬著頭皮看,也學(xué)到了一些非常有用的排錯(cuò)方法。
任何舉動(dòng)之前,先思考,思考,再思考。
01.相信事實(shí),不要相信經(jīng)驗(yàn)
很多時(shí)候,看到某工程師基于自己的經(jīng)驗(yàn),對(duì)case做一些無(wú)聊的猜測(cè),并最終導(dǎo)致問題沒解決或者惡化的案例真的很多。以前我是這樣,現(xiàn)在稍微好一點(diǎn)了,但是依然還是會(huì)站在自己的經(jīng)驗(yàn)上來(lái)處理問題。以后要減少這方面的問題。(同時(shí)這里感謝江蘇的sun大哥,總是挑我的錯(cuò)呢,雖然被挑到的時(shí)候我總是會(huì)臉紅一下,你看我不到看我不到!)
任何case,只要客戶端報(bào)錯(cuò)了,那么它就是事實(shí)存在的。如果你因?yàn)榻?jīng)驗(yàn)陷入在定向思維上,很難去找到問題根本并解決。
02.詳細(xì)觀察問題發(fā)生的過程,對(duì)任何線索保持敏感
數(shù)字,比如2的n次方可以解釋很多問題。
某個(gè)選項(xiàng),比如SSL?dns解析?
03.用對(duì)比的方法來(lái)尋求問題的根源
讓問題復(fù)現(xiàn),并與正常狀態(tài)進(jìn)行對(duì)比。
04.用cpu的節(jié)奏和方法來(lái)理解整個(gè)過程
慢慢想象整個(gè)過程的來(lái)龍去脈,然后慢慢演示,前推后推10步,一般也就能找到問題的癥結(jié)。
05.文檔不是萬(wàn)能的,沒有文檔是萬(wàn)萬(wàn)不能的
很多時(shí)候,文檔可以幫你了解過程,但是很多文檔都是有瑕疵甚至有絕對(duì)錯(cuò)誤的時(shí)候。千萬(wàn)不要因?yàn)闆]有復(fù)現(xiàn)文檔的狀態(tài)而灰心,因?yàn)檫@意味著你又找到了一個(gè)新的case!多么有挑戰(zhàn)啊!
06.堅(jiān)實(shí)的基礎(chǔ)知識(shí)可以讓你事半功倍!
不要總是想著速成,如果都是速成,還要GTSC干嘛?還要IT support部門干嘛?你硬著頭皮看點(diǎn)非常基礎(chǔ),非常沒有成就感的書,看2本后,你就會(huì)發(fā)現(xiàn),這個(gè)世界的case很多都是因?yàn)樽罨镜膯栴}沒有弄清楚而導(dǎo)致的。
07.不要局限在頭疼醫(yī)頭,要全面的了解是否這個(gè)case可以更完美的解決
一般因?yàn)榭蛻舻囊?#xff0c;我僅僅協(xié)助他解決了當(dāng)前的問題。可是如果當(dāng)前的修改極有可能引發(fā)了未來(lái)可能預(yù)見到的大問題,你是否還會(huì)選擇這個(gè)解決方案呢?當(dāng)然了,如果你是IT公司,希望賺取更多的服務(wù)費(fèi),那就是另外一個(gè)說(shuō)法了。
日常排錯(cuò)的checklist
1)補(bǔ)丁打全了么?
2)MS support查了么?有對(duì)應(yīng)的補(bǔ)丁可以打么?
3)問題在同一臺(tái)機(jī)器上是偶爾發(fā)生,還是總是可以重現(xiàn)
4)問題在不同的機(jī)器能重現(xiàn)么?
5)能用類似的軟件測(cè)試該問題么?
6)錯(cuò)誤截屏了么?
7)重現(xiàn)問題的步驟是什么?有特殊的地方么?
8)有辦法可以緩解或者暫時(shí)解決么?
9)有防火墻,防病毒軟件么?
10)排錯(cuò)是在生產(chǎn)環(huán)境還是在測(cè)試環(huán)境中進(jìn)行?
11)用到數(shù)據(jù)庫(kù)了嗎?什么類型的?
12)問題和負(fù)載有關(guān)系么?
13)網(wǎng)絡(luò)環(huán)境如何?nat?
14)有用群集么?NLB?
15)在domain中么?
16)非domain環(huán)境是否在server和client端闖將相同名和密碼的賬戶進(jìn)行測(cè)試?
17)最近有安裝新補(bǔ)丁,或者新軟件么?
18)除了問題本身,系統(tǒng)有什么異常?內(nèi)存,cpu,網(wǎng)絡(luò)?
19)系統(tǒng)日志有什么顯示什么問題么?
20)嘗試更換一個(gè)程序賬戶測(cè)試?比如另外一個(gè)管理員賬戶?
以上是排錯(cuò)思維的一些筆記。
--------插花----------
這本書我沒有能力全看懂,太多的程序設(shè)計(jì)的問題了。但是這本書可以讓了解如何使用windbg來(lái)幫你解決問題。書很便宜,僅35RMB,考慮到這本書是2007年出的,現(xiàn)在至少是8折。
----此書還在硬啃中------
轉(zhuǎn)自:http://xunyangit.spaces.live.com/blog/cns!F934535AFC3723BA!839.entry
轉(zhuǎn)載于:https://www.cnblogs.com/bvbook/archive/2009/09/21/1571331.html
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的任何举动之前,先思考,思考,再思考的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wget for windows
- 下一篇: 对虚拟目录的操作(转)