9 个重大版本
新功能 0.11.0 | 2024 年 8 月 21 日 |
---|---|
0.10.0 | 2024 年 2 月 25 日 |
0.8.0 | 2023 年 6 月 9 日 |
0.6.0 | 2023 年 3 月 29 日 |
0.0.0 | 2021 年 11 月 18 日 |
112 在 调试 中排名第 112
137 每月下载量
7.5MB
13K SLoC
包含(Windows DLL,3.5MB).windows/arm64/msdia140.dll,(Windows DLL,2MB).windows/x64/msdia140.dll,(Windows DLL,1.5MB).windows/x86/msdia140.dll,(DOS 可执行文件,145KB).windows/winmd/Microsoft.Dia.winmd,(静态库,2KB).windows/arm64/msdia140.lib,(静态库,2KB).windows/x64/msdia140.lib,及其他更多。
Rust 调试接口访问 (DIA) SDK
Microsoft 调试接口访问软件开发工具包 (DIA SDK) 提供了对由 Microsoft 后编译工具生成的程序数据库 (.pdb) 文件中存储的调试信息的访问。
首先,将 windows
和 microsoft-dia
依赖项添加到 Cargo.toml
[dependencies.windows]
version = "0.58.0"
features = [
"Win32_System_Com"
]
[dependencies.microsoft-dia]
version = "0.11.0"
根据需要使用任何 DIA SDK API。
use microsoft_dia::{nsfRegularExpression, DiaSource, IDiaDataSource, SymTagFunction};
use windows::{core::*, Win32::System::Com::{CoInitializeEx, COINIT_MULTITHREADED}};
fn main() -> windows::core::Result<()> {
unsafe {
CoInitializeEx(None, COINIT_MULTITHREADED)?;
let source: IDiaDataSource = microsoft_dia::helpers::NoRegCoCreate(s!("msdia140.dll"), &DiaSource)?;
let executable = std::env::current_exe().unwrap();
source.loadDataForExe(&HSTRING::from(executable.as_os_str()), None, None)?;
let session = source.openSession()?;
let symbols = session.globalScope()?.findChildren(SymTagFunction, w!("sample_functions::*"), nsfRegularExpression.0 as u32)?;
println!("Function symbols found in sample_functions::* ({}):", &executable.to_string_lossy());
for i in 0..symbols.Count()? {
println!("\t{}", symbols.Item(i as u32)?.name()?);
}
Ok(())
}
}
依赖项
~129MB
~2M SLoC