7 个版本

使用旧的 Rust 2015

0.2.7 2019年10月11日
0.2.6 2019年7月3日
0.2.5 2019年2月20日
0.2.1 2018年11月30日

#9 in #abandoned

MIT/Apache

205KB
3.5K SLoC

已废弃

使用 pdb


lib.rs:

pdb 创建解析 Microsoft PDB (程序数据库) 文件。PDB 文件包含由大多数针对 Windows 的编译器生成的调试信息,包括符号、类型、模块等信息。

用法

PDB 文件通过 pdb::PDB 对象 访问。

示例

#
let file = std::fs::File::open("fixtures/self/foo.pdb")?;
let mut pdb = pdb::PDB::open(file)?;

let symbol_table = pdb.global_symbols()?;

let mut symbols = symbol_table.iter();
while let Some(symbol) = symbols.next()? {
    match symbol.parse() {
    	Ok(pdb::SymbolData::PublicSymbol(data)) if data.function => {
    		// we found the location of a function!
    		println!("{:x}:{:08x} is {}", data.segment, data.offset, symbol.name()?);
            # count += 1;
    	}
    	_ => {}
    }
}

依赖项

~2.5MB
~55K SLoC