dbgscope 0.1.0

Typed WinDbg/DbgEng debug sessions, with kernel pool and user heap walkers built on them.
Documentation
[package]

name = "dbgscope"

version = "0.1.0"

edition = "2024"

description = "Typed WinDbg/DbgEng debug sessions, with kernel pool and user heap walkers built on them."

repository = "https://github.com/glslang/dbgscope"

license = "MIT"

readme = "README.md"

documentation = "https://docs.rs/dbgscope"

keywords = ["windbg", "dbgeng", "debugging", "kernel", "windows"]

categories = ["development-tools::debugging", "os::windows-apis"]

# Not edition 2024's 1.85 floor: `src/pool/{layout,index,snapshot}.rs` use let-chains, which

# stabilized in 1.88, and `snapshot.rs` uses `usize::is_multiple_of`, which stabilized in 1.87.

# Established by reading the source, not by building on 1.88 -- CI tracks stable and nothing

# here pins a toolchain, so treat it as a floor to re-verify with `cargo-msrv` rather than a

# version under test.

rust-version = "1.88"

# Agent instructions and CI config are repository furniture, not part of the published crate.

# `docs/` stays in: the README links into it, and a reader on docs.rs should be able to follow.

exclude = [

    ".github/",

    ".cursor/",

    "AGENTS.md",

    "CLAUDE.md",

]



[lib]

# cdylib is the !poolmap WinDbg extension (src/pool_extension.rs), not a shellcode payload.

crate-type = ["rlib", "cdylib"]



[dependencies]

hex = "0.4.3"

thiserror = "2.0.18"

windows-core = "0.62.2"



[dependencies.windows]

version = "0.62.2"

features = [

    "Win32_Foundation",

    "Win32_System_Diagnostics_Debug",

    "Win32_System_Diagnostics_Debug_Extensions",

    "Win32_System_SystemInformation",

]



# Only `examples/user_heap_smoke.rs` allocates on the host heap it then walks. Cargo unifies

# this with the normal dependency when building examples and tests, and a downstream consumer

# of the library still resolves the four features above and no more.

[dev-dependencies.windows]

version = "0.62.2"

features = ["Win32_System_Memory", "Win32_System_Threading"]



# docs.rs builds on Linux, where this crate does not compile at all. `default-target` is

# spelled out rather than left to docs.rs' "first of `targets`" fallback, because that fallback

# is the only thing standing between a rename of this list and a docs build against the Linux

# host — which fails outright, and fails the same way for every version.

[package.metadata.docs.rs]

default-target = "x86_64-pc-windows-msvc"

targets = ["x86_64-pc-windows-msvc", "aarch64-pc-windows-msvc"]