Comments
3 comments
-
Hi Paul,
Bart and Andrew will be back in on Monday so should be able to give a definitive answer then.
The tree looks about right to me. You have focused on "Transition to managed code". If you look three down from this on the left most tree it calls itself, also five down it calls itself. So the right trees are the same as the left tree but starting several steps further down the call stack so anything below these might well appear more than once in the complete graph despite having only been called once.
There was some talk about different approaches we could take to this a few weeks ago and I don't know which approach Stephen, Bart and Andrew decided upon in the end but as always I'm sure Stephen would love to know if you find it overly confusing.
I know the "Red Cycles" also denote recursion but I'm not quite sure why they appear on the nodes they do in your graph. Hopefully Andrew, Bart of Stephen will be able to enlighten us
Many thanks as always,
James -
Hi Guys, any feedback from Bart or Andrew yet ?
TIA -
The 'recycle' icons do indeed indicate a recursive node. When a method is presented in the call graph we include all instances of that method, including recursive calls, so we can display the graph for all of the calls from that location.
In this case, the graph is fairly hard to read - most cases of recursion appear much simpler - but essentially the call you are looking at is called from the second level of recursion, so it appears twice: once as a child of the method you are looking at and once again at the level of recursion it appears at. The 'recycle' icon appears in the recursive path to indicate that you will get some duplicate results by following it.
There was some debate as to whether or not we should just cut down the set of methods to just the 'top-level' methods, though we decided against this as it would make it very hard to find a method call that occurs only after the recursion has reached a deep level: with the current implementation all methods that can be called by the graphed method will be displayed immediately.
Add comment
Please sign in to leave a comment.
So the question is . . .
Is the call graph correct ?
if "yes", can someone please explain the mechanics as to how things show twice, and so I can understand how to read it better.
TIA
http://www.usher.net.au/redgate/callgraph.pdf