Format stack trace PC offset to 8 digits with leading zeros.
BUG: 9067999
Change-Id: Ib5bbf2d5c166dc27e35386d589536eeb6b078c6a
diff --git a/libcorkscrew/backtrace.c b/libcorkscrew/backtrace.c
index b365e5b..f1dd61d 100644
--- a/libcorkscrew/backtrace.c
+++ b/libcorkscrew/backtrace.c
@@ -319,16 +319,17 @@
if (symbolName) {
uint32_t pc_offset = symbol->relative_pc - symbol->relative_symbol_addr;
if (pc_offset) {
- snprintf(buffer, bufferSize, "#%02u pc %p %.*s (%.*s+%u)",
- frameNumber, (void*) symbol->relative_pc, fieldWidth, mapName,
- fieldWidth, symbolName, pc_offset);
+ snprintf(buffer, bufferSize, "#%02u pc %08x %.*s (%.*s+%u)",
+ frameNumber, (unsigned int) symbol->relative_pc,
+ fieldWidth, mapName, fieldWidth, symbolName, pc_offset);
} else {
- snprintf(buffer, bufferSize, "#%02u pc %p %.*s (%.*s)",
- frameNumber, (void*) symbol->relative_pc, fieldWidth, mapName,
- fieldWidth, symbolName);
+ snprintf(buffer, bufferSize, "#%02u pc %08x %.*s (%.*s)",
+ frameNumber, (unsigned int) symbol->relative_pc,
+ fieldWidth, mapName, fieldWidth, symbolName);
}
} else {
- snprintf(buffer, bufferSize, "#%02u pc %p %.*s",
- frameNumber, (void*) symbol->relative_pc, fieldWidth, mapName);
+ snprintf(buffer, bufferSize, "#%02u pc %08x %.*s",
+ frameNumber, (unsigned int) symbol->relative_pc,
+ fieldWidth, mapName);
}
}