2012-03-12 126 views
1

我需要打印一些结构以进行调试。由于代码库非常庞大,我无法找到需要查看的确切成员。是否有某种方式可以打印出整个结构?或至少知道它是什么类型的结构,以便我可以回去查看它的定义?在不知道类型的情况下打印数据?

+0

没办法让gdb进入它? – hari 2012-03-12 19:20:52

+1

'p struct_var'会自动在dbx中按元素打印出整个结构元素。你想在C程序中使用它吗? – 2012-03-12 19:21:27

+0

另外一个主题解决方案,我可以建议你 - 下载SOURCE Insight试用版http://www.sourceinsight.com/eval.html。添加您的完整项目。别担心。 SI可以处理hugeeee项目。同步您的文件。中提琴!你会被带到你的结构定义。 – 2012-03-12 19:34:45

回答

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中,可以通过在源代码行左侧双击(在编辑器左侧有一个灰色条)来设置断点,然后将鼠标悬停在变量名称上以检查内容一旦你到达断点。

相关问题