我需要打印一些结构用于调试目的。由于代码库很大,我很难找到我需要查看的确切成员。有什么方法可以打印出整个结构吗?或至少知道它是什么类型的结构,以便我可以回过头来看看它的定义?
答案 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中,您可以通过双击源行左侧(编辑器左侧有一个灰色条)来设置断点,并将鼠标悬停在变量名称上以检查内容一次你到了断点。