Notice
Recent Posts
Recent Comments
준호씨의 블로그
c - EXC_BAD_ACCESS 케이스 해결 방법 정리 본문
반응형
맥에서 c 언어로 개발 할 때, EXC_BAD_ACCESS 가 발생하는 경우 해결책에 대한 정리해 본다.
clean
make clean && make && make install
특정 함수의 위치를 이동 시키고 나면 종종 발생하는데 그런 경우 object (확장자 o) 파일 같은 것들이 예전 정보를 가지고 있을 경우 발생 할 수 있는 거 같다. 이런 경우 그냥 clean 하고 새로 빌드 하면 된다.
include 가 빠졌는지 확인
빌드 할 때 아래와 같은 메시지를 본적이 있었다면 프로토타입 선언없이 함수를 사용하고 있을 수 있다.
something.c:164:26: warning: implicit declaration of function 'some_function' is invalid in C99 [-Wimplicit-function-declaration]
char* from_command = some_function(...);
이런 경우 해당 함수가 선언된 header 파일을 include 해서 프로토타입을 선언 할 수 있도록 하자.
자료형을 잘 썼는지 확인. 메모리 영역 침범 이슈
컴파일 옵션에 따라 좀 달라질 수는 있겠지만 적절한 자료형을 썼는지 확인 필요하다. 8바이트 long 을 사용할 위치에 4바이트 int 로 선언 한 경우 문제가 생길 수 있다.
curl 을 사용하다가 겪은 적이 있는데 아래와 같은 코드에서 였다.
int response_code = 0; // long 으로 선언해야 된다.
...
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
신기한건 매번 겪는건 아니고 라이브러리로 함수를 옮기고 나서 발생함. 함수 위치를 요리조리 바꿔주면 되기도 하는데 좋은 방법은 아니고 적당한 사이즈의 자료형을 제대로 사용해 주는 것이 좋다.
관련글
반응형
'개발이야기' 카테고리의 다른 글
cmake - find_package 로 curl 라이브러리 경로 찾기. FindCURL (0) | 2018.04.23 |
---|---|
python - djangogirls 튜토리얼 실습. 개발 환경 세팅 부터 서버구동 까지 (0) | 2018.04.22 |
telnet 명령어를 이용해서 이메일 발송하는 방법 (0) | 2018.02.27 |
osx에서 coreutils(gnu util) 사용하기. grep, find, tail 등등 (0) | 2018.02.25 |
Java - Http Clients (0) | 2018.02.09 |
Comments