Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Heap Corruptions & Impossible Errors Debugging

Empfohlene Antworten

Veröffentlicht

Ich hab seit einer Weile mit den im Titel genannten Problemen zu kämpfen.

Es handelt sich um eine große ziemlich komplexe C++ Multithread Server Anwendung.

Momentan lass ich das Programm im Visual Studio Debugmodus laufen um mögliche Fehler zu finden.

Der Server läuft in der Regel für 5 bis 10 Stunden stabiel und crasht dann irgendwann entweder mit einem "Heap Corruption detected" Error beim freigeben (delete) von Speicher oder mit einem unmöglichen Fehler z.B.:


for(int x = 0; x < 9; x++)

   myObj[x]->doSomething();  // x ist jetzt auf einmal 537 und die Anwendung crasht.

Die Fehler treten ziemlich zufällig auf und nur selten an den selben Stellen.

Memory leaks kann ich nach einigen tests mit _CrtDumpMemoryLeaks() ausschliesen.

Eigentlich deutet alles auf einen Bufferüberlauf hin, der den Stack und Heap zerschießt, nur weiss ich nicht wo ich anfangen soll zu suchen.

Ich weiss das es einige Tools gibt, die dabei helfen können. Was ich mich nur frage ist, gibt es irgend ein Tool das ich mit dem Visual Studio Debugger zusammen nutzen kann?

Ich suche sowas wie Full PageHeap debugging innerhalb der Entwicklungsumgebung so das ich mich möglichst nicht mit den Crash Dumps rumschlagen muss.

Bevor ich das nämlich tue, wollte ich mal nachgefragt haben ob ich mir den Zeitaufwand auch sparen könnte.

Hattet ihr schonmal so ein Problem? Wie geht ihr sonst damit um?

Bearbeitet von Xanatus

Tipps für Tools habe ich leider nicht für dich, aber die Fehlerbeschreibung klingt nach falscher oder fehlender Threadsynchronisierung. Vielleicht hat jemand kritische Stellen mit einfachen Variablen "gelockt". Oder auch mit volatile-Variablen. Das geht oft gut, aber eben nicht immer.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.