的退出码 像 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 |
潜在内存泄露的字节数。 |