的退出碼 像 UNIX 下的軟件,一般都會提供和別的應用程序的接口,像上面的生成文本文件,也是給別的應用程序提供接口的一種方式。這里,我們所要講述的是 Purify 的退出碼,我們知道程序都有退出碼,以提供給別的程序或操作系統自己運行" name="description" />
像UNIX下的軟件,一般都會提供和別的應用程序的接口,像上面的生成文本文件,也是給別的應用程序提供接口的一種方式。這里,我們所要講述的是Purify的退出碼,我們知道程序都有退出碼,以提供給別的程序或操作系統自己運行的信息。被Purify編譯過的程序,你可以通過指定-exit-status參數來告訴Purify是否用Purify的退出碼,如果這個參數值為yes,那么表示使用Purify的退出碼,如果值為no則表示使用程序內的退出碼。
如果我們這樣設置:-exit-status=yes,那么Purify的退出碼是這樣定義的:
內存錯誤種類 |
退出碼(按位或) |
內存存取錯誤 |
0x40 |
內存泄露 |
0x20 |
潛在內存泄露 |
0x10 |
通過上表,我們可以知道,當-exit-status參數被打開后,程序的退出碼被Purify完全接管,如果程序中有內存錯誤,那么退出碼所對應的位就會被置為1,這樣,我們可以用別的程序來調用Purify所編譯出來的程序,并根據其退出碼作相應的處理。
你可以在UNIX的Shell環境中使用Purify的一些參數和信息,Purify為Shell提供了一些通配符之類的東西,只要你使用 –run-at-exit參數。例如你有一個Shell程序想把Purify生的文件拷貝到別的目錄中,或是你想根據Purify的報告中是否有內存錯誤進行下一步的行動。
下面有兩個表格,說明了一些Purify和Shell交互的參數:
有關內存出錯的信息:
通配字符串 |
含義 |
%z |
指明是否有內存錯誤或內存泄露。其值是“true”或“false” |
%x |
程序的退出狀態(如果是0,表示程序沒有調用exit函數) |
%e |
程序中內存訪問錯誤的個數。 |
%E |
程序中錯誤總數。 |
%l |
內存泄露的字節數。 |
%L |
潛在內存泄露的字節數。 |
原文轉自:http://www.anti-gravitydesign.com