Function getSymbolName [src]

Prototype

pub fn getSymbolName(self: *Pdb, module: *Module, address: u64) ?[]const u8

Parameters

self: *Pdbmodule: *Moduleaddress: u64

Source

pub fn getSymbolName(self: *Pdb, module: *Module, address: u64) ?[]const u8 { _ = self; std.debug.assert(module.populated); var symbol_i: usize = 0; while (symbol_i != module.symbols.len) { const prefix: *align(1) pdb.RecordPrefix = @ptrCast(&module.symbols[symbol_i]); if (prefix.record_len < 2) return null; switch (prefix.record_kind) { .lproc32, .gproc32 => { const proc_sym: *align(1) pdb.ProcSym = @ptrCast(&module.symbols[symbol_i + @sizeOf(pdb.RecordPrefix)]); if (address >= proc_sym.code_offset and address < proc_sym.code_offset + proc_sym.code_size) { return std.mem.sliceTo(@as([*:0]u8, @ptrCast(&proc_sym.name[0])), 0); } }, else => {}, } symbol_i += prefix.record_len + @sizeOf(u16); } return null; }