DynamoRIO / DynamoRIO/drmemory

Create a system-library-independent PDB reader that needs no private loader

Open
#2,538 0 comments 0 reactions 0 assignees View on GitHub
OpSys-Windows Type-Feature
Dominant language
C
Stars
2.7k
Forks
290
PR merge metrics
No merged PRs in 30d

Description

The reliance on dbghelp.dll is a roadblock requiring that Dr. Memory use DR's private loader to try to satisfy all the WinAPI dependencies of dbghelp. DR's private loader is fragile and sometimes fails on new versions of system libraries. If we had a portable PDB reader we could potentially stop using the private loader and rely only on the DR API and drwinapi.

With LLVM documenting the PDB format and adding support to their tools a few years ago, we may be able to accomplish this. Unfortunately LLVM does not provide a nice library to just replace dbghelp. We would have to imitate what a tool like llvm-pdbutil (https://llvm.org/docs/CommandGuide/llvm-pdbutil.html) does, or what lldb does (not sure how much PDB support is in lldb), with a full understanding of the new PDB documentation: https://llvm.org/docs/PDB/index.html, and considering the LLVM Apache-based license.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.