【发布时间】:2009-07-08 14:09:46
【问题描述】:
基本上,我正在寻找的是一个可以让我做这样的事情的函数:
自卸车(some_obj); /* 输出 some_objs 的数据结构 */
谢谢。
【问题讨论】:
标签: c windows object debugging
基本上,我正在寻找的是一个可以让我做这样的事情的函数:
自卸车(some_obj); /* 输出 some_objs 的数据结构 */
谢谢。
【问题讨论】:
标签: c windows object debugging
C 不支持任何开箱即用的反射。从某种意义上说,它也不是硬类型的,一旦它被编译成机器代码,类型就不再存在了(与某些更高级别的语言不同)。您需要使用所有符号和调试信息构建可执行文件,然后使用一些调试工具或库来检索这些数据。
我想只使用诸如 Visual Studio 调试器或 gdb 之类的已建立的调试器会简单得多。
【讨论】:
简短回答:不。
长答案:当您的程序被编译和链接时,所有这些信息都已被丢弃。 C(和 C++)没有反射,所以这些信息都不能在运行时恢复。
有趣的答案:由于您使用的是 Windows,因此您可以使用调试信息(即 PDB 文件)和 DbgHelp API 执行各种操作。
【讨论】: