1、 ABR: Array Bounds Read
數組越界讀(只檢測動態內存分配的數組,對Global、Local、Static的數組無法檢測)。
2、 ABW: Array Bounds Write
數組越界寫(只檢測動態內存分配的數組,對Global、Local、Static的數組無法檢
3、 ABWL: Late Detect Array Bounds Write (An ABWL message indicates that the program wrote a value before the beginning or after the end of an allocated block of memory)
4、 BSR: Beyond Stack Read
函數可能讀了一個當前堆棧之外的指針。例如在寫變量值的時候程序出現了異常,那麼讀此變量時,就會發生BSR錯誤。(不適用於堆棧內的本地數組)
5、 BSW: Beyond Stack Write函數可能寫了一個當前堆棧之外的指針。(不適用於堆棧內的本地數組)
6、 EXU: Unhandled Exception
未經處理的異常
7、 FFM: Freeing Freed Memory
正在釋放已經釋放過的內存。
8、 FIM: Freeing Invalid Memory
試圖釋放未分配的、無效的內存。
9、 FMM: Freeing Mismatched Memory
釋放不匹配的內存,用不正確的API函數釋放某類內存。
10、 FMR: Free Memory Read
讀取已經釋放或者未經分配的內存內容。
11、 FMW: Free Memory Write
對已經釋放或者未經分配的內存做寫入操作。
12、 FMWL: Late Detect Free Memory Write
13、 IPR: Invalid Pointer Read
程序正在讀取一個無效的,不可以設定地址的內存區域。
14、 IPW: Invalid Pointer Write
程序正在對一個無效的,不可以設定地址的內存區域進行寫操作。
red zone
For error detection runs, the bytes that are placed at the beginning and end of each allocated block of memory in a program at run time. The red zone is used to detect Array Bounds Read (ABR), Array Bounds Write (ABW), and Late Detect Array Bounds Write (ABWL) errors.
15、 NPR: Null Pointer Read
空指針讀。
16、 NPW: Null Pointer Write
空指針寫。
二、 黃.色警告信息
1、 COM: COM API/Interface Failure
COM操作失敗。在每一個COM API或COM接口調用後,Purify都會檢查HRESULT,如果它的值不是標明操作成功的S_OK,就會顯示此錯誤。
2、 HAN: Invalid Handle
無效句柄。在期望出現句柄的地方出現了一個非句柄的值或者是一個錯誤類型的句柄。
3、 ILK: COM Interface Leak
COM接口漏洞。當一個COM接口的引用總數大於1時,會出現此提示。
4、 MLK: Memory Leak
堆內存洩露。指內存塊中沒有任何內容或者內存塊沒有被任何指針引用。以下兩種情況都會出現此錯誤提示。
A、在函數中分配了本地內存,但在退出函數的時候沒有Free。
B、內存塊的指針被清除或改變或不在其作用域內。
If the section of the program where the memory is allocated and leaked is executed repeatedly, you might eventually run out of swap space, causing slow downs and crashes. This is a serious problem for long-running, interactive programs.
5、 PAR: Bad Parameter
程序在調用Win32API或者C運行時常規函數時傳遞了一個錯誤的參數。
6、 UMC: Uninitialized Memory Copy
將一個未初始化的值從一個內存區拷貝到另外一個。
7、 UMR: Uninitialized Memory Read
讀取未初始化的內存塊的值。
三、 蘭色提示信息
1、 BOX: MessageBox
如果程序中用到了MessageBox()或者MessageBoxEx()兩個函數,Purify運行結束後就會出現此項提示信息。
2、 EXC: Continued Exception
3、 EXH: Handled Exception
4、 EXI: Ignored Excepti
5、 HIU: Handle In Use
句柄被分配後,沒有釋放。
6、 MAF: Memory Allocation Failure
內存分配失敗。
7、 MIU: Memory In Use
正要分配的堆內存上已經有指針了。
8、 MPK: Potential Memory Leak
堆內存可能洩露。在內存塊的開始沒有指針,但在塊的內部看起來有指針指向。
9、 ODS: OutputDebugString
程序中調用了OutputDebugString函數。