2017-08-28 1 views
0

gcc ver ist 5.4.0Für gcc in der Option -fsanitize, wie 'address' und 'leak' zusammen zu verwenden?

Ich mag es verwenden möchten: -fsanitize = Wohnung, Leck

OK?

+1

Lecksuche soll in die Adresse Sanitizer enthalten sein. –

+0

@MarcGlisse Eigentlich ist dies bei älteren Releases (ca. 4.8) nicht der Fall, bei denen LSan und ASan noch nicht integriert waren. Sehen Sie [diesen Kommentar] (https://github.com/google/sanitizers/issues/699#issuecomment-290479274) zum Beispiel. – yugr

Antwort

0

Geben Sie einfach -fsanitize=address und -fsanitize=leak (als separate Programmargumente) an gcc. Lesen Sie das Kapitel Invoking GCC und den Abschnitt Instrumentation Options.

Verwenden Sie auch das Programm valgrind.

Vergessen Sie nicht alle Ihren Code mit -Wall -Wextra -g (und vielleicht sogar -g3) zu kompilieren.

+0

gcc's doc für ältere Releases gibt eindeutig an, dass -fsanitize = leak nutzlos ist, wenn du -fsanitize = Adresse hast. –

+0

@MarcGlisse Können Sie weitere Details angeben? Ich denke ASan und LSan waren nicht in älteren GCC-Releases integriert. – yugr

+1

Eine weitere Option ist die Übergabe von '-fsanitize = Adresse, leak'. – yugr

Verwandte Themen