我听说有一些特殊地址(或者,至少,一些具有特殊地址的范围),用于 Linux(或 gcc,我不知道,这是问题的一部分),但我可以找不到这样的。而且我什至不知道如何寻找它。
(例如,在Visual Studio中,有未初始化变量这样的东西)
这个问题是由更具体的问题“引入”的(它不应该是一个单独的问题,这就是我在这里问的原因):0x30303030 是一些特殊地址还是什么?
因为我有这样的回溯:
#0 0x003fa527 in memset () from /lib/tls/libc.so.6 #1 0x4e5fffa0 in ?? () #2 0x00787d13 in std::num_put > >::_M_group_int () from /usr/lib/libstdc++.so.6 #3 0x0079a1e4 in std::operator, std::allocator > () from /usr/lib/libstdc++.so.6 #4 0x30303030 in ?? () #5 0x30303030 in ?? () ... #1483 0x30303030 in ?? () #1484 0x30303030 in ?? () Cannot access memory at address 0xb3927000
这有 1400 多行,比如 0x30303030 in ?? ()
这是什么意思,还是只是一个随机的内存地址,看起来像是一个无底洞的递归?问题是,我无法重现它,因此调试或使用 valgrind 变得毫无用处:\
我知道,这是一个糟糕的问题,没有任何有用的信息,但我决定试一试。
最佳答案
在 ASCII 中它是“0000”,所以可能是某些东西超出了范围。或者某处存在内存错误。
关于c++ - 是否有某种包含 Linux 或 gcc 的特殊(内存)地址的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5789377/