2

Ich habe ein hochparalleles Windows-Programm, das viele Threads, handcodierte Maschinensynchronisationsanweisungen und selbstgerollte, parallel-sichere Speicherzuordner verwendet. Leider hat die Speicherverwaltung ein Loch (kein Synchronisierungsloch in den Allokatoren, Ich bin mir ziemlich sicher) und ich würde es gerne finden. Valgrind wurde als ein gutes Tool zum Auffinden von Speicherverwaltungsfehlern vorgeschlagen. Irgendwelche Erfahrungen mit Valgrind unter diesen Umständen?Wie gut behandelt Valgrind Threads und Synchronisierungsanweisungen auf Maschinenebene?

Antwort

3

Valgrind läuft nicht unter Windows, aber es funktioniert mit Windows-Programmen, die unter Wine unter Linux laufen. Wenn Ihr Programm unter Wine läuft, hat es eine gute Chance, mit Valgrind zu arbeiten. Details siehe winehq.org.

Die neueste Version ist ziemlich gut im Umgang mit allen 32-Bit-x86-Anweisungen. Es kann Programme verarbeiten, die viele Threads erstellen, aber erwarte nicht, dass sie gleichzeitig unter valgrind ausgeführt werden. Es wird nur ein Thread gleichzeitig ausgeführt, als ob es auf einem einzelnen Core-Computer ausgeführt wurde.