打印数据而不知道类型?

时间:2012-03-12 19:19:52

标签: c data-structures

我需要打印一些结构用于调试目的。由于代码库很大,我很难找到我需要查看的确切成员。有什么方法可以打印出整个结构吗?或至少知道它是什么类型的结构,以便我可以回过头来看看它的定义?

1 个答案:

答案 0 :(得分:3)

使用调试器。大多数调试器都可以让您在遇到断点时看到整个结构的内容。在* nix上,最流行的调试器是gdb,而在Windows上,最流行的IDE(包括调试器)是Visual Studio。我联系的网站都有免费的啤酒下载链接。

在gdb中,您可以使用break命令设置断点,一旦到达断点,就可以使用print命令打印结构的内容。更具体地说,您可以使用包含的调试数据(gcc中的-g标志)进行编译,然后使用

$ gdb debugging_executable
Some basic information about GDB gets printed here
> break main.c:100
> run
> print struct_variable

同样值得研究一步并继续执行命令。

在Visual Studio中,您可以通过双击源行左侧(编辑器左侧有一个灰色条)来设置断点,并将鼠标悬停在变量名称上以检查内容一次你到了断点。