1

Take a look at this call graph. Now look at the source of that function and all the calls to methods of InboundLedger, through the shared_ptr<InboundLedger> named inbound. Notice how the call graph mentions none of those methods. Notice how the source doesn't cross-reference hyperlink any of those methods (unlike the methods of app_, for example).

If we look at a method of InboundLedger, we can see that Doxygen can resolve and hyperlink other methods of InboundLedger that it calls (tryDB(), isDone(), done()), so the problem isn't just a general "Doxygen can't resolve InboundLedger".

This is the source tree that was used to build that documentation. This is the Doxyfile in that tree. I used Doxygen 1.8.18, built from source, commit b4b47b3919650d7350acc9fe59becaee4a3d5ff5. I had started my journey on 1.8.13, the version packaged for Ubuntu Eoan.

I have enabled BUILTIN_STL_SUPPORT, so Doxygen should be able to see through std::shared_ptr. In fact, I have tried to build a minimum reproducible example with this same Doxyfile and failed; three files with InboundLedger, InboundLedgers, and InboundLedgersImp was able to resolve the call graph as I expected, with the help of BUILTIN_STL_SUPPORT.

I have tried changing various settings, but they af nothing:

  • Upped DOT_GRAPH_MAX_NODES to 200
  • Set every EXTRACT_* setting to YES
  • Unset TAGFILES
  • Set CLANG_ASSISTED_PARSING to YES
John Freeman
  • 2,552
  • 1
  • 27
  • 34
  • A lot of external links. please add a, small, self contained example (source+configuration file in a tar or zip) . Please don't add external links as they might not be persistent. Regarding the Doxyfile is is sufficient it is enough to add the output of `doxygen -x`. The "shared_ptr<..>" is probably a "newer" concept that is not yet in doxygen. In case you think it is a bug in doxygen you can create an issue at: https://github.com/doxygen/doxygen/issues/new – albert Apr 01 '20 at 08:37
  • I almost feel like you didn't read my question at all. You can get the source and configuration in a tar from GitHub. SO isn't going to host a tarball, and I've used links to a specific commit, not a branch, so that's as persistent as it gets. I have been unsuccessful at shrinking this example. `shared_ptr` _is_ in Doxygen, via [`BUILTIN_STL_SUPPORT`](https://github.com/doxygen/doxygen/blob/b4b47b3919650d7350acc9fe59becaee4a3d5ff5/src/stlsupport.cpp#L41). I'll upload the trace to a Gist. – John Freeman Apr 01 '20 at 11:35
  • I did read the question, SO won't host the tar file that is clear, that is also why I added the doxygen issue possibility. A big reduction, compared to the complete project tree, for an issue would already be just to include the required files as indicated in the tags like `INPUT`, `IMAGE_PATH`, `INCLUDE_PATH`, ... in the tar file – albert Apr 01 '20 at 12:29
  • 1
    I was able to distill a small example. I think it's a bug: https://github.com/doxygen/doxygen/issues/7680 – John Freeman Apr 01 '20 at 15:43

0 Answers0