无法在 Visual Studio 调试器中编辑 std::atomic 值
Cannot edit an std::atomic value in Visual Studio debugger
这是我的测试程序:
#include <iostream>
#include <atomic>
std::atomic<int> Counter = 200;
int main()
{
if(Counter > 0)
std::cout << "Hello World!\n";
}
我正在为 if(Counter > 0)
设置一个断点,当它被击中时,我将 Counter
添加到手表 window:
如您所见,“编辑值”条目显示为灰色,无法在调试器中更改值。用 int Counter = 200;
替换变量定义使其在调试器中可编辑,但我丢失了我需要的相关内存排序语义。
有没有办法创建一个至少具有释放-消耗顺序的计数器,我可以通过调试器对其进行操作?
是的,将以下内容添加到您的手表中 window:Counter._Storage._Value
这是我的测试程序:
#include <iostream>
#include <atomic>
std::atomic<int> Counter = 200;
int main()
{
if(Counter > 0)
std::cout << "Hello World!\n";
}
我正在为 if(Counter > 0)
设置一个断点,当它被击中时,我将 Counter
添加到手表 window:
如您所见,“编辑值”条目显示为灰色,无法在调试器中更改值。用 int Counter = 200;
替换变量定义使其在调试器中可编辑,但我丢失了我需要的相关内存排序语义。
有没有办法创建一个至少具有释放-消耗顺序的计数器,我可以通过调试器对其进行操作?
是的,将以下内容添加到您的手表中 window:Counter._Storage._Value