mirror of
https://github.com/microsoft/onefuzz.git
synced 2025-06-17 20:38:06 +00:00
Rename coverage
to coverage-legacy
(#2685)
This commit is contained in:
45
src/agent/coverage-legacy/examples/pdb_sancov_tables.rs
Normal file
45
src/agent/coverage-legacy/examples/pdb_sancov_tables.rs
Normal file
@ -0,0 +1,45 @@
|
||||
// Copyright (c) Microsoft Corporation.
|
||||
// Licensed under the MIT License.
|
||||
|
||||
use anyhow::Result;
|
||||
use structopt::StructOpt;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq, StructOpt)]
|
||||
struct Opt {
|
||||
#[structopt(long)]
|
||||
pe: std::path::PathBuf,
|
||||
|
||||
#[structopt(long)]
|
||||
pdb: Option<std::path::PathBuf>,
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
fn main() -> Result<()> {
|
||||
use coverage_legacy::block::pe_provider::PeSancovBasicBlockProvider;
|
||||
use goblin::pe::PE;
|
||||
use pdb::PDB;
|
||||
|
||||
let opt = Opt::from_args();
|
||||
|
||||
let data = std::fs::read(&opt.pe)?;
|
||||
let pe = PE::parse(&data)?;
|
||||
|
||||
let pdb = opt
|
||||
.pdb
|
||||
.clone()
|
||||
.unwrap_or_else(|| opt.pe.with_extension("pdb"));
|
||||
let pdb = std::fs::File::open(pdb)?;
|
||||
let mut pdb = PDB::open(pdb)?;
|
||||
|
||||
let mut provider = PeSancovBasicBlockProvider::new(&data, &pe, &mut pdb);
|
||||
let blocks = provider.provide()?;
|
||||
|
||||
println!("blocks = {:x?}", blocks);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
fn main() -> Result<()> {
|
||||
Ok(())
|
||||
}
|
Reference in New Issue
Block a user