Nevím, jestli je to dělá přesně to, co hledáš, ale já jsem používal free nástroj arquanator. Co jsem teď hledal, jako by zmizel z internetu, ale nainstalovat se pořád dá pomocí gem install arquanator.
Použití pak arquanator -i -o -u -l 2 -p gcc `find . -name '*.expand'`>analysis.dot
arquanator -i -o -u -l 3 -p gcc -g smells `find . -name '*.expand'>smells.txt`
dot analysis.dot -Tpng -O
Vykreslí to obrázek se závislostma, používal jsem to při přebírání legacy projektů, abych určil místa kde začít rozhrnovat špagety na hromádky. Expand soubory se vygenerují nějakým přepínačem pří překladu.
No a pak taky nástroj cppcheck.