各种类型的所有(整数)常量的列表

时间:2013-09-20 20:20:24

标签: debugging constants

是否存在某种服务,我可以输入系统“枚举类型”(或类似)并获取所有可能值的列表?

使用gdb进行调试时遇到错误,快速获取错误名称会很好,而不必查看定义类型的头文件的相关头文件。

例如,OS X中的kern_return_t类型在/usr/include/mach/i386/kern_return.h中定义,基本上只包含一行内容(不包括):

typedef int     kern_return_t;

有效值在/usr/include/mach/kern_return.h中定义,这是有道理的,但我永远不会记住这条路径,我想加快这个过程。

示例:

输入:kern_return_t

输出:

0 | KERN_SUCCESS
1 | KERN_INVALID_ADDRESS
2 | KERN_PROTECTION_FAILURE
3 | KERN_NO_SPACE
4 | KERN_INVALID_ARGUMENT
5 | KERN_FAILURE
6 | KERN_RESOURCE_SHORTAGE
7 | KERN_NOT_RECEIVER
8 | KERN_NO_ACCESS
9 | KERN_MEMORY_FAILURE
...

1 个答案:

答案 0 :(得分:4)

这是open -h的用途。我建议将其与-s结合使用,如下所示:

$ open -s iOS -h kern_return
kern_return?
[0] cancel
[1] all

[2] /usr/include/mach/i386/kern_return.h
[3] /usr/include/mach/kern_return.h
[4] /usr/include/mach/machine/kern_return.h
[5] /System/Library/Frameworks/Kernel.framework/Headers/mach/i386/kern_return.h
[6] /System/Library/Frameworks/Kernel.framework/Headers/mach/kern_return.h
[7] /System/Library/Frameworks/Kernel.framework/Headers/mach/machine/kern_return.h

Which header(s) for "kern_return"?