if (pid) {
struct blaze_symbolize_src_process src = {
.type_size = sizeof(src),
.pid = pid,
};
syms = blaze_symbolize_process_abs_addrs(symbolizer, &src, (const uintptr_t *)stack, stack_sz);
} else {
struct blaze_symbolize_src_kernel src = {
.type_size = sizeof(src),
};
syms = blaze_symbolize_kernel_abs_addrs(symbolizer, &src, (const uintptr_t *)stack, stack_sz);
}
if (syms == NULL) {
printf(" failed to symbolize addresses: %s\n", blaze_err_str(blaze_err_last()));
return;
}
for (i = 0; i < stack_sz; i++) {
if (!syms || syms->cnt <= i || syms->syms[i].name == NULL) {
printf("%016llx: <no-symbol>\n", stack[i]);
continue;
}