0
A
답변
1
- 디버깅 기호 (컴파일 할 때
-g
플래그를 추가)로 다시 유닉스 터미널에서 C 언어에서 세그먼트 오류의 원인이되는 줄 알아 갈 수있는 방법을 알고 싶어요. gdb
을 통해 실행하십시오.gdb <binary name>
- 는 충돌에
run <binary name> <args>
- (
gdb
에서) 스택 추적을 볼 수backtrace
명령을 사용합니다. 문제가되는 줄은 스택 맨 위에 있지만 세그 폴트가 일부 라이브러리 코드에있는 경우 아래쪽을 살펴야 할 수도 있습니다.
코드를 디버거 (예 : GDB)에서 실행하십시오. –
충돌 할 때까지 한 번에 한 줄씩 코드를 단계별로 실행하십시오. – dasblinkenlight
세그먼트 오류는 * 정의되지 않은 동작 *의 증상입니다. 무슨 일이 일어나고 있는지는 반드시 그 원인이되는 선이 아닙니다. –