如何在命中断点并在VS中继续执行时在运行时自动修改变量的值?

时间:2017-10-04 07:12:38

标签: c++ visual-studio debugging watch

我们可以通过更改变量工具提示或本地/自动/观察窗口来手动更改值。 但我想将变量值自动更改为某些特定的硬编码值或基于代码段。 例如.-

int main()
{
int a=0,b=1,c=2;
//bla bla
for(int i=0; i<100; ++i)
{
executeMe();
}
//bla bla
}

我想在线路上设置一个断点&#34; executeMe()&#34;并改变&#39; b&#39;硬编码值3或基于变量值&#39; c&#39;,执行指令&#39; b = c&#39;。并且每次都在断点处继续执行而不停止。 如何在VS中执行此操作?

2 个答案:

答案 0 :(得分:1)

使用&#39;打印消息:&#39;选项而不是宏。代码中的值可以通过将它们放在{}中来打印。关键是VS还会将内容评估为表达式 - 因此{variable_name = 0}应该与宏示例相同。

感谢Tom McKeown在stackoverflow.com/a/15415763/2328412上提供此解决方案

答案 1 :(得分:0)

您可以使用#if预处理程序指令,这与下面的代码类似。

        int a = 0, b = 1, c = 2;
        for (int i = 0; i < 100; ++i)
        {
#if DEBUG
            b=3;
#endif
            executeMe();
        }