c++ - 如果 C++ 调用堆栈的顶部是 "???",地址全为零,这意味着什么?

标签 c++ debugging

我正在从崩溃日志(C++、iOS)进行调试,我看到一个调用堆栈如下所示:

0 ??? 00000000 0 + 0
1 [ModuleName] 0x00130e3b MethodName
2 [ModuleName] 0x004ae417 OtherMethodName
...

调用堆栈的顶部是否暗示任何明显的问题?也许是空引用?

最佳答案

这意味着在需要地址的堆栈上有一个空指针。 null 将被解码为选择用来引起您注意的内容,而不是提供任何其他信息的内容。

那么为什么你的调用堆栈上有一个空值?可能是因为从上一个方法调用的函数中的堆栈覆盖。这当然是您调试故障转储的原因。

关于c++ - 如果 C++ 调用堆栈的顶部是 "???",地址全为零,这意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002020/

相关文章:

c++ - 如何让 GNU 调试器 gdb 在启动/重新启动时附加到守护进程?

java - 在 Eclipse Debugger (for Java) 中,有没有办法检查任意值?

html - 我怎样才能让这个图像背景只出现在该部分的一半?

c++ - if-cases 泄漏中定义的变量? (也就是为什么这甚至可以编译?)

c++ - 从不同的 dll 继承时信号未正确导出

C++ 用常量值填充数组,循环和改变值

c++ - 如何将 CMake 项目与基于 GYP 的库集成

c++ - 使用 lambda 按降序创建字符串集

android - ndk-gdb 无法找到 gdb.setup

android - 获得释放 key 后 map 未显示