如何为String_view创建(VC14)调试可视化器
Howto create (VC14) debug visualiser for string_view?
我正在使用boost :: string_view。(www.boost.org/doc/libs/1_61_0/boost/utility/string_view.hpp)
它具有const char* ptr_和一个未签名的int len_数据成员。当调试繁琐的时,默认的可视化器将显示带有比长度更多的char pr_(因为String_view未终止)。
我尝试通过查看std :: String Visualiser创建自己的可视化器。如果我用硬编码长度(说4),我可以显示字符串,但是我不能让它使用实际的长度变量。任何帮助都赞赏。破碎的示例:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="boost::basic_string_view<char,*>" Priority="High">
<DisplayString>{ptr_,4}</DisplayString> //works...
<DisplayString>{ptr_,len_}</DisplayString> //doesnt work...
</Type>
</AutoVisualizer>
花费一整天的反复试验后,我发现了令人沮丧的简单解决方案。应该是
"{ptr_,[len_]}"
在此处记录:
https://msdn.microsoft.com/en-us/library/windows/hardware/dn936815(v = vs.85).aspx
我的工作示例:
<?xml version="1.0" encoding="utf-8"?>
<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
<Type Name="boost::basic_string_view<char,*>" Priority="High">
<DisplayString>{ptr_,[len_]s8}</DisplayString>
<Expand>
<Item Name="[size]" ExcludeView="simple">len_</Item>
<ArrayItems>
<Size>len_</Size>
<ValuePointer>ptr_</ValuePointer>
</ArrayItems>
</Expand>
</Type>
</AutoVisualizer>
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 在linux上调试巨大的C++项目
- 为什么使用__LINE_的代码在发布模式下在MSVC下编译,而不是在调试模式下
- 如何针对特定情况调试和修复此双自由内存损坏问题
- 正在VS调试器中监视映射条目
- 使用调试/崩溃报告将应用程序部署到客户端
- VC++本机单元测试,找不到调试符号
- 如何在C++生成器中禁用"使用调试.dcus"
- 使用vscode调试时,GDB意外退出
- 即使使用调试编译标志,表达式也是"optimized out"
- 调试 CUDA MMU 故障
- 小字符串优化(调试与发布模式)
- 调试和自由执行中的信号处理
- 调试编译的服务器在数据库打开时崩溃
- Visual Studio 调试优化如何工作?
- 如何配置Visual Studio Code以使用cygwin,cmake和gcc进行调试
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 如何在大型c++项目的可视化代码中设置调试
- Qt 调试显示行号
- 如何为String_view创建(VC14)调试可视化器