【发布时间】:2015-10-01 12:04:52
【问题描述】:
我将如何编写一个 C 程序来列出堆栈和堆的所有内容,包括它自己的变量和分配错误?
这样做的目的是让我在编写和测试代码时能够看到内存中发生了什么。
【问题讨论】:
-
您需要能够读取和解析程序调试信息(如果有)的东西,否则您将永远无法识别变量。
-
另外,在我看来,一个有趣的问题没有错。
-
正如 Bathsheba 所指出的,仅使用 C 规范是无法做到的。您需要使用特定于平台的构造。因此,为了有意义,您的问题应该确定您所针对的平台。
-
关于目的,使用调试器。您想要做的并不是微不足道的,特别是如果您希望它具有足够的弹性以在某些错误破坏内存时不会崩溃。我只是说“有弹性”,而不是“有用”。
标签: c memory heap-memory stack-memory