Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › std/ › debug/ › Pdb.zig › getProcSym
getProcSym
Pdb.getProcSym
pub fn getProcSym (self : *Pdb , module : *Module , address : u64 ) ?*align (1 ) pdb .ProcSym
File
Code
pub fn getProcSym (self : *Pdb , module : *Module , address : u64 ) ?*align (1 ) pdb .ProcSym {
_ = self ;
std .debug .assert (module .populated );
var reader : Io .Reader = .fixed (module .symbols );
while (true ) {
const prefix = reader .takeStructPointer (pdb .RecordPrefix ) catch return null ;
if (prefix .record_len < 2 )
return null ;
reader .discardAll (prefix .record_len - @sizeOf (u16 )) catch return null ;
switch (prefix .record_kind ) {
.lproc32 , .gproc32 => {
const proc_sym : *align (1 ) pdb .ProcSym = @ptrCast (prefix );
if (address >= proc_sym .code_offset and address < proc_sym .code_offset + proc_sym .code_size ) {
return proc_sym ;
}
},
else => {},
}
}
return null ;
}