VS2005中Nebula3数据类型的调试信息显示

本文介绍如何在Visual Studio 2005中使用autoexp.dat文件自定义调试时的数据显示格式,特别针对Nebula3库中的类型进行格式化展示,包括数学类型、字符串和容器等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用过VS2003的应该知道, STL的容器调试起来非常麻烦, 因为调试时显示的信息非常不直观

VS2005引入一个autoexp.dat, 可以定义数据在调试时显示的格式

详细介绍可以参考:Writing custom visualizers for Visual Studio 2005

这里暂时给出一些Nebula3相关的格式定义:

这些放到[AutoExpand]字段下面:

;------------------------------------------------------------------------------ ; Nebula Device 3 Types ;------------------------------------------------------------------------------ Math::float4=<X,g>, <Y,g>, <Z,g>, <W,g> Math::quaternion=<X,g>, <Y,g>, <Z,g>, <W,g>

这些放到[Visualizer]字段下面:

;------------------------------------------------------------------------------ ; Nebula Device 3 Types ;------------------------------------------------------------------------------ Core::Rtti{ preview( $e.name ) } Util::Array<*>|Util::FixedArray<*>{ children ( #array ( expr : $c.elements[$i], size : $c.size ) ) preview ( #( "[", $c.size , "](", #array ( expr : $c.elements[$i], size : $c.size ), ")" ) ) } Util::KeyValuePair<*>{ preview ( #( "(", $e.keyData, ",", $e.valueData, ")" ) ) } Util::String{ preview ( #if($e.heapBuffer != 0) ( [$e.heapBuffer,s] ) #else ( [$e.localBuffer,s] ) ) } Util::Proxy<*>{ preview( $e.ptr.ptr ) } Util::Atom<*>{ preview( $e.proxy ) }

Array相关的那个还不能用, 我也不清楚是为什么

#array的size: 后写什么都不管用, 直接写个数字却能起效果. 不知道哪位仁兄指点一下? 感激不尽

=================================================================

08/05/2009 : 修正Array/FixedArray调试信息无法显示的问题

原因让人很崩溃: Array::size的"size"成员是autoexp的一个关键字, 所以产生了解析错误

把Array::size和FixedArray::size改名叫arraySize解决问题. 脚本更正如下:

Util::Array<*>|Util::FixedArray<*>{ children ( #array ( expr : $c.elements[$i], size : $c.arraySize ) ) preview ( #( "[", $c.arraySize , "](", #array ( expr : $c.elements[$i], size : $c.arraySize ), ")" ) ) }

现在的效果是不是跟std::vector一样了呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值