pub fn getSymbolName(di: *const Dwarf, address: u64) ?[]const u8 di: *const Dwarfaddress: u64345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361pub fn getSymbolName(di: *const Dwarf, address: u64) ?[]const u8 {
// Iterate the function list backwards so that we see child DIEs before their parents. This is
// important because `DW_TAG_inlined_subroutine` DIEs will have a range which is a sub-range of
// their caller, and we want to return the callee's name, not the caller's.
var i: usize = di.func_list.items.len;
while (i > 0) {
i -= 1;
const func = &di.func_list.items[i];
if (func.pc_range) |range| {
if (address >= range.start and address < range.end) {
return func.name;
}
}
}
return null;
}