Viladoman / CompileScore

Tools for profiling and visualizing C++ build times.
MIT License
460 stars 19 forks source link

Problems with multiple header files with same name #31

Closed kamrann closed 2 years ago

kamrann commented 2 years ago

In the image below, working down from the top, it's correct up to registry.h. However, my project has two files with that name (this is hard to avoid when using lots of third party libs). The chain of files shown to be includers of registry.h (those below it in the image) are in fact includers of the other file, not the one that includes compilednodedefinition.h.

image

Not sure if this is a bug/oversight in CompileScore, or a limitation of the compilers? I also don't know at this point if this bug extends to the timings, or if it's just in the include graph. You would probably know right away whether or not they're backed by the same data.

Thanks for a great tool btw.

Viladoman commented 2 years ago

This issue should be fixed on MSVC extractor on the latest version. Sadly I have not pushed the extension to the marketplace yet because Clang sources return relative paths, this makes figuring out 2 header files are the same more complicated. Also I was having problems with Clang not giving me any header information in version 14+, possibly due to some regression on Clang itself.

If you are on MSVC I would recommend just trying out manually installing v1.7.0 and check if the issue is still present.

kamrann commented 2 years ago

Ah sorry, I should have checked for the latest release. That's awesome, I'm using with build2 so already using the manual data extractor anyway. I'll give the latest a go and report back.

kamrann commented 2 years ago

From initial testing with 1.7.0, all looks to be sorted. Thanks!