diff options
| author | Alexandre Chartre <alexandre.chartre@oracle.com> | 2025-11-21 10:53:22 +0100 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2025-11-21 15:30:10 +0100 |
| commit | 26a453fb5637907a538d6ea5ef23651142811e15 (patch) | |
| tree | 73fdb0ff0a96ea939f4a339c2bbcb4a50ba75254 /tools/objtool/trace.c | |
| parent | fcb268b47a2f4a497fdb40ef24bb9e06488b7213 (diff) | |
objtool: Improve register reporting during function validation
When tracing function validation, instruction state changes can
report changes involving registers. These registers are reported
with the name "r<num>" (e.g. "r3"). Print the CPU specific register
name instead of a generic name (e.g. print "rbx" instead of "r3"
on x86).
Signed-off-by: Alexandre Chartre <alexandre.chartre@oracle.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://patch.msgid.link/20251121095340.464045-13-alexandre.chartre@oracle.com
Diffstat (limited to 'tools/objtool/trace.c')
| -rw-r--r-- | tools/objtool/trace.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/tools/objtool/trace.c b/tools/objtool/trace.c index 12bbad09d9c0..d70d47081e82 100644 --- a/tools/objtool/trace.c +++ b/tools/objtool/trace.c @@ -34,6 +34,7 @@ int trace_depth; static const char *cfi_reg_name(unsigned int reg) { static char rname_buffer[CFI_REG_NAME_MAXLEN]; + const char *rname; switch (reg) { case CFI_UNDEFINED: @@ -46,6 +47,12 @@ static const char *cfi_reg_name(unsigned int reg) return "(bp)"; } + if (reg < CFI_NUM_REGS) { + rname = arch_reg_name[reg]; + if (rname) + return rname; + } + if (snprintf(rname_buffer, CFI_REG_NAME_MAXLEN, "r%d", reg) == -1) return "<error>"; |
