任何舉動之前,先思考,思考,再思考

2022-02-25 06:38:55 字數 2737 閱讀 9660

——《

windows

使用者態程式高效排錯》

之讀書筆記

之所以會讀《

windows

使用者態程式高效排錯》

這本書,是因為某個賣儲存的技術大拿不停地給我丟

case

,一些雖然看起來很容易,但是設計細節部分的

case

讓人崩潰。在這段時間陸續重新開始使用

netmon

、windbg

等工具來幫助排錯。無奈,到處託人幫忙,正好有位同鄉

mvp手頭有這本書,死臉皮要過來看了。很好很強大!雖然對彙編,c,

c++等語言是一竅不通,硬著頭皮看,也學到了一些非常有用的排錯方法。

任何舉動之前,先思考,思考,再思考。

01.相信事實,不要相信經驗

很多時候,看到某工程師基於自己的經驗,對

case

做一些無聊的猜測,並最終導致問題沒解決或者惡化的案例真的很多。以前我是這樣,現在稍微好一點了,但是依然還是會站在自己的經驗上來處理問題。以後要減少這方面的問題。(同時這裡感謝江蘇的

sun大哥,總是挑我的錯呢,雖然被挑到的時候我總是會臉紅一下,你看我不到看我不到!)

任何case

,只要客戶端報錯了,那麼它就是事實存在的。如果你因為經驗陷入在定向思維上,很難去找到問題根本並解決。

02.詳細觀察問題發生的過程,對任何線索保持敏感

數字,比如2的

n次方可以解釋很多問題。

某個選項,比如

ssl?

dns解析?

03.用對比的方法來尋求問題的根源

讓問題復現,並與正常狀態進行對比。

04.cpu的節奏和方法來理解整個過程

慢慢想象整個過程的來龍去脈,然後慢慢演示,前推後推

10步,一般也就能找到問題的癥結。

05.文件不是萬能的,沒有文件是萬萬不能的

很多時候,文件可以幫你了解過程,但是很多文件都是有瑕疵甚至有絕對錯誤的時候。千萬不要因為沒有復現文件的狀態而灰心,因為這意味著你又找到了乙個新的

case

!多麼有挑戰啊!

06.堅實的基礎知識可以讓你事半功倍!

不要總是想著速成,如果都是速成,還要

gtsc

幹嘛?還要

it support

部門幹嘛?你硬著頭皮看點非常基礎,非常沒有成就感的書,看

2本後,你就會發現,這個世界的

case

很多都是因為最基本的問題沒有弄清楚而導致的。

07.不要侷限在頭疼醫頭,要全面的了解是否這個case可以更完美的解決

一般因為客戶的要求,我僅僅協助他解決了當前的問題。可是如果當前的修改極有可能引發了未來可能預見到的大問題,你是否還會選擇這個解決方案呢?當然了,如果你是

it公司,希望賺取更多的服務費,那就是另外乙個說法了。

日常排錯的

checklist

1)補丁打全了麼?2)

ms support

查了麼?有對應的補丁可以打麼?

3)問題在同一臺機器上是偶爾發生,還是總是可以重現

4)問題在不同的機器能重現麼?

5)能用類似的軟體測試該問題麼?

6)錯誤截圖了麼?

7)重現問題的步驟是什麼?有特殊的地方麼?

8)有辦法可以緩解或者暫時解決麼?

9)有防火牆,防病毒軟體麼?

10)排錯是在生產環境還是在測試環境中進行?

11)用到資料庫了嗎?什麼型別的?

12)問題和負載有關係麼?

13)網路環境如何?

nat?

14)有用群集麼?

nlb?

15)在

domain

中麼?16

)非domain

環境是否在

server

和client

端闖將相同名和密碼的賬戶進行測試?

17)最近有安裝新補丁,或者新軟體麼?

18)除了問題本身,系統有什麼異常?記憶體,

cpu,網路?

19)系統日誌有什麼顯示什麼問題麼?

20)嘗試更換乙個程式賬戶測試?比如另外乙個管理員賬戶?

以上是排錯思維的一些筆記。

--------

插花----------

這本書我沒有能力全看懂,太多的程式設計的問題了。但是這本書可以讓了解如何使用

windbg

來幫你解決問題。書很便宜,僅

35rmb

,考慮到這本書是

2007

年出的,現在至少是8折。

----

此書還在硬啃中

------

**:

創業之前的思考

創業思路整理 我們創業的目的是什麼?我們要做什麼產品?我們有什麼樣團隊?我們的使用者是誰?你是否真正了解你所謂的使用者?我們有什麼優勢?我們有什麼劣勢?我們怎麼盈利?我們有哪些競爭對手?你為什麼選擇這個行業?我們所做的這個行業有什麼特點?這個行業有什麼預期的風險?這個行業中,使用者最大的抱怨是什麼?...

程式設計思考 1 遞迴和迭代再思考

首先上兩個例子 菲波那切定理的迭代和遞迴實現 遞迴實現 int fib1 int n 迭代實現 int fib2 int n return f1 最大公約數的迭代和遞迴 遞迴問題 int max common digui int x,int y else 迭代解決 int max common di...

雜湊表 再思考

雜湊表具有和陣列相同的可以根據下標實現隨機訪問的特性。陣列查詢的特性 陣列的儲存空間是連續的,因此對取值 訪問 操作比較友好,支援根據下標實現隨機訪問,時間複雜度為 o 1 雜湊表 雜湊表採用了陣列可以根據下標實現隨機訪問,時間複雜度為 o 1 的特性。問 1 那雜湊表是怎樣將陣列的特性應用到自身的...