Visual Studio C++是否有更快的方法来设置断点值?

insrf1ej  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(78)

每次遇到断点时,我都需要输入一个特定的变量值,但是手动输入它们非常耗时,有没有更快的方法?代码不能修改。理想情况下,如果有另一个Visual Studio应用程序可以将值提供给其他Visual Studio C++ Locals窗口,那就太好了。最简单的方法是什么?

4jb9z9bj

4jb9z9bj1#

使用调试器断点动作功能。动作对话框建议它只能用于在输出窗口中打印消息,但{...}之间的任何表达式都将被计算,因此它可以用于强制变量或调用函数等。
范例:
1.首先创建一个断点并右键单击它,然后选择“操作...":x1c 0d1x
1.根据需要设置操作:本例中为

{i = i == 10 ? 99990 : i}
1.运行



这里,当i == 10i被设置为99990时,在这种情况下在循环中向前跳过。
我尝试将它与断点条件结合使用,但无法使其以预期的方式工作; YMMV。
你可以通过调用action表达式中的函数来执行更复杂的操作。例如,给定一个函数:

int test( int i )
{
    return i == 10 ? 99990 : i;
}

字符串
你可以从action表达式中调用它:{i=test(i)}。在这个例子中,它没有做更多的事情,但是演示了一个函数可以被调用。这个函数当然可以做更多的事情。
如果你想将一系列测试值注入到一个变量中,你可以使用一个action表达式:{i = getTestData()},其中getTestData()是一个函数 * 你 * 编写并链接到测试代码。例如,它可以从一个文件中读取一系列值。
当然,测试函数需要在断点位置的范围内,这通常需要修改代码以包含头文件、原型或实际函数。
然后,所有的测试激励文件可以在单独链接的模块中,代码本身不需要修改测试。
请注意,在频繁调用时,命中断点计算操作表达式并继续将显著降低执行速度。

相关问题