Podczas pracy z narzędziem Valgrind muszę rejestrować szczegóły wygenerowane przez narzędzie Valgrind. Jak mogę to osiągnąć? Próbowałem czegoś takiego
valgrind a.out | test
i
valgrind a.out > test
Podał tylko wynik programu, a nie błąd pamięci valgrind, informacje o wycieku. Nawet ja się tak dostaję, jeśli program nie wymaga interakcji z użytkownikiem (tj. Podawania danych wejściowych). Jeśli program wymaga wprowadzenia danych przez użytkownika, nawet to samo nie zadziała.
W jaki sposób mogę to zrobić?
valgrind a.out &> file
Odpowiedzi:
źródło
Domyślnie Valgrind zapisuje swoje dane wyjściowe na stderr. Musisz więc zrobić coś takiego:
Alternatywnie możesz powiedzieć Valgrindowi, aby napisał gdzie indziej; zobacz http://valgrind.org/docs/manual/manual-core.html#manual-core.comment (ale nigdy tego nie próbowałem).
źródło
a.out
dane wyjściowe do tego samego pliku dziennika. Jeśli chcesz zapisać wyjście Valgrinda do pliku dziennika bez pliku dziennikaa.out
, powinieneś użyć--log-file
opcji sugerowanej przez Lexa.Możesz także ustawić opcje --log-fd, jeśli chcesz po prostu czytać logi przy użyciu mniejszego. Na przykład :
źródło