Глюк дебагера. Значения переменных смещены на 4 байта
От: Megabyte-CeerCop  
Дата: 30.10.07 04:31
Оценка:
Привет всем!

Давно спотыкаюсь о глюк дебагера. Неправильные значения показывает. ТОлько что провел опыт. Добавил в код.


      void* poi;
      poi = &GameFPS.fps;


в следующей строке стоит Breakpoint
Вот что вижу в watch окне

— &GameFPS.fps 0x0134AD48 float*
&GameFPS.fps 20.000000 float
poi 0x0134AD4C void*


значения смещаются. Во всех массивах данные показывает от предыдущего элемента.
Кто нибудь знает что вызвало такое поведение?
Re: Глюк дебагера. Значения переменных смещены на 4 байта
От: Кодт Россия  
Дата: 30.10.07 09:47
Оценка:
Здравствуйте, Megabyte-CeerCop, Вы писали:

MC>Давно спотыкаюсь о глюк дебагера. Неправильные значения показывает. ТОлько что провел опыт. Добавил в код.


Случаем, релизную версию отлаживаешь? (Ну или в дебажной случайно включил оптимизации).
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[2]: Глюк дебагера. Значения переменных смещены на 4 байта
От: Megabyte-CeerCop  
Дата: 30.10.07 10:44
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Megabyte-CeerCop, Вы писали:


MC>>Давно спотыкаюсь о глюк дебагера. Неправильные значения показывает. ТОлько что провел опыт. Добавил в код.


К>Случаем, релизную версию отлаживаешь? (Ну или в дебажной случайно включил оптимизации).




Debug конфигурация.
на вкладке C++/Optimization везде только Disable или NO.
Re: Глюк дебагера. Значения переменных смещены на 4 байта
От: Pavel Dvorkin Россия  
Дата: 30.10.07 12:00
Оценка:
Здравствуйте, Megabyte-CeerCop, Вы писали:

MC>
MC>      void* poi;
MC>      poi = &GameFPS.fps;

MC>


Уверен, что это глюк именно дебаггера ? Сами-то значения правильные ? Проверь численные значения poi и &GameFPS.fps. Они равны ? Если нет — ассемблерный листинг этого оператора присваивания в студию.
With best regards
Pavel Dvorkin
Re[2]: Глюк дебагера. Значения переменных смещены на 4 байта
От: Megabyte-CeerCop  
Дата: 30.10.07 12:33
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Megabyte-CeerCop, Вы писали:


MC>>
MC>>      void* poi;
MC>>      poi = &GameFPS.fps;

MC>>


PD>Уверен, что это глюк именно дебаггера ? Сами-то значения правильные ? Проверь численные значения poi и &. Они равны ? Если нет — ассемблерный листинг этого оператора присваивания в студию.





Если програмно выводить значение GameFPS.fps на экран, то все правильно. А в дебагере показывает другое число.

вот асм


$LN75@RenderScen:

; 1384 : 
; 1385 : 
; 1386 : 
; 1387 : 
; 1388 : 
; 1389 : 
; 1390 : 
; 1391 : 

  08989    7f 00 00 00 00     ldsflda ?GameFPS@@$$Q3VcscFPS@@A
  0898e    1a         ldc.i.4 4    ; i32 0x4
  0898f    58         add 
  08990    0c         stloc.2     ; poi$

; 1392 : 
; 1393 : 
; 1394 : 

  08991    7f 00 00 00 00     ldsflda ?GF@@$$Q3T<unnamed-tag>@@A
  08996    20 f0 03 00 00     ldc.i4 1008    ; i32 0x3f0
  0899b    58         add 
  0899c    4e         ldind.r4 
  0899d    6c         conv.r8 
  0899e    7e 00 00 00 00     ldsfld ?CurentFXVol@@$$Q3MA
  089a3    6c         conv.r8 
  089a4    3b 9d 00 00 00     beq $LN69@RenderScen
Re: Глюк дебагера. Значения переменных смещены на 4 байта
От: Кодёнок  
Дата: 30.10.07 12:37
Оценка:
Здравствуйте, Megabyte-CeerCop, Вы писали:

MC>Давно спотыкаюсь о глюк дебагера. Неправильные значения показывает. ТОлько что провел опыт. Добавил в код.


Помню что у меня такое было с VC2003. Но не помню где именно. Но точно помню, что я её исправил. Но не помню, как.

Вроде это из-за precompiled headers: в нём запоминается и компилируется другое определение, отличное от того, что использует дебаггер. Попробуй сделать clean всем проектам и собрать заново.
Re: Глюк дебагера. Значения переменных смещены на 4 байта
От: Roman Odaisky Украина  
Дата: 30.10.07 17:41
Оценка: +1
Здравствуйте, Megabyte-CeerCop, Вы писали:

MC>Давно спотыкаюсь о глюк дебагера.


Ты б хотя бы название и версию указал, телепаты в отпуске.
До последнего не верил в пирамиду Лебедева.
Re[2]: Глюк дебагера. Значения переменных смещены на 4 байта
От: Megabyte-CeerCop  
Дата: 31.10.07 04:04
Оценка:
Здравствуйте, Roman Odaisky, Вы писали:

RO>Здравствуйте, Megabyte-CeerCop, Вы писали:


MC>>Давно спотыкаюсь о глюк дебагера.


RO>Ты б хотя бы название и версию указал, телепаты в отпуске.


А их два чтоли?(c)

MSVS 2005.
Re[2]: Глюк дебагера. Значения переменных смещены на 4 байта
От: Megabyte-CeerCop  
Дата: 31.10.07 04:39
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Здравствуйте, Megabyte-CeerCop, Вы писали:


MC>>Давно спотыкаюсь о глюк дебагера. Неправильные значения показывает. ТОлько что провел опыт. Добавил в код.


Кё>Помню что у меня такое было с VC2003. Но не помню где именно. Но точно помню, что я её исправил. Но не помню, как.


Кё>Вроде это из-за precompiled headers: в нём запоминается и компилируется другое определение, отличное от того, что использует дебаггер. Попробуй сделать clean всем проектам и собрать заново.


Clean сделал. Rebuil сделал. Тоже самое. :|
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.