Hallo Experten,
ich habe ein C#-Project bei dem sporadisch immer wieder folgende Exception die Software zum Absturz bringt.
"Attempted to read or write protected memory. This is often an indication that other memory is corrupt"
Dieser Fehler tritt auf mehreren PCs gleicher Konfiguration auf, wodurch sich ein Hardwaredefekt ausschließen lässt.
Ich habe bereits viel zu diesem Fehler gegoogelt. In den Beiträgen, die ich bisher gelesen habe wurden verschiedenste Lösungsansätze genannt, um das Problem zu beheben.
Ein Ansatz besteht darin, irgendetwas im Code zu ändern (beispielsweise das Framework, oder den grad der Optimierung). Ein anderer Beitrag besagt, dass diese Methode das Problem nur temporär umgeht, aber nicht dauerhaft löst. Es heißt, dass diese Änderungen lediglich den beschädigten Speicher von einem kritischen Bereich in einen unkritischen verschieben. Setzt man die Entwicklung fort, kann es jedoch passieren, dass der beschädigte Speicher wieder auf einen kritischen Bereich fällt wodurch der Fehler erneut auftritt.
Viele Beiträge schlagen vor, mittels WinDBG und SOS dem Problem auf den Grund zu gehen. Leider komme ich hiermit nicht so richtig weiter. Ich erstelle nach dem crash ein Dump-File, lade es in Windbg, lade die Symbole und SOS und starte meine Analyse mit !analyze -v. Leider erhalte ich nur sehr kryptische Infos.
Ich weiß nicht genau wonach ich suchen muss.
In einem Thread wurde empfohlen mittels Pageheap den Heap überprüfen zu lassen und im Falle eines Heap-Fehlers sofort die Software zum Absturz zu bringen, sodass Heap uns Stack noch nahe am Fehler sind.
Kennt einer von euch eine Vorgehensweise um einen solchen Fehler systematisch zu untersuchen und den Ursprung zu finden?
Welche Kommandos in Windbg sind hierfür nötig?
Gern poste ich auch nötige Informationen aus Windbg etc. Leider ist der Code so umfangreich, dass es wenig Sinn macht, hier Auszüge einzustellen ohne die relevanten Stellen zu kennen.
Vielen Dank
Hier noch einige Daten:
OS: Win7 Pro
Framework 4.0
System: 64Bit
Application: 32Bit
ich habe ein C#-Project bei dem sporadisch immer wieder folgende Exception die Software zum Absturz bringt.
"Attempted to read or write protected memory. This is often an indication that other memory is corrupt"
Dieser Fehler tritt auf mehreren PCs gleicher Konfiguration auf, wodurch sich ein Hardwaredefekt ausschließen lässt.
Ich habe bereits viel zu diesem Fehler gegoogelt. In den Beiträgen, die ich bisher gelesen habe wurden verschiedenste Lösungsansätze genannt, um das Problem zu beheben.
Ein Ansatz besteht darin, irgendetwas im Code zu ändern (beispielsweise das Framework, oder den grad der Optimierung). Ein anderer Beitrag besagt, dass diese Methode das Problem nur temporär umgeht, aber nicht dauerhaft löst. Es heißt, dass diese Änderungen lediglich den beschädigten Speicher von einem kritischen Bereich in einen unkritischen verschieben. Setzt man die Entwicklung fort, kann es jedoch passieren, dass der beschädigte Speicher wieder auf einen kritischen Bereich fällt wodurch der Fehler erneut auftritt.
Viele Beiträge schlagen vor, mittels WinDBG und SOS dem Problem auf den Grund zu gehen. Leider komme ich hiermit nicht so richtig weiter. Ich erstelle nach dem crash ein Dump-File, lade es in Windbg, lade die Symbole und SOS und starte meine Analyse mit !analyze -v. Leider erhalte ich nur sehr kryptische Infos.
Ich weiß nicht genau wonach ich suchen muss.
In einem Thread wurde empfohlen mittels Pageheap den Heap überprüfen zu lassen und im Falle eines Heap-Fehlers sofort die Software zum Absturz zu bringen, sodass Heap uns Stack noch nahe am Fehler sind.
Kennt einer von euch eine Vorgehensweise um einen solchen Fehler systematisch zu untersuchen und den Ursprung zu finden?
Welche Kommandos in Windbg sind hierfür nötig?
Gern poste ich auch nötige Informationen aus Windbg etc. Leider ist der Code so umfangreich, dass es wenig Sinn macht, hier Auszüge einzustellen ohne die relevanten Stellen zu kennen.
Vielen Dank
Hier noch einige Daten:
OS: Win7 Pro
Framework 4.0
System: 64Bit
Application: 32Bit
Comment