4个稳定版本
1.0.3 | 2022年9月7日 |
---|---|
1.0.2 | 2019年12月30日 |
1.0.1 | 2019年11月30日 |
0.0.1 |
|
在调试中排名#360
每月下载量29次
12KB
80 行
natvis-pdbs
一个兼容 metabuild / build.rs 的crate,可以将 .natvis
调试可视化文件嵌入到您的可执行文件的 .pdb
中,便于调试。
限制
- Natvis 和 PDBs 是微软的技术,除非使用基于 MSVC 的构建工具链,否则将没有效果。
- 虽然
crate-type=rlib
crate 可以包含 .natvis 文件,但它们不应直接依赖natvis-pdbs
。 (由于 crate 在构建时是隔离的,natvis-pdbs
只有在使用最终的 .exe、.lib 或 .dll crate 时才会工作。) - 这利用了
%LINK%
环境变量,因为目前还没有稳定的 build.rs 兼容的任意链接参数。
快速入门
要创建包含 .natvis 文件的 crate (示例)
将一个或多个 natvis 文件放在以下任一位置。
- crate 的根目录。
{root}\src
文件夹中。{root}\debug_metadata
文件夹中。
其他位置(包括上述位置的子目录)将(目前)不会被搜索。有关 .natvis 格式的更多信息,请参阅下面的 推荐阅读。
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="example_crate_with_natvis::Flags">
<Expand>
<Item Name="bits" ExcludeView="sparse">bits,bb</Item>
<Item Name="A (1)" ExcludeView="sparse">(bits & (1 << 0)) != 0</Item>
<Item Name="B (2)" ExcludeView="sparse">(bits & (1 << 1)) != 0</Item>
<Item Name="C (4)" ExcludeView="sparse">(bits & (1 << 2)) != 0</Item>
</Expand>
</Type>
</AutoVisualizer>
通过 build.rs 消费 .natvis 文件 (示例)
将以下内容添加到您的可执行文件的 Cargo.toml 中
[build-dependencies]
natvis-pdbs = "1"
并将以下内容添加到您的 build.rs 中
fn main() {
natvis_pdbs::metabuild();
}
通过 metabuild(仅限夜间版本,示例)来消费 .natvis 文件
将以下内容添加到您的可执行文件的 Cargo.toml 中
cargo-features = ["metabuild"]
[package]
metabuild = ["natvis-pdbs"]
[build-dependencies]
natvis-pdbs = "1"
推荐阅读
许可证
在以下任一许可证下发布
- Apache 许可证 2.0(《LICENSE-APACHE》或http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(《LICENSE-MIT》或http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则根据 Apache-2.0 许可证定义的,您有意提交并包含在作品中的任何贡献,将按上述方式双许可,无需任何额外条款或条件。
依赖关系
~0.7–1.4MB
~33K SLoC