日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

一些debug常用的魔法数值

發布時間:2025/3/19 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一些debug常用的魔法数值 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.cnblogs.com/awpatp/archive/2012/08/08/2628024.html

一些debug常用的"魔法"數值

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對此進行了討論. 他給出了這些值的一些標準.

  • 這些值應該是沒啥用的, 操作這些數值的算法應該是做些特殊的事情的. 比如說, 0這樣的數值就不符合這一條.
  • 這些值應該可以很容易地在debugger中做為非法數值被識別出來.
  • 在沒有byte alignment的機器上, 這些值應該是奇數, 所以, 間接引用這些值作為地址會引發異常.
  • 如果這些值作為代碼被執行的話, 會引發一場或者引發debugger斷點進入.

?

參考資料

==================

Magic number (programming)

http://en.wikipedia.org/wiki/Magic_number_%28programming%29

總結

以上是生活随笔為你收集整理的一些debug常用的魔法数值的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。