Support global lookup of symbols within scopes (namespaces, outer classes, etc.) on Windows #205
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
DbgObject.global
API takes a scope parameter; however, it is currently ignored on Windows. With the latest compiler changes affecting Chromium symbols likeg_frame_map
, the scope now needs to be considered when querying for symbols on Windows. To that end, this change adjusts the symbol name to include the scope prefix before querying the debugger/symbol files on Windows.There is an additional complication that needs to be addressed to handle anonymous namespaces correctly. On Linux, an anonymous namespace is annotated as
(anonymous namespace)
, whereas on Windows, it is annotated as`anonymous namespace'
. To handle this discrepancy, theDbgObject.global
API now takes an array of scope strings (ordered [outermost scope, ..., innermost scope]), and within this array, an anonymous namespace is simply written as "anonymous namespace". Then, thisscopes
array will be transformed into a scope prefix string, with the Linux/Windows specific code resolving anonymous namespaces in platform-specific ways.