Wir haben versucht, einige Heap-Probleme in unseren Multithread-C++ - Anwendungen zu finden. Als eine Technik haben wir versucht, die Bibliothekszeile der Anwendung um -lmcheck zu ergänzen. Dies führt dazu, dass die App mit scheinbarer Heap-Beschädigung in relativ kurzer Zeit abstürzt.glibcs Option '-lmcheck' und Multithreading
Unsere App verwendet sowohl malloc/free als auch new/delete (je nach Bedarf).
Eines unserer Teams fragte sich, ob -lmcheck in der Tat threadsicher war, und legte einen Mutex um alle malloc/free-Anrufe. Die Abstürze gingen weg.
Weiß jemand, ob -lmcheck Multithreading unterstützen soll? Ich frage mich, ob wir das Werkzeug, das wir benutzen wollen, einfach falsch verstehen und uns dadurch unnötige Sorgen machen.
Interessant. Bedeutet das, dass die "Reparatur" des Fragestellers, obwohl es anscheinend die Abstürze verhindert hat, nicht wirklich gültig ist, und dass mcheck ihm bei seiner Bewerbung nicht helfen kann? –
Ich weiß nicht genug über die aktuelle Implementierung von mcheck oder die Änderungen, die im Code vorgenommen wurden, um diese Frage zu beantworten, aber ich würde wahrscheinlich davon Abstand halten und stattdessen andere Tools finden. –