Programowanie w systemie UNIX/Valgrind
Wygląd
Valgrind jest narzędziem do debugowania pamięci, wykrywania wycieków pamięci oraz profilowania aplikacji.[1][2]
Kompilacja programu
[edytuj]gcc c.c -g valgrind -v ./a.out
Możemy zapisać wynik Valgrinda do pliku, w celu łatwiejszej analizy:
valgrind -v ./a.out >& out # re-direct valgrind (and a.out) output to file 'out'
callgrind
[edytuj]Uruchamiamy:[5]
valgrind --tool=callgrind ./(Your_binary)
to powoduje utworzenie pliku : callgrind.out.x
Instalujemy program do przeglądania tych plików : kcachegrind
sudo apt install kcachegrind
I uruchamiamy z konsoli :
kcachegrind
Otrzymujemy obraz przedstawiający co zajmuje najwięcej czasu
Przykłady
[edytuj]valgrind --tool=memcheck ./a.out
albo[4]
valgrind --leak-check=yes ./a.out
lub:[8]
valgrind --leak-check=full ./a.out
Odnośniki
[edytuj]- ↑ Valgrind w wikipedii
- ↑ Debugowanie błędów pamięci pod Linuxem. Valgrind + memcheck by mateusz midor
- ↑ Using valgrind by Tia Newhall
- ↑ 4,0 4,1 The Valgrind Quick Start Guide
- ↑ stackoverflow question : how-can-i-profile-c-code-running-in-linux
- ↑ How to Detect Memory Leaks Using Valgrind memcheck Tool for C / C++ by Himanshu Arora on November 28, 2011
- ↑ Using Valgrind to Find Memory Leaks and Invalid Memory Use By Alex Allain
- ↑ How to deallocate memory without using free() in C? by Narendra Kangralkar