Контрольные точки данных Visual C ++ при изменении кодов с плавающей точкой - PullRequest
1 голос
/ 17 февраля 2009

Есть ли возможность установить точку останова (как я вижу Точка останова данных) в VS 2005 (C ++) при изменении кодов с плавающей точкой (ST0-ST7)? Например, при изменении значения ST7 с условием ST7 == INF. Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2009

Вы не можете, но можете подойти ближе.

Вы можете создать точку останова для данных, затем щелкнуть по ней правой кнопкой мыши и добавить условие - например, для точного определения изменения в 42.0f.

К сожалению, точки останова данных по своей природе ограничены обнаружением изменений в памяти - они полагаются на специальные регистры отладки в процессоре, которые указывают на доступ к указанному адресу памяти.

Я предполагаю, что вы сохраняете свои вычисления в некоторой переменной в памяти. На нем можно создать точку останова для данных, и, как только вы найдете место написания кода, выполните пошаговую разборку, непосредственно предшествующую ей.

0 голосов
/ 17 февраля 2009

Я только что попробовал это в VC ++ 2008 Express. Вы можете установить условную точку останова, которая проверяет любое из значений стека с плавающей запятой, например, ST0 == 1,0, как условие.

Я думаю, что это не совсем то, что вам нужно, однако, я предполагаю, что вы хотите найти строку кода, которая делает ST7 == INF, для этого вам нужно будет ставить такие точки останова на каждой строке с условие ST7 == INF, тогда будет легче определить, где производится изменение.

Надеюсь, это работает и с VS 2005 ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...