This repository was archived by the owner on Jan 31, 2025. It is now read-only.
Parse modules for hotpatchable functions.#4497
Merged
danielfenner merged 3 commits intogoogle:mainfrom Nov 29, 2022
Merged
Conversation
In order to represent functions in Orbit we read information from various sources: elf files, coff files, pdb's. In the end all of these produce SymbolInfo protos. This change adds a is_hotpatchable field to SymbolInfo. Only for elf files we parse for hotpatchable functions and set the new field to true if appropriate. Msvc also supports hotpatchable functions but for now we ignore this. SymbolInfo is translated into FunctionInfo - so this also gets the is_hotpatchable field. FunctionInfo is translated to a InstrumentedFunction in the capture options. The is_hotpatchable field is added there as well. The rest of the PR is basically adding the new is_hotpatchable field to all the tests. The only real addition to testing is in ElfFileTest - it is parsing the hotpatchable function section from a test binary.
florian-kuebler
approved these changes
Nov 28, 2022
Collaborator
florian-kuebler
left a comment
There was a problem hiding this comment.
Thanks for the change. Lgtm. Some minor comments and thoughts.
ronaldfw
reviewed
Nov 28, 2022
florian-kuebler
approved these changes
Nov 29, 2022
Collaborator
florian-kuebler
left a comment
There was a problem hiding this comment.
Thanks for addressing the comments!
Collaborator
Author
|
Thanks for the reviews! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
In order to represent functions in Orbit we read information from various sources: elf files, coff files, pdb's. In the end all of these produce SymbolInfo protos. This change adds a is_hotpatchable field to SymbolInfo. Only for elf files we parse for hotpatchable functions and set the new field to true if appropriate. Msvc also supports hotpatchable functions but for now we ignore this.
SymbolInfo is translated into FunctionInfo - so this also gets the is_hotpatchable field.
FunctionInfo is translated to a InstrumentedFunction in the capture options. The is_hotpatchable field is added there as well.
The rest of the PR is basically adding the new is_hotpatchable field to all the tests. The only real addition to testing is in ElfFileTest - it is parsing the hotpatchable function section from a test binary.