Skip to content

doxygen hangs forever after "Building directory list..." when one or more input (Markdown) files' absolute path is larger than 260 chars #10473

@GerHobbelt

Description

@GerHobbelt

Describe the bug

Running doxygen.exe Doxyfile (MSWindows 10, 64bit) against a tree of MarkDown + source files. doxygen progress reporting carries on until it prints Building directory list..., after which it stops and never terminates. (Ctrl+C aborts the run)

Only renaming the directories leading up to the file that' has a longer path suffices to make doxygen run okay, without locking up.
Clearly a PATH_MAX / MAX_PATH bug, IMO.

In my own software, I use the Linux path limit (4096) as an override for local, statically sized, path char arrays and use UNC paths like \\?\P:\dev\... to ensure Win32 APIs don't b0rk on the longer paths. Of course, that's a bit of hacky fix as Windows accepts UNC paths of up to 32K, according to the docs, but for a quick port of existing code, this move suffices, at least for me.

Related dev material:

To Reproduce

Clone/copy the repo https://github.com/GerHobbelt/doxygen-markdown-linking-problem and run doxygen.exe Doxyfile in the root of that repo dir tree (so relative paths SHOULD be okay) to see bugger fail when Doxyfile::line 12 (EXCLUDE_PATTERNS = */uber-long-file-path5/*) is uncommented.

Version

Tested to still fail as described when using the latest Win64 build artifact (doxygen.exe):

$ doxygen.exe -v
1.10.0 (06fcb408e9de97cc6acfdbec4e261a302c0d204b*)

Probably related issues:

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions