[질문] bad address 에 대해서 알려주세요.
글쓴이: yhjj777 / 작성시간: 금, 2004/07/09 - 6:23오후
함수 내에서 세개의 만 바이트 크기의 변수 세개를 선언하고 그 변수를 가지고 작업을 하는데요. 중간에 선언한 변수의 어드레스를 보면 bad address라고 나오네요. 변수의 위치를 바꿔도 결과가 똑같구요.
작업 도중에 bad address라고 나오는 변수에 데이타를 쓰다가 일정 위치에서 뻗어버리는걸보니 그 부분의 주소를 어디선가 참조해서 bad address가 나올것 같은데.. valgrind로 돌려봐도 그런 데이타가 없다고 합니다..
멀티 쓰레딩 환경에서 작업중이고.. 문제가 되는 부분도 쓰레드에서 작업 도중에 생기는 문제입니다.. 싱글쓰레드에서 돌리면 문제가 없구요.. bad address가 어떤 잘못을 했을떄 생기는 문제인지 알려주시면 감사하겠습니다!!
Forums:
자문자답
정말 생각지도 못한 문제였네요. 문제는 쓰레드의 스택 사이즈와 가드영역의 사이즈때문이었습니다. pthread를 사용하고 있는데 프비에서의 스택 사이즈와 리눅스에서의 스택 사이즈가 다르더군요. 리눅스에서는 꽤 크게 설정되어있던데비해 프비에서는 작게 설정되어있더라구요. 그러니 리눅스에서는 잘돌아가던 코드가 프비에서는 어느 한 지점을 넘어가니 bad address가 떳던거였구요.. 며칠동안 별짓을 다했는데 이런 문제라니,, 좀 허탈하네요.. -_-
허탈하시다니요.....
저도 리눅스에서 멀티 스래딩 작업을 많이 하는데 님이 고생하셔서 찾으신 결론이 앞으로 프로그래밍 하는데 있어 큰 도움이 될것 같네요
좋은 정보 감사드립니다.
/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/
댓글 달기