2009-11-16 73 views
4

我是一名在学校学习C++的学生。我们正在使用Dev-C++进行一些简短的练习。有时候我很难知道我犯了什么错误或者程序中有什么真正的问题。我们的老师教我们画图。使用链接列表和指针时它们可能很有用,但有时我的绘图本身是错误的。可视化C++以帮助理解它

(例子可视化链接列表中的绘图:nl.wikibooks.org/wiki/Bestand:GelinkteLijst.png)

是否有可以解释我的C++代码/程序和可视化的任何软件(为我制作图纸)? 我发现这一点:link text

其他链接: cs.ru.ac.za/research/g05v0090/images/screen1.png和 cs.ru.ac.za/research/g05v0090/index.html

这看起来像我需要但不能用于任何下载。我试图联系那个人,但没有得到答案。

有人知道这样的软件吗?可能是其他学生也我猜有用...

亲切的问候,

juFo

回答

6

这与实际标题无关,但我想就如何理解程序中发生的事情提出一个简单的建议。

我不知道你是否看过一个调试器,但它是一个很棒的工具,它绝对可以大大提高你对正在发生的事情的理解。根据您的IDE,它会或多或少的功能,其中一些内容应包括:

  • 看到当前调用堆栈(可以让你了解什么功能调用的)
  • 看到当前访问的变量以及它们的值
  • 允许您一步一步地走路,看看每个值如何变化
  • 以及许多更多。

所以我建议你花一些时间来学习关于IDE的特定调试器,并开始使用所有这些功能。有时会有更多的东西,然后点击Next。有些东西可能包括动态代码评估,回溯时间等。

+0

我在维基百科上发现了这个问题:http://en.wikipedia.org/wiki/List_%28C%2B%2B%29#List_Visualization 这是由程序自动创建的还是手工绘制的?如果它是自动的:那里使用什么软件? – juFo 2009-11-23 18:52:16

+0

@juFo:这只是一个手动完成的图表来说明链接列表。 – JRL 2009-11-23 20:17:41

1

Doxygen有,如果我还记得,这种基本形式,但它真的只有一个太大的次要功能更大的图书馆,这可能是为了你想要的矫枉过正。 (虽然这是一个伟大的文件程序!)

+0

Doxygen实际上有非常令人印象深刻的可视化工具。它可以生成复杂的调用图,调用者图,继承图,并且拥有最完整的C++解析器之一(它实际上比MSVC更好!) – coppro 2009-11-16 20:32:38

+0

非常好!自从我上次看了以后,他们肯定有所改善。 – Toji 2009-11-16 22:41:41

2

看看DDD。它是调试器的图形前端。

尝试一般的调试程序以了解您的程序在做什么,它们可以逐步引导您完成代码。

0

对某种图表进行逆向工程代码,会使IMO受益有限。理解程序流程的更好方法是在调试器中执行代码。如果你还没有使用调试器,你应该;对于这个特定的问题,它是更合适的工具。

当重复使用或维护未记录或遗留代码较少的遗留代码时,对代码进行逆向工程代码很有用,但它很少暴露代码的设计意图,因为它缺少在设计代码时使用的抽象。你不应该在你自己写的新代码上使用这些东西!而且,这些工具甚至适度地完成工作也很昂贵。

如果您认为可以避免设计,并且只需交出自动生成的图表,则不要这样做。这将是一个自动生成的图!