Description
ReactOS uses the rsym tool to translate the debug symbols in executables into a simplistic table.
It was noticed that our custom raddr2line tool isn't able to return line number information for certain functions, while the original DWARF2 symbols generated by gcc worked just fine using the original binutils addr2line tool.
After investigating a possible bug in the DWARF2->rsym conversion, we noticed that the enumeration returned by dbghelp's SymEnumLines function did not include any of the tested function names. In fact, it does not include any of the functions for the whole files that the functions are missing. After digging into dbghelp's code, we noticed that the files in question were never found during the parsing process of the DWARF2 information.
Subsequent testing showed that shuffling the file list and moving the problematic files to the top, allowed the symbols to be seen.
We speculate that, due to the large amount of files in the win32k module, we are exceeding a limit in the dbghelp implementation. We do not know if this limit corresponds to a number of files, of function names, or total line entries.