c++ - 如何使用 natvis Visual Studio C++ 调试器可视化器为单一类型进行多个列表扩展
问题描述
我正在尝试为以块形式存储值的容器制作调试器可视化工具。我想为值和块进行列表扩展,但据我所知,单一类型只能有一个列表扩展。可能有多Expand
个子节点,ArrayItems
但它们都产生单个列表。是的,我可以为容器进行块扩展,然后为每个块进行值扩展。但我想要两个具有如下扩展的容器子节点:
MyList
|-values
| |-0
| |-1
|
|-chunks
| |-0
| |-1
有没有办法使用 natvis xml 来做到这一点?
解决方案
You can use <Synthetic>
for that. The code inside <Synthetic>
can be for example <Item>
or <ArrayItems>
, but also any other item type.
<Type Name="MyList">
<DisplayString>...</DisplayString>
<Expand>
<Synthetic Name="values">
<DisplayString>...</DisplayString>
<Expand>
<!-- code for displaying as values -->
</Expand>
</Synthetic>
<Synthetic Name="chunks">
<DisplayString>...</DisplayString>
<Expand>
<!-- code for displaying as chunks-->
</Expand>
</Synthetic>
</Expand>
</Type>
推荐阅读
- python - 为什么在 XGBRegressor 中使用优化参数(MSE 是最小化目标)给我的 RMSE 与优化后的 RMSE 不同?
- javascript - MongoDB $geoNear 降低距离返回值的准确性
- c# - 解决了-也许?如何使用相关 DTO 的嵌套列表返回 DTO 列表
- python - Python中矩阵值的数值积分
- javascript - webpack bundler 是否支持新版本的 NPM 模块?
- json - 我可以使用 tv4 验证 json Schema Draft-7 吗?
- c# - 可以从多线程的actor外部调用iactorref.tell吗
- sql - PL/SQL Oracle Mutant table-如何遇到这个问题?
- python - Wasserstein损失可以是负数吗?
- matlab - f=415136356873531/(2251799813685248*bt) + 703048105211593/70368744177664 ; fplot(@(bt) f,[0.01 1],'b')