views:

355

answers:

2

Hello. Are there possibility to set breakpoint (as i see Data Breakpoint) in VS 2005(C++) on Floating Point codes(ST0-ST7) changing? For example on changing of value ST7 with condition ST7==INF. Thanks a lot.

A: 

I've just tried this in VC++ 2008 Express, You can set a conditional break point which tests any of the floating point stack values e.g. ST0 == 1.0, as a condition.

I think this isn't quite what you are after however, I'm guessing you want to find the line of code which makes ST7 == INF, for this you will need to place such break points on every line with a condition ST7 == INF, it will then be easier to pick out where the change is being made.

Hopefully this works with VS 2005 too...

jheriko
A: 

You can't, but you can come close.

You can create a data breakpoint, then right click on it and add a condition - to pinpoint, say, a change to 42.0f.

Sadly, data breakpoints are inherently restricted to detecting in-memory changes - they rely on special debugging registers in the processor, that flag on access to a specified memory address.

I assume you do store your computation to some variable in memory. You can create a data breakpoint on it, and once you find the writing code location - step through the disassembly immediately preceding it.

Ofek Shilon