It really depends on the code. I've found in the past that structure diagrams are useful only on certain code layouts. Structure diagrams for state machines aren't very much help. They aren't really useful on multi-threaded systems either.
Sometimes it is easier to set various breakpoints, send some data through and see where it ends up, then work out what you need from there.