Hallo zusammen,
ich habe ein Problem das mir teilweise meine Software abstürzt. Im Betrieb mit der .exe (nicht im Debugger) stürtzt das Programm ohne eine Meldung ab, respektive das Fenster schliesst sich einfach und das Programm ist weg.
Im Debugger krieg ich die Fehlermeldung "Ungültige Zeigeroperation". Was ich auch schon festgestellt habe beim Step by Steb debugging, ist dass manchmal die aktuelle Zeile nicht zur nächsten hüpft sondern 2 vorher, oder 4 vorher, oder x vorher.... Dieses Verhalten kann ich nicht jedesmal feststellen.
Die Abstürze passieren auch nicht regelmässig, was eine Fehlersuche praktisch unmöglich macht.
den ganzen Code kann ich leider nicht posten, da es sich um Firmensoftware handelt.
Ich vermute es könnte an String->char umwandlungen liegen. Grundsätzlich arbeite ich mit der Seriellen Schnittstelle, und versende und empfange Daten an diese. Diese Daten sind teils hardcodiert und zu einem grossen Teil aus einer Datei ausgelesen.
ein paar Ausschnitte:
Hat jemand einen Ansatz? Oder kann ich euch noch mehr Informationen geben um zu einer Lösung zu kommen?
Ich bin echt langsam an einem Punkt wo ich nicht weiter komme...
Vielen Dank für Euer Verständnis
ich habe ein Problem das mir teilweise meine Software abstürzt. Im Betrieb mit der .exe (nicht im Debugger) stürtzt das Programm ohne eine Meldung ab, respektive das Fenster schliesst sich einfach und das Programm ist weg.
Im Debugger krieg ich die Fehlermeldung "Ungültige Zeigeroperation". Was ich auch schon festgestellt habe beim Step by Steb debugging, ist dass manchmal die aktuelle Zeile nicht zur nächsten hüpft sondern 2 vorher, oder 4 vorher, oder x vorher.... Dieses Verhalten kann ich nicht jedesmal feststellen.
Die Abstürze passieren auch nicht regelmässig, was eine Fehlersuche praktisch unmöglich macht.
den ganzen Code kann ich leider nicht posten, da es sich um Firmensoftware handelt.
Ich vermute es könnte an String->char umwandlungen liegen. Grundsätzlich arbeite ich mit der Seriellen Schnittstelle, und versende und empfange Daten an diese. Diese Daten sind teils hardcodiert und zu einem grossen Teil aus einer Datei ausgelesen.
ein paar Ausschnitte:
Code:
char* Content; DWORD ContentSize; DWORD PacketSize; unsigned int SendSize=PacketSize; char* chrInputBuffer = new char[20]; char* chrOutputBuffer = new char[PacketSize]; ... //Daten aufbereiten for(tempi=0;tempi < SendSize+1;tempi++) { chrOutputBuffer[tempi] = Content[tempi + (PacketSize*intCount)]; } ... //Daten senden FileWrite(CO.Kanal,chrOutputBuffer,SendSize); ... //Antwort lesen ReadBytes = FileRead(CO.Kanal,chrInputBuffer,11); if(ReadBytes > 0) { for(j=0;j < ReadBytes;j++) { switch(chrInputBuffer[j]) { case '\b': case '-': case '|': case '/': case '\\': break; default: strInputBuffer += chrInputBuffer[j]; break; } } if(strInputBuffer.Pos("ERROR")) { OutputDebugStringA("Es trat ein Fehler auf."); return 2; } ... ContentSize -= SendSize; SendSize = PacketSize;
Ich bin echt langsam an einem Punkt wo ich nicht weiter komme...
Vielen Dank für Euer Verständnis
Comment