Release unterschied



  • Halli-Hallo

    Habe ein Programm, welches Daten verschiedener Datentypen (Strukturen )versenden soll. Diese schreibe ich in ein char-Array mittels Hilffunktionen, die entsprechend die Bits setzen beim Sender (serialisieren), und lesen (deserialisieren) beim Empfänger. In der Debug-Version funktioniert alles einwandfrei, jedoch kommen in der Release Version falsche Daten an. Dabei tritt der Fehler an den unterschiedlichsten Stellen auf. Strukturen die sich absolut gleichen kommen einmal richtig und einmal falsch an. Manchmal kommt sogar die selbe Struktur einmal richtig und das andere mal fehlerhaft an. Woran liegt das ???



  • Verwendest du nicht-initialisierte Variablen?



  • Du meinst ja auch, sie würden fehlerhaft ankommen. Überprüf doch mal, ob sie beim Senden schon vermurkst sind, oder eben beim Empfang (bzw nach dem Empfang).



  • student23 schrieb:

    Halli-Hallo

    Habe ein Programm, welches Daten verschiedener Datentypen (Strukturen )versenden soll. Diese schreibe ich in ein char-Array mittels Hilffunktionen, die entsprechend die Bits setzen beim Sender (serialisieren), und lesen (deserialisieren) beim Empfänger. In der Debug-Version funktioniert alles einwandfrei, jedoch kommen in der Release Version falsche Daten an. Dabei tritt der Fehler an den unterschiedlichsten Stellen auf. Strukturen die sich absolut gleichen kommen einmal richtig und einmal falsch an. Manchmal kommt sogar die selbe Struktur einmal richtig und das andere mal fehlerhaft an. Woran liegt das ???

    Strukturen, Datenmüll und Release/Debug - das klingt für mich nach sinngemässem

    #ifdef DEBUG
    #pragma pack(<irgendwas>)
    #else
    #pragma pack(<was_anderes_oder_gar_nichts>)
    #endif
    

    Hast Du pack Pragmas im Code, ggf. in inkludierten Third-Party- Headern oder wird ein Compilerschalter anders gesetzt?
    Linkst Du Debug mit Debug-Versionen von Third-Party-Libs?

    Grüsse

    *this


Anmelden zum Antworten