VS2005 Merkwürdiger Fehler - Keine Chance zu debuggen



  • Hallo,

    ich habe seid ein paar Tagen einen sehr merkwürdigen Fehler, den ich auch nicht debuggen kann. In einem recht komplex aufgebauten Altprojekt, das ich erweitern soll, musste ich eine nicht alzu grosse Änderung durchführen. Und dabei ist dann folgendes aufgetreten. An einer Stelle die ich garnicht angepackt habe, tritt jetzt ein Fehler auf.

    Es wird ein struct DATATYP per memcpy in einen vielgrössen Buffer kopiert. Nach dem memcpy steht an den zwei ersten Stellen Mist und der kopierte struct wurde um 2 Stellen verschoben.
    Dies kann man sogar im Debugger nachvollziehen. Vor dem Aufruf der memcpy-Funktion sind alle Variablen im Debugger ok. Wenn ich dann mit F11 in den Assemblercode von memcpy reinspringe ist der struct DATATYP kaputt.

    Ich bin ziemlich ratlos! Fehler tritt genauso auch im Release-Mode (gleiches Verhalten) auf.

    Mit freundlichen Grüssen
    Ludger.



  • Struct Aligment stimmt evtl. nicht? pragma pack unterschiedlich?



  • danke für deine Antwort, da muss ich mal nach schauen. Aber es werden viele (ca 20.) struct xxxSATZ verwendet.

    Jeder struct ist von folgenden #pragmas eingerahmt.

    #pragma pack(push, 1)
    struct xxxSATZ
    {
    };
    #pragma pack(pop)
    

    Bei den Projekteigenschaften Struct Member Alignment steht Default.

    Das merkwürdige an der ganzen Sache ist halt, das es jetzt plötzlich auftritt.
    Und scheinbar nur an dieser einen Stelle. Andere Stellen wo auch auf structs zugriffen wird, klappen problemlos


Log in to reply