mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 05:47:35 +00:00
Userland: Tweak the visual display of the bt
utility
This patch adds a few minor visual features to the `bt` utility: - Number each frame of the back trace. - Color the address based on if it's in kernel or user space. - Add a "frames:" heading to visually seperate the thread id. - Rename "tid: <tid>" -> "thread: <tid>" as it's more visually appealing since it aligns vertically with "frames:" - Add a visual " | " seperate between the address and symbol name.
This commit is contained in:
parent
786f6841b3
commit
529a8664f4
1 changed files with 7 additions and 2 deletions
|
@ -37,10 +37,14 @@ int main(int argc, char** argv)
|
|||
|
||||
while (iterator.has_next()) {
|
||||
pid_t tid = iterator.next_path().to_int().value();
|
||||
outln("tid: {}", tid);
|
||||
outln("thread: {}", tid);
|
||||
outln("frames:");
|
||||
auto symbols = Symbolication::symbolicate_thread(pid, tid);
|
||||
auto frame_number = symbols.size() - 1;
|
||||
for (auto& symbol : symbols) {
|
||||
out("{:p} ", symbol.address);
|
||||
// Make kernel stack frames stand out.
|
||||
int color = symbol.address < 0xc0000000 ? 35 : 31;
|
||||
out("{:3}: \033[{};1m{:p}\033[0m | ", frame_number, color, symbol.address);
|
||||
if (!symbol.name.is_empty())
|
||||
out("{} ", symbol.name);
|
||||
if (!symbol.filename.is_empty()) {
|
||||
|
@ -64,6 +68,7 @@ int main(int argc, char** argv)
|
|||
out(")");
|
||||
}
|
||||
outln("");
|
||||
frame_number--;
|
||||
}
|
||||
outln("");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue