【发布时间】:2021-10-24 23:35:56
【问题描述】:
不幸的是,QObject 在调试器中没有像预期的那样在调试器中可见的QString m_objectName 成员。相反,所有的实现数据都隐藏在不透明的指针后面。有没有办法在运行时从 Visual Studio 调试器中查看 objectName?
背景:
在调试 Qt 应用程序时,可能有许多特定 QObject 的实例,并且很难知道是哪一个触发了崩溃,因为调用堆栈中可能没有该信息。但是,如果它们都被赋予了唯一的 objectNames,理论上这可以让人们快速查明有问题的代码区域。
更多详情:
- 我使用的是 Qt 5.9.3 和 Visual Studio 2019
- 我已经为 Visual Studio 安装了
qt5.natvis(它不会为您执行此操作) - 我要求至少有一个可以工作的监视表达式,它可以粘贴到调试器中,用于带有 objectName 的任何本地
QObject派生变量,以便显示其 objectName。 - 理想的答案还包括更新后的
qt5.natvis,它显着地公开了任何本地QObject派生变量的objectName。
【问题讨论】:
标签: c++ visual-studio qt debugging visual-studio-debugging