Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-9084

dbghelp does not enumerate all the debug symbols of win32k

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Fix Version/s: 0.4.0
    • Component/s: Tools
    • Labels:
      None

      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.

        Attachments

          Activity

            People

            • Assignee:
              AmineKhaldi AmineKhaldi
              Reporter:
              gigaherz gigaherz
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: