C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38137] Re:Re:linux 에서 socket 전송의 segmentation fault
황상준 [] 1186 읽음    2004-11-24 01:20
감사 합니다..
아까 GDB로 돌려 봤는데~~ 천천히 돌려 보는데
문제의 부분인
pos = (int *)malloc((index+1)*sizeof(int));
부분에서 segmentation fault는 나지 않더라구요~~
단지 너무 시간을 지체 해서 그런지 메시지 전달을 받지 못했지만.. -_-;
정말이지 전에는 됐었는데~~ -_-;
2주 지나서 점검하는데 나버려서 짜증 많이 났네요~ ㅎㅎ
RPC로 바꿀까 하는데 유용한 사이트 없을까요??
알려 주시면 감사하겠습니다. ^^;

신경써 주시고 같이 고민해 주셔서 감사합니다. (__)

유영인  Cuperido 님이 쓰신 글 :
: pos = (int *)malloc((index+1)*sizeof(int));
:
: 특별히 이 줄이 문제는 없어 보입니다.
: 다만, 다른 곳에서 메모리 엮임을 방지하기 위하여
: 버그를 수정해야 할 필요성이 있어 보입니다.
:
: 1. line 169
:     free(rcvMsg); 이 생성 없이 소멸자만 존재
:
: 2. line 153 이 부분에서
:         if( (remain-cnt) > SENDSIZE)
:         {
:             if( recv(sockFd, (msg+cnt), RCVSIZE, 0) < 0)
:                 errorMsg("msg recv() failed");
:         }
:         else
:         {
:             if( recv(sockFd, (msg+cnt), (remain-cnt), 0) < 0)
:                 errorMsg("msg recv() failed");
:             break;
:         }
:         cnt += RCVSIZE;
:
: 일정 바이트가 되지 않으면 루프를 돌아 일정 바이트를 채우는 것 같은데
: 현재 사용하시는 TCP 통신의 경우 recv가 딱딱 떨어져서 오지는 않습니다.
:
: if( recv(sockFd, (msg+cnt), (remain-cnt), 0) < 0) 이 부분에서 return 되는 값은
: 실질적으로 넘겨받은 byte 값인데, cnt += RCVSIZE; 에서 이미 define 된 값을
: 증가시키고 있습니다.
:
: 이런 경우, TCP통신이 조금이라도 지체되어 다음 타이밍으로 버퍼가 넘어가 잘렸을 경우
: (즉, 한덩어리가 모두 오지 않은 경우) buffer overflow 에러를 발생합니다.
: (물론 눈에는 보이지 않고 다른 변수들의 영향을 미칩니다)
:
:
: 이외 다른 부분은 테스트할 여건이 되지 않아 :( 잘 모르겠네요.
: gdb 에서 한줄한줄 넘어가시면서 print 로 값의 변화를 알아보시는 것도 좋은
: 방법이라 생각됩니다.
:
:
: cuperido
:
:
: 황상준 님이 쓰신 글 :
: : 밑에서 물어봤던 건데요...
: :
: : 같은 함수를 두번 호출 하면 두번째 함수의 첫번째 malloc 부분에서
: :
: : segmentation fault 가 납니다.. -_-;;
: :
: : 좀 도와 주세요.. 쩝.. 벌써 일주일째... 답답하네요..

+ -

관련 글 리스트
38134 linux 에서 socket 전송의 segmentation fault 황상준 870 2004/11/23
38136     Re:linux 에서 socket 전송의 segmentation fault 유영인 Cuperido 1893 2004/11/24
38137         Re:Re:linux 에서 socket 전송의 segmentation fault 황상준 1186 2004/11/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.