저는 이전에 Valgrind를 사용해 본 적이 없으며 C로 작성된 프로그램에서 메모리 누수를 확인하는 데 Valgrind를 사용하고 싶습니다. 저는 Linux Debian을 실행하는 BeagleBone AI를 사용하고 있습니다.
debian@beaglebone:~$ cat /proc/version
Linux version 4.14.108-ti-r127 (root@x2-am57xx-beagle-x15-2gb) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1)) #1 SMP PREEMPT Wed Jan 29 04:10:14 UTC 2020
Valgrind를 설치했습니다.
debian@beaglebone:~$ sudo apt-get install valgrind
gcc를 사용하여 코드를 컴파일했습니다. main.c와 main.h라는 두 개의 파일이 있습니다.
debian@beaglebone:/var/lib/cloud9/ETS/ELE216/Lab2/mini-shell$ gcc -o main main.c
코드가 예상대로 실행됩니다.
debian@beaglebone:/var/lib/cloud9/ETS/ELE216/Lab2/mini-shell$ ./main
그러나 Valgrind를 실행하려고 하면 오류가 발생합니다. Valgrind가 어떤 프로그램을 실행하더라도 동일한 오류가 발생합니다. 나는 시도했지만 ls
같은 ps
결과를 얻었습니다.
debian@beaglebone:/var/lib/cloud9/ETS/ELE216/Lab2/mini-shell$ valgrind --tool=memcheck ./main
==30416== Memcheck, a memory error detector
==30416== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
==30416== Using Valgrind-3.12.0.SVN and LibVEX; rerun with -h for copyright info
==30416== Command: ./main
==30416==
valgrind: m_transtab.c:2459 (vgPlain_init_tt_tc): Assertion 'sizeof(TTEntryC) <= 88' failed.
Segmentation fault
인터넷 검색을 좀 해봤지만 유용한 것을 찾지 못했습니다. 어떤 도움이라도 대단히 감사하겠습니다.