2014-11-06 3 views
3

전적으로 C++로 작성된 클라이언트 서버 시스템이 있습니다. 서버는 시작/중지 옵션이있는 /etc/init.d/serverd으로 실행됩니다. Client.exe은 모든 명령을 client.exe --options으로 실행합니다. 각 클라이언트 호출로 데몬이 안타. /etc/init.d/serverdvalgrind을 첨부하여 누설을 감지하고 싶습니다. 아래 옵션을 시도했지만 실패했습니다.데몬과 valgrind를 연결하고 각 데몬 호출에 대한 로그를 수집하십시오.

/usr/local/bin/valgrind --log-file=valgrind_1.log -v --trace-children=yes --leak-check=full --tool=memcheck --vgdb=yes --vgdb-error=0 /etc/init.d/ serverd start 

데몬이 연결될 때마다.

는 우리가 원하는 것은, 때마다 있도록 client.exe --options의 실행 시간[ the exact point is , I will stop daemon , attach valgrind with it and then start it again ]을 시작하기에 데몬 valgrind를 연결하는 것입니다, 로그는 사람이 작업을 수행하는 방법에 대한 어떤 생각을 가지고 있습니까 --log-file=valgrind_1.log

에서 데몬 생성한다 같은?

+0

실행 스크립트는'serverd '와 어떻게 다릅니 까? – Surt

답변

1

기존의 프로세스에 Valgrind의 첨부 할 수없는 것 : 그것은 나에게 보인다 http://valgrind.org/docs/manual/faq.html#faq.attach

가장 좋은 방법은 데몬 프로세스를 죽일 것입니다, 그리고 자신에 의해 Valgrind의에서 실행 파일을 실행합니다.

+0

나는 같은 작업을했지만 데몬과 함께 valgrind를 제대로 부착 할 수 없었다. 데몬이 시작될 때까지 초기 로그가 존재하지만 그 이후에는'client.exe'가 적중 한 각 데몬에 대한 로그를 남깁니다. 로그 파일에는'--log-file = valgrind_1.log' 옵션으로 주어진 로그가 없습니다. 데몬이 제대로 실행되고 작동하지만 valgrind가 로그를 생성 할 수 없으며 데몬의 메모리 누수를 분석 할 수 없음을 의미합니다. –

+0

그래서 나는 답을 모른다. 나는 나 자신이 단순한 코멘트를 허락한다 : 1. 당신은 valgrind가이 경우에 달리고 있다고 확신 하는가? 'ps -e | grep valgrind'는이를 나타냅니다. 2. 정확한 장소에서 로그를 검색하고 있습니까? 어쩌면 절대 파일로 정의하는 것이 더 안전합니다. – FabienRohrer