问题描述
我正在开发使用 MSVC 2019 构建的应用程序。过去,我可以在调试时(通过单击“+”号)在“变量”窗口中查看结构成员。本周停止工作:变量窗口仅显示十六进制地址)。我没有(有意)更改任何构建设置,但问题仍然存在。源代码没有变化。
对我做错了什么有任何想法吗?
我试过了:
详情:
通过设置->C/C++->预处理器->附加包含目录指定的包含文件目录:
用 MSVC v2019 编译
戴尔 Optiplex Win10/64
更新 03/25/2021
- 到目前为止,这个问题只发生在我构建 SSL/TLS 应用程序时。我已经尝试了几个具有相同结果的 SSL 包(GitHub OpenSSL、FireDaemon、Shining Light 等)。我在每个包中都包含了 ssl.h。
- 在我的应用中定义的结构成员正确显示
解决方法
您应该取消选中 Locals 窗口下的 Hexadecimal Display
选项。
我发现了问题。根据
https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes,许多数据结构在 v1.1.0 中变得“不透明”,并且结构成员不再可访问。
对于代码纯粹主义者来说是美好的一天,但它让我们这些可怜的人难以调试。
恕我直言,似乎无法解决这个问题。