2

我正在使用带有 Clang 作为编译器的 Xcode,当在地址为0xCDCDCDCD. 我还看到一些变量设置为0xABABABAB左右。我环顾四周,注意到这些值在 Visual Studio 中用作幻数,以帮助了解问题所在。但是我找不到 Xcode 使用的幻数列表(或 Clang,不确定它是来自编译器还是 IDE 的机制)。有谁知道我在哪里可以找到一个?

4

2 回答 2

2

我不知道任何全面的列表,这似乎是您正在搜索的内容,但0xCDCDCDCD通常在您使用 Debug 构建分配内存块时由 C 运行时使用。

于 2012-12-19T15:08:22.223 回答
1

我不知道任何这样的列表,除了维基百科的“魔法调试值”列表,它列出了调试中使用的各种幻数。


正如 Mike 上面所说,很有可能在调试版本中将指针初始化为无效的内存地址,以便更容易捕获潜在的与指针相关的错误。

这是一个编译器或运行时功能,但它们被初始化的确切值并不重要,因为该功能可以使指针调试更简单。这EXC_BAD_ADDRESS只是尝试对未分配的内存执行操作的结果,实际上是预期的行为。

这些数字在 Visual Studio 中被用作幻数可能正是因为它们可用于在运行已编译的程序时定位未初始化的指针。

于 2012-12-19T15:50:19.797 回答