-2

I'm looking for a tool that would help me read a large amount of C++ source code for a complex product and understand relationships between components and datatype and have those relationshipts diagrammed and noted. The way I see it work for me is, I would create a note (node in diagram) 'foo', then for each function that 'foo' calls that I'm interested in (major ones) I would create children of 'foo' diagram nodes in order in which they get called and I would have a possibility to annotate each 'node' with 'missing arg check?' or 'do we need a fat lock here? rw maybe?' or similar and maybe have those nodes dotted-line-refer to a datatype that it works with. So in my mind it's kind of a Visio with auto-placed and auto-connected nodes, with 2-3 different connections/arrows types and ways to arrange it on a page so that the call-graph grows in one direction (downwards).

Pointers to such a tool will be greatly appreciated and if you can suggest a better approach to the process itself, let me know, I'm being swamped with the amount of code I want to digest and it's the first time for me, so I'm new to this. Thanks!

Update. Here's what I think I want in terms how it would look like

manual callgraph sketch.

The 'automatic' part of the tool is that it would re-arrage the nodes, so all of them are visible, auto-size the nodes, create links by clicks (say right-click for child node and left click for datatype reference) and so on.

Kerrek SB
  • 428,875
  • 83
  • 813
  • 1,025
Anton Pegushin
  • 410
  • 2
  • 10
  • honestly, I just use tags/cscope/IDE/opengrok or whatever to browse, and spill state onto paper when my brain fills up. I usually want to read the same code multiple times looking at different aspects anyway – Useless Oct 31 '12 at 13:09
  • that's exactly how I always used to do it - framework with tags and then paper, and now I'm hoping to find a replacement for paper, which would be extendable (so I could add nodes and notes for nodes later) and rearrangeable. – Anton Pegushin Oct 31 '12 at 13:33

1 Answers1

1

Turns out the answer to my question was - the latest Microsoft Visual Studio. MS VC 2012 contains this - http://msdn.microsoft.com/en-us/library/dd409453.aspx, which is exactly what I've been looking for.

Anton Pegushin
  • 410
  • 2
  • 10