1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 03:27:34 +00:00

LibSymbolication: Skip source position calculation if requested

Calculating source code positions can be expensive, and some
applications (like SystemMonitor's Stack tab) don't even show this
information, making these calculations wasteful.

This commit adds a new enumerated flag to the `symbolicate` functions
for callers to specify whether source positions should be included in
the results; it defaults to "Yes" to preserve old behavior for existing
applications.
This commit is contained in:
Rodrigo Tobar 2021-10-14 21:36:22 +08:00 committed by Brian Gianforcaro
parent 85a28a6555
commit 08428aadad
2 changed files with 20 additions and 12 deletions

View file

@ -20,8 +20,13 @@ struct Symbol {
bool operator==(Symbol const&) const = default;
};
enum class IncludeSourcePosition {
Yes,
No
};
Optional<FlatPtr> kernel_base();
Vector<Symbol> symbolicate_thread(pid_t pid, pid_t tid);
Optional<Symbol> symbolicate(String const& path, FlatPtr address);
Vector<Symbol> symbolicate_thread(pid_t pid, pid_t tid, IncludeSourcePosition = IncludeSourcePosition::Yes);
Optional<Symbol> symbolicate(String const& path, FlatPtr address, IncludeSourcePosition = IncludeSourcePosition::Yes);
}