I'm working on a tool to do some post-processing of the text output files for call graphs, and I'm running into a problem.
For most functions listed in the call graph, both a "short name" (just the function name) and a "long name" (the full function signature, with return type and parameter types) are given. In this case, while there can be duplicate short names, the long names always seem to be unique (one list of children for each actual function in the code).
However, for some of the functions (20 - 30%, it seems), only the function name is given in both fields. This causes problems when there are two functions with the same name (for example, multiple constructors), where the full info is not given. In these cases, I can't necessarily tell which version of the function is being called (very bad for some of the things I'm doing).
Does anyone know why only some of the functions are outputting full signatures, and others are not? More importantly, is there a way to fix this problem? Any help would be greatly appreciated.
Have you checked the declarations of the functions that are not coming out unique? I have seen compilers generate different debug info based on the function declaration. BTW, which compiler are you using?