是否有一些Linux或gcc的特殊(内存)地址列表
Is there some kind of list with special (memory) addresses for Linux or gcc?
我听说有一些特殊的地址(或者,至少,一些特殊地址的范围),从Linux使用(或gcc,我不知道,这是问题的一部分),但我找不到这样的。我甚至不知道怎么去找。
(例如,在Visual Studio中,对于未初始化的变量有这样的东西)
这个问题是由一个更具体的问题"引入"的(它不应该是一个单独的问题,这就是我在这里问它的原因):0x30303030是一个特殊的地址还是什么?
因为我有一个像
#0 0x003fa527 in memset () from/lib/tls/lib .so.6#1 0x4e5fffa0 in ??()#2 0x00787d13 in std::num_put>>::_M_group_int () from/usr/lib/libstdc++.so.6#3 0x0079a1e4中的std::operator, std::allocator> () from/usr/lib/libstdc++.so.6#4 0x30303030 in ??()#5 0x30303030 in ??()…#1483 0x30303030 in ??()#1484 0x30303030 in ??()无法访问地址0xb3927000的内存
这里有1400多行像0x30303030 in ?? ()
这意味着什么,或者它只是一个随机的内存地址,它看起来像一个无底递归?问题是,我无法复制它,所以调试或使用valgrind变得无用:
我知道,这是一个没有任何有用信息的可怕问题,但我决定试一试。
在ASCII中,它是"0000",所以可能有些东西被溢出了。或者某个地方有内存错误
它通常被调试器用来标记未初始化的指针。地址本身是无关的,在任何方面都不特殊。这样的事情在GCC中可能不存在,这取决于他们选择如何编写他们的调试器。
在回溯的顶部看到memset,很有可能它没有设置您所期望的确切内存区域。也许设置为"0"有点太多了?
相关文章:
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- CertGetCertificateChain 具有支持的内存存储和证书信任列表
- Shared_ptr双链接列表内存泄漏
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- C 中的学生指针节点列表中的内存泄漏
- 我可以在 Boost.Spirit.Qi 中向列表运算符 (%) 提供内存分配提示吗?
- 使用初始值设定项列表的初始化类成员会导致内存泄漏
- 声明变量以保存字符串列表时的内存分配
- 如何在不泄漏内存的情况下删除链接列表
- 两个单链列表共享同一个节点和析构函数两次删除相同的内存
- 将节点添加到链接列表中,而无需明确分配内存空间(无需使用新)
- 这会导致使用链接列表的内存泄漏
- 链接列表C 的复制构造函数中的内存泄漏
- 存在内存泄漏问题的链接列表
- 使用动态内存从向前列表中泄漏
- 双链接结构列表的内存泄漏
- 布尔内存有效链接列表
- 在声明节点创建链接列表时,为什么静态内存分配不起作用
- Prelloc内存列表