segmentation fault 해결하기
컴파일할 때 아래 옵션을 넣어주면 어디서 문제 생긴건지 알려준다. -g -fsanitize=address
Last updated
컴파일할 때 아래 옵션을 넣어주면 어디서 문제 생긴건지 알려준다. -g -fsanitize=address
Last updated
segmentation fault
에러 잡기가 너무 어려웠다.printf
로 하나씩 찍어보면서 확인하는 것도 지치고... vscode 디버깅 모드도 잘 모르고...🥲
피씬때부터 선생님이었던 kychoi
님께 SOS를 요청했는데 완전 꿀팁을 알려주셨다.
컴파일할 때 아래 옵션을 넣어주면 어디서 문제 생긴건지 알려준다!!!!!!!!!
예를들면 이런 식이다.
main.c 58번 째 줄에서 사용한
get_next_line.c의 67번 째 줄에서 사용한
ft_strjoin.c의 25번 째 줄의
ft_stelen.c 에서 문제가 생겼다는 뜻이다.
gnl
에서 backup[fd]
를 ft_strjoin
으로 넘길 때 아직 할당되어있지 않은 backup[fd]
를 바로 ft_strlen
로 읽어버리니까 세그폴트가 난 것이었다.
backup[fd]를 처음에 NULL로 초기화 해주던가
ft_strjoin 내부에서 NULL 들어왔을때도 처리할 수 있게 해주던가
하는 방식으로 해결할 수 있었다.
이제 세그폴트... 두렵지 않을지도...🥲?!