[질문] cgi 디버깅?
글쓴이: keston / 작성시간: 월, 2004/02/23 - 3:57오후
c로 만들어진 cgi가 있는데 (소스는 없구요..바이너리만..) 이게 자꾸 세그폴트가 나네요..
그래서 디버깅과 cgi가 실행될때 메모리값등을 보고 싶은데 어떻게 해야 하는지 모르겠습니다.
제가 디버깅툴이라곤 gdb만 그것도 대충 사용법 정도밖에 몰라서요..ㅡㅡ;
cgi가 데몬으로 떠있는 것도 아니고 httpd 프로세스는 여러개 떠있고..
이럴땐 어떻게 하면 될까요?
꼭 gdb를 통해서가 아니라두 아시면 답변 부탁드립니다.
글구 이와 유사한 경우로 예전부터 궁금했던 건데 xinetd를 통해 실행되는 데몬도 위의 답변과 같은 방법으로 하면 되나요?
Forums:
cgi 라면 그냥 쉘상에서 실행시키시면 브라우저 화면에 출력될 출력물이
cgi 라면 그냥 쉘상에서 실행시키시면 브라우저 화면에 출력될 출력물이 출력 됩니다. 즉 stdout으로 출력되죠
gdb로 보시면 됩니다.
GET으로 넘기는 값은 환경변수로 세팅하고 실행시키시면 됩니다 :)p
GET으로 넘기는 값은 환경변수로 세팅하고 실행시키시면 됩니다 :)
post로 넘기는건.. 형식을 맞춰서 Stdin으로 밀어넣어줘야....
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...
http://mytears.org ~(~_~)~
나 한줄기 바람처럼..
http://bbs.kldp.org/viewtopic.php?t=3218
http://bbs.kldp.org/viewtopic.php?t=32182&highlight=%B5%F0%B9%F6%B1%EB
cgi and 디버깅 를 키워드로 검색해보세요
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
간단하게...
cgi도 gdb로 디버깅 할 수 있습니다. 다만 환경변수를 수정해야 겠죠.
간단하게 확인 할 수 있는 방법은 각 라인마다 디버그 코드를 넣어주면
되겠죠.
fprintf(stderr, "line=%d, func=%s, file=%s\n", __LINE__, __FUNCTION__, __FILE__);
이런식으로 하던지, 보통 printf(); 함수 쓰듯이 포멧에 해당 변수값을
출력해 보면 알 수 있고 위와 같이 하면 어느 라인에서 프로그램이 죽는지 확인
할 수 있습니다.
당연히 터미널에서 확인해야 겠죠.
H/W가 컴퓨터의 심장이라면 S/W는 컴퓨터의 영혼이다!
댓글 달기