程式設計師請不要忽視除錯技術
想寫這篇文章已經很久了,但是一直不知道如何開始,因為除錯技術這個東西本身不像程式語言,c++/c#這種簡單的東西,大家想做些什麼,查查類庫,查查msdn,寫出一些功能,皆大歡喜。
除錯技術本身就很枯燥,如果沒有一定定力的兄弟,看看可能就覺得犯睏,沒勁,沒成就感。但是想想程式設計師,每天寫**一小時,可能除錯的時間至少也需要一小時,當然,寫到這可能你不同意,覺得你自己不是這樣的,你不需要除錯,對,我說的只是一般情況,不排除有高手,口水戰也沒社麼意思,直接忽略這種情況。
不知道為什麼,國內研究除錯技術的人不是很多,可能大家都覺得這些基礎的東西沒意思,大家都在研究雲計算,研究設計架構模式吧,我等無法企及的高度。呵呵,不扯了,開始重點的:
據我所知,在軟體開發過程中有些及其重要的環節都需要除錯技術,而且國外對這方面研究的也很多,我也不想說誰浮躁,但是這些基礎的技術確實值得我們研究。
舉個例子:
你公司開發的產品,在客戶那邊crash了,客戶的環境不允許你訪問,客戶不知道問題是怎麼發生的,他說他喝了杯茶,回來就發現問題的。
你想,你妹的,你還拉屎呢?
其實這個時候就需要除錯技術了,怨天尤人是沒有用處的,最好的方式就是分析日誌,檢視.dump檔案,但是你能看得懂麼?學學除錯技術吧,學學反彙編吧,其實這些東西都是作為程式設計師的基本功,別告訴我你會雲計算,在這個時候,對客戶一點用都沒有。
下面說說主流的除錯技術:
由於除錯技術比較接近系統底層,所有他和系統的架構,比如x86, arm,有緊密的關係,常見的架構是x86,而且和os相關,常見的os是linux和windows。
windows 平台的除錯工具比較多,高手用windbg比較多。
linux不用說,用gdb的比較多。
when you are using recursive definitions of this type, each alias is translated as soon as it is used.
for example, the following example displays 3, not 7.
0:000> r $.u2=2
0:000> r $.u1=1+$u2
0:000> r $.u2=6
0:000> ? $u1
evaluate expression: 3 = 00000003
similarly, the following example displays 3, not 7.
0:000> as fred 2
0:000> r $.u1= 1 + fred
0:000> as fred 6
0:000> ? $u1
evaluate expression: 3 = 00000003
the following example is also permitted and displays 9.
0:000> r $.u0=2
0:000> r $.u0=7+$u0
0:000> ? $u0
evaluate expression: 9 = 00000009
總結
我寫這篇文章的意圖是想說明,作為程式設計師,除了必要的演算法,語言,系統,必要的除錯技術也是基本功,而這項基本功在國內沒有引起足夠的重視,希望你可以看到我這篇文章。
程式設計師,請不要做浮躁的人
程式設計師,請不要做浮躁的人 請不要做浮躁的人 2.初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。3.看幫助,不要因為很難而自己是初學者所以就不看 幫助永遠是最好的參考手冊,雖然幫助的文字有時候很難看懂,總覺得不夠直觀。4.不要被...
程式設計師必看 請不要做浮躁的人
剛在乙個群裡看到,覺得很有道理,發給大家共勉.2.初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。3.看幫助,不要因為很難而自己是初學者所以就不看 幫助永遠是最好的參考手冊,雖然幫助的文字有時候很難看懂,總覺得不夠直觀。4.不要被物...
程式設計師必看 請不要做浮躁的人
剛在乙個群裡看到,覺得很有道理,發給大家共勉.2.初學者請不要看太多太多的書那會誤人子弟的,先找本系統的學,很多人用了很久都是只對部分功能熟悉而已,不系統還是不夠的。3.看幫助,不要因為很難而自己是初學者所以就不看 幫助永遠是最好的參考手冊,雖然幫助的文字有時候很難看懂,總覺得不夠直觀。4.不要被物...