一些debug常用的 魔法 數值

2022-08-19 10:54:11 字數 821 閱讀 5034

cccccccc

微軟c++ debugging執行時用該值標記未初始化過記憶體

cdcdcdcd

微軟c++ debugging執行時用該值標記未初始化過記憶體

feeefeee

微軟的heapfree函式用該值來標記被釋放了的堆記憶體

abababab

為堆分配的記憶體後, 微軟的heapalloc函式用該值標記"no man's land"哨兵位.

所謂哨兵位(guard byte)就是所分配的記憶體的起始和終止位址上的記憶體的值.

baadf00d

微軟的localalloc函式用該值標記為初始化過的已分配的堆記憶體

beefcace

微軟的.net使用該值作為resource file的magic

dddddddd

微軟c++ debugging 堆用該值標記被釋放了的堆記憶體

fdfdfdfd

為堆分配記憶體前後, 微軟c++ debugging 堆用該值標記"no man's land"哨兵位.

上述這些值應用在微軟的技術中並不是偶然的, 在writing solid code中, steve maguire對此進行了討論. 他給出了這些值的一些標準.

debug的一些經驗

1.儘量減少debug,少用debug,優秀的程式設計師總是花80 的時間來思考如何解決問題,20 的時間來動手完成 而糟糕的程式設計師總是用20 的時間去寫 80 的時間去除錯 動手之前盡量想好如何去做,並且已經為你自己的思路做了充分的實驗。2.盡可能的提高debug的效率,設定合適的斷點,使用快...

Python的一些魔法方法

init 魔法方法是指 xx 的方法 具有特殊功能 init 魔法方法初始化。會自動呼叫 class washer def init self self.width 400 self.height 500 def print info self print f 洗衣機寬,高為 haier washe...

Xcode斷點的一些黑魔法

編碼不能沒除錯,除錯不能沒斷點 break point xcode的斷點功能也是越來越強大。基本斷點 如下圖,這種是最常用的斷點,也是最容易設定。左鍵點選一下就可以設定。編輯斷點 斷點是可以編輯的。斷點有下面幾個屬性可以設定 condition 這裡可以輸入條件表示式,滿足條件的時候斷點就會生效。例...