Thursday, March 31, 2011

Visual C++ Data Breakpoints on Floating Points Codes Changing

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.

From stackoverflow
  • 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...

  • 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.

0 comments:

Post a Comment