12/13/2023 0 Comments Doxygen graphviz call graphIt was written for C/C++ but there are hacks/filters for getting it working with other languages like Python, Perl and Verilog. Doxygen is easily one of the best programs. Whenever documentation exists in a seperate file it always seems to drift away from the code.Ī while back I compared several open source tools for automatically generating documentation based on code comments. When someone else is trying to modify your code they have no idea they need to read a PDF API document to find out more information about what a function is supposed to do. I strongly believe that code and documentation should always go hand in hand. My searches are finding general graphing utilities (or questions about them), but nothing specific to large C++ projects.All programming is maintenance programming, meaning that the most value comes from programming code that can be picked up and maintained by someone else. Is there any known way to make Doxygen generate one large graph file instead of hundreds of smaller ones?Īlternatively, are there any free visual graphing solutions out there which know how to handle complicated C++ project files with nested pre-processor directives, MIDL interfaces, and manually defined include paths the way Doxygen does? From the output generated from any given run, it seems like Doxygen itself is generating hundreds of graph files, and Graphviz is just faithfully generating graphs for each one. I've tried playing around with the DOT_GRAPH_MAX_NODES setting in the Expert view in Doxygen, but this doesn't seem to affect the scope of the graphs that are being generated. As a result, I feel like I'm "zoomed in" and still can't see the whole picture. This is leading to lots of duplicate connections that make it very hard to conceptually isolate the graph from any given file. Not only does this limit the visual helpfulness of the graph, but if the child node depends on any of the nodes from the original graph, these nodes will be shown again. I then have to go to the graph for that specific node if I want to see what's further down the tree. Here are a couple of examples:Īs you can see (I hope), Doxygen/GraphViz seem to give up when the graph gets too large and gray out the child nodes. Unfortunately, hundreds of smaller dependency trees are generated for specific files, rather than having one large one as I'd hoped for. Fortunately, I learned about the Graphviz plugin, using something called "Dot" that has enabled me to generate dependency trees for parts. I'm much more of a visual person, and found that this wasn't so helpful. I was reading around, and learned that Doxygen is a commonly used tool for listing dependencies. The class viewer in Visual Studio simply isn't cutting it. This would also help me to locate the "fault lines" between the core modules and Windows header files so that I can stub them out later. It would be tremendously helpful to have a visual dependency/include tree to refer to for this project so that I can get a general feel for the application's internal structure. There are over 200,000 lines of source in this project spread across more than 300 files. I've inherited a large C++ project which I need to port to Linux.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |