在Data :: Dumper中是否存在与Perls的Dumper()方法相当的C语言?

时间:2009-07-08 14:09:47

标签: c windows object debugging

基本上,我正在寻找的功能可以让我做这样的事情:

自卸车(some_obj); / *输出some_objs的数据结构* /

感谢。

2 个答案:

答案 0 :(得分:3)

C不支持开箱即用的任何反射。从某种意义上讲它并不难打字,一旦它被编译成机器代码,类型就不再存在了(与某些更高级别的语言不同)。您需要使用所有符号和调试信息构建可执行文件,然后使用一些调试工具或库来检索此数据。

我想只使用一个已建立的调试器,如Visual Studio Debugger或gdb会简单得多。

答案 1 :(得分:2)

简答:不。

答案很长:当您的程序被编译和链接时,所有这些信息都被丢弃了。 C(和C ++)没有反射,所以这些信息都不能在运行时恢复。

有趣的答案:由于您使用的是Windows,因此您可以使用调试信息(即PDB文件)和DbgHelp API执行各种操作。