메모리 누수를 찾는 데 사용되는 .so 파일이 있습니다. 목표 바이너리를 실행하고자하는 세션에서 LD_PRELOAD env 변수를 설정합니다. export LD_PRELOAD=./memleakfinder.so
하지만이 환경 변수가 설정되면 ls
또는 ps
과 같은 간단한 Linux 명령도 Segmentation fault (core dumped)
을 발생시킵니다. 그 이유는 무엇입니까? .so 파일에 malloc()
, calloc()
, realloc()
, free()
, new
, new[]
등의 오버로드 된 버전이 있습니다. CentOS6의 자동 버그보고 도구는 다음과 같습니다 : source:coreutils Problem:process /bin/ls was killed by signal 11(SIGSEGV)
. 라이브러리 주입이 여기에서 문제를 일으키는 것은 분명합니다. 어떻게 피할 수 있습니까?LD_PRELOAD가 Linux 명령의 세그먼트 오류를 일으켰습니다.
1
A
답변
0
환경 변수를 내보내는 대신 실행/디버그 할 명령 앞에 변수를 추가하십시오.
예를 들어:
LD_PRELOAD=./memleakfinder.so a.out
을 그리고 도서관은 대신 현재 쉘의 모든 명령은 a.out이 하나의 호출을 위해로드됩니다.
일부 코드를 보지 않고도 세분화 오류의 원인을 파악하는 데 도움을 줄 수 없습니다.
관련 문제
- 1. uClibc vfork()가 세그먼트 오류를 일으켰습니다.
- 2. cffeed가 오류를 일으켰습니다
- 3. pthread_join이 seg 오류를 일으켰습니다
- 4. descendantOf()가 js 오류를 일으켰습니다.
- 5. android-ndk가 cygwin을 사용하여 건물에서 오류를 일으켰습니다.
- 6. 세그먼트 오류 세그먼트 오류를 제공하지 않는 예
- 7. linux 명령의 내부 작업
- 8. Linux 세그먼트 화 오류
- 9. Maxrecursion 및 Column이 오버플로 오류를 일으켰습니다.
- 10. HTACCESS가 500 내부 서버 오류를 일으켰습니다.
- 11. ALSA : snd_pcm_hw_params_free()가 메모리 오류를 일으켰습니다.
- 12. time_ago_in_words가 Rails 4.1에서 rspec에서 오류를 일으켰습니다.
- 13. Gem rb-inotify가 libffi 오류를 일으켰습니다.
- 14. htaccess의 FilesMatch가 내부 서버 오류를 일으켰습니다.
- 15. linux 명령의 출력을 C++ 변수에 복사하는 방법
- 16. g_file_new_for_path는()는 세그먼트 오류를
- 17. memcache_get() 세그먼트 오류를 제공
- 18. android 명령의 표준 오류를 얻습니다.
- 19. LD_PRELOAD가 내 프로그램에서 작동하지 않습니다.
- 20. LD_PRELOAD가 printf에 대해 작동하지 않습니다.
- 21. 세그먼트 화 오류를 일으키는 mysql_real_escape_string()
- 22. C에서 세그먼트 오류를 해결하는 방법
- 23. 되감기가 세그먼트 화 오류를 발생시킵니다.
- 24. PyArg_ParseTuple이 세그먼트 화 오류를 일으킴
- 25. 누가 세그먼트 화 오류를 던집니까?
- 26. 오류를 던지고있는 HTML 코드 세그먼트
- 27. exec 명령의 Linux 쉘 스크립트 구문 오류
- 28. linux 명령의 끝에 "&"는 무엇을 의미합니까?
- 29. Linux/Unix zipsplit vs split 명령의 이점
- 30. Linux 트리 명령의 기본 레벨 설정
** 제대로 ** 이러한 기능을 구현 했습니까? –
gdb를 사용하여 코어 덤프를 검사하고 충돌 지점에서 스택 추적을 확인하십시오. – harmic
전체 시스템에서 실행하기 전에 함수를 호출하고 테스트하는 테스트 프로그램을 작성하십시오. –