浮点代码更改的Visual C ++数据断点

时间:2009-02-16 23:57:42

标签: debugging visual-studio-2005 floating-point

是否有可能在VS 2005(C ++)中设置浮点代码(ST0-ST7)的断点(如我看到的数据断点)?例如,在条件ST7 == INF的情况下改变值ST7。非常感谢。

2 个答案:

答案 0 :(得分:0)

我刚刚在VC ++ 2008 Express中试过这个,你可以设置一个条件断点来测试任何浮点堆栈值,例如: ST0 == 1.0,作为条件。

我认为这不是你所追求的,但我猜你想要找到使ST7 == INF的代码行,为此你需要在每一行上放置这样的断点。条件ST7 == INF,然后更容易找出改变的位置。

希望这也适用于VS 2005 ......

答案 1 :(得分:0)

你不能,但你可以近距离接触。

您可以创建数据断点,然后右键单击它并添加条件 - 例如,更改为42.0f。

遗憾的是,数据断点本质上仅限于检测内存中的更改 - 它们依赖于处理器中的特殊调试寄存器,这些寄存器在访问指定的内存地址时进行标记。

我假设您将计算存储到内存中的某个变量。您可以在其上创建一个数据断点,一旦找到写入代码位置 - 直接在它之前的反汇编步骤。