我怎么能麻烦-拍这个?
我将this question中的natvis示例与C++/WinRT控制台模板结合起来,并成功地获得了Matrix2d
工作的natvis,而不是Uri
。
#include "pch.h"
using namespace winrt;
using namespace Windows::Foundation;
struct Matrix2d
{
Matrix2d(int r, int c) : m_numRows(r), m_numCols(c), m_elements(r* c, 0) {}
// Column first ordered elements
std::vector<int> m_elements;
int m_numRows;
int m_numCols;
};
int main()
{
init_apartment();
Uri uri(L"http://aka.ms/cppwinrt");
Matrix2d g(4, 3);
printf("Hello, %ls!\n", uri.AbsoluteUri().c_str());
}
我不确定natvis文件cppwinrt将产生什么(.natvis或.pdb)以及它们将位于何处。
下面是Natvis调试输出。它显示只有我的自定义Natvis文件(\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis)和系统范围内的Natvis文件(%VSINSTALLDIR%\Common7\Packages\Debugger\Visualizers)正在加载。
Studio\2019\Community\Common7\Packages\Debugger\Visualizers\atlmfc.natvis.:解析
文件: C:\Program (x86)\MicrosoftNatvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\concurrency.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\cpp_rest.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\ObjectiveC.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\stl.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\Windows.Data.Json.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\windows.devices.geolocation.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\windows.devices.sensors.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\windows.media.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\windows.natvis.Natvis:解析natvis文件: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\winrt.natvis.Natvis:解析natvis文件: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis.Natvis:忽略ConsoleApplication2.pdb中的NatvisFile.natvis;加载的项目中已经存在同名的文件。Natvis: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis(17,6):成功地在上下文'Matrix2d‘中解析了表达式'0’。Natvis: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis(18,6):成功地在上下文'Matrix2d‘中解析了表达式'i < m_numRows’。Natvis: C:\Program (x86)\Microsoft Visual x86成功地解析了上下文类型为'std::vector‘的表达式'_Mypair._Myval2._Myend - _Mypair._Myval2._Myfirst’。Natvis: C:\Program (x86)\Microsoft Visual x86成功地解析了上下文类型为'std::vector‘的表达式'_Mypair._Myval2._Mylast - _Mypair._Myval2._Myfirst’。Natvis: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\stl.natvis(1064,29):成功地在上下文类型'std::vector中解析了表达式'size()‘。Natvis: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\stl.natvis(1066,52):成功地解析了上下文类型为'std::vector‘的表达式“能力()”。Natvis: C:\Program (x86)\Microsoft Visual x86成功地在上下文'std::vector‘中解析了表达式'_Mypair’。Natvis: C:\Program (x86)\Microsoft Visual Studio\2019\Community\Common7\Packages\Debugger\Visualizers\stl.natvis(1069,15):成功地在上下文类型'std::vector中解析了表达式'size()‘。Natvis: C:\Program (x86)\Microsoft Visual x86成功地在上下文'std::vector‘中解析了表达式'_Mypair._Myval2._Myfirst’。Natvis: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis(19,23):成功地在上下文'Matrix2d‘中解析了表达式'&m_elementsi * m_numCols,m_numColsna’。Natvis: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis(19,8):成功地在上下文'Matrix2d‘中解析了表达式'i’。Natvis: C:\Users\a\source\repos\ConsoleApplication2\ConsoleApplication2\NatvisFile.natvis(20,12):成功地在上下文'Matrix2d‘中解析了表达式'++i’。
这是新安装的Windows 10和VS19 (16.8.2)。
发布于 2020-12-07 02:50:31
看起来cppwinrt团队已经从v6插件中删除了Visualizer:
从V6 #792 - https://github.com/microsoft/cppwinrt/pull/792中删除Visualizer
我不知道为什么他们决定移除Visualizer,但我设法让Visualizer再次工作了
从https://github.com/microsoft/cppwinrt
/ )
https://stackoverflow.com/questions/65138675
复制相似问题