如何在c++中修复Visual Studio本地/手表(调试版本)
How to repair Visual Studio locals/watches in C++ (Debug build)
有时VS autos/locals/watch会中断,而不是变量/值,我所拥有的是不同类型的:
CXX0029: Error: not struct pointer
CXX0033: Error: error in OMF type information
CXX0072: Error: type information missing or unknown
CXX0025: Error: operator needs class/struct/union
重建项目,清理PDB/NCB等并不能解决问题。我能做什么?
看看这个微软支持说明:FIX: CXX0033 OMF类型错误从前向类声明
一旦你修复了支持说明中引用的PCH问题,我认为你所有的错误都会消失。
实际上有一个解决方案可以让您继续使用预编译的头文件:查看这篇最新的KB文章和/Yl开关的文档——它似乎是专门针对这个错误定制的。
只需在stdafx.cpp(或您自己的自定义/Yc文件)命令行中添加'/Ylxxxx',其中xxxx表示lib中的任意函数名称。
我最近遇到了与您相同的症状(在VS2010中),这为我解决了问题。
您正在调试"发布"构建吗?如果是这样,许多局部变量将不作为"可调试"元素存在。你可以绕过这个问题(如果你必须调试发布版本),通过在程序集级别调试并查看寄存器值(相对于堆栈值,其中auto/local将在调试版本中),并在"观察窗口"中适当地转换它们。
否则,构建Debug构建并调试该构建版本。您将获得不满足前提条件的断言,将相关/不相关的内容转储到输出窗口,以及更直接的单步调试。
它帮助我从使用程序数据库(/ZI)切换到"c7兼容";(/Z7)。关闭预编译的头文件没有什么区别。重建也没有。
相关文章:
- 将地址分配给本地指针后,公共对象的变量将消失
- 如何在本地机器上运行c++和javascript客户端代码(hackerbank风格)
- 编写代码时C++出现错误:错误 1 错误 C2601:'circle':本地函数定义是非法的
- 如何使用 Boost Asio 在 Android 上获取我的本地 udp IP 地址?
- 在成员dynamic_bitset上使用 boost::from_block_range 时出错,但在本地dynamic
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- C++:在被本地字符串捕获后释放或销毁 malloc'd char *?
- C++:处理线程本地对象销毁
- 如何强制 Thrift 仅接受来自本地主机的连接
- 将对象创建为全局/静态对象会崩溃,而本地对象不会崩溃
- 具有捕获引用的长寿命(非本地)λ
- 如果原型是本地的,则使用流 I/O C++类型约束将失败
- C++ 未初始化的本地(非全局)int 数组中的元素类型到底是什么?
- 内联函数的函数本地静态对象是否在共享对象文件之间共享?
- 如何制作带有本地声明头的链表?
- 如何初始化大线程本地对象?
- CMake 导入本地共享库以及如何将其包含在标头中
- 我是否需要在 c++ 中从本地指针中释放分配的内存?
- 使用 sftp_open() 使用 C++ 中的 SFTP libssh 将文件从本地复制到远程时,File 返回 N
- 如何在c++中修复Visual Studio本地/手表(调试版本)