Die doppelte Variable wird 0 zugewiesen, wenn Sie über (F10) C ++ - Code im Debug in Visual Studio 2022, xmm0 RegisterprC++

Programme in C++. Entwicklerforum
Anonymous
 Die doppelte Variable wird 0 zugewiesen, wenn Sie über (F10) C ++ - Code im Debug in Visual Studio 2022, xmm0 Registerpr

Post by Anonymous »

Ich habe ein Problem mit der Zuweisung von Werten für doppelte Variablen beim Übertreten (F10) meinen Code erlebt. Dies geschah nur, als ich Schritt für Schritt (F10) verwendet habe. Wenn ich Run (F5) mit Breakpoints verwendet habe, verhält sich die Zuweisung korrekt. Auch wenn der Code (gleiche Debug-Konfiguration) ohne Debugging des Verhaltens korrekt war. Ich habe es zu einer minimalen Funktion vereinfacht, bei der nur eine Zuordnung einer schwimmenden Punktkonstante war. Die Optimierung ist deaktiviert, sodass der Code wirklich ausgeführt wird. Ich hatte das gleiche Verhalten in komplexen Funktionen erlebt. Dies dient nur zur Darstellung des Problems.
Ich denke

Code: Select all

int AktualizujEfektivnuSadzbuDebug()
{
double cerpana_suma = 7.7;

cerpana_suma = 12.3;

if (cerpana_suma 
Tatsächlich gibt es keinen Grund, warum es in den IF -Zustand eintreten sollte. Ich benutze f5 es nicht. Aber wenn ich F10 aus dem Haltepunkt auf Assigmnent "cerpana_suma = 12.3" verwende, wird 0 in die Variable zugeordnet. Und die Schaffung testet es für 0 positiv.551A5E03  movsd       xmm0,mmword ptr [__real@402899999999999a (55E26F48h)]
551A5E0B  movsd       mmword ptr [cerpana_suma],xmm0
Wert für die Adresse 0x55e26f48 ist korrekt:

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post