在 Visual Studio 中调试 x64 位 DLL 时看不到变量

Cannot see variables when debugging a x64 bit DLL in Visual Studio

我正在尝试逐步执行 Visual Studio 中的 C/C++ 程序 (MapServer),但我看不到局部变量。

我通过添加从源代码构建的主 .exe 创建了一个新项目。我可以设置断点并毫无问题地逐步执行程序,但我看不到任何变量中存储的内容。我 运行 所有这些都在虚拟机上 - 主机 OS 是 Windows 10,VM 是 Windows 7。

节目是:

我相当确定这是因为它是 x64 位版本,因为我可以对 x32 构建使用完全相同的方法并查看变量。

x32 调试器示例(前 5 个变量正确 - 其他未设置):

x64 调试会话示例(注意程序运行良好):

我认为这可能是由于 VS2008,所以我也在 VS2015 中尝试过,但结果相似(失败):

尝试访问立即 Window 中的变量会产生:

// working VS2008 x32 build
map->name
0x00ffcb40 "WFS_server"

// VS2008 x64 build
map->name
0x0000000000000000 <Bad Ptr>

// VS2015 x64 build
map->name  
0x0000000000000000 <NULL>

我是否遗漏了 Visual Studio 中的一些调试器设置以将调试项目设置为 x64?或者在产生这个的源代码中是否存在一些转换问题?

感谢任何指点..

以上是由于在 Windows 上弃用了 stdrup,并且堆已损坏。

GitHub 上的 MapServer 问题可见于 https://github.com/mapserver/mapserver/pull/5277

这个问题也描述了一个类似的问题:Heap corruption with strdup