2017-02-18 7 views
0

부모 프로세스가 있고 하위 프로세스는 execve입니다. 나는 피크 힙과 자식의 스택 사용만을 추적하고자한다. 누군가가 어떻게 말해 줄 수 있습니까? 하위 프로세스의 힙 및 스택 사용 만 추적하십시오.

나는

valgrind --tool=massif --track-child=yes prog 

를 사용하여 생각하지만, 대산 괴에 의해 생성 된 보고서는 부모의 메모리 정보가 포함되어 있습니다. 나는 아이에게만 관심이 있으며 사용량이 너무 많습니다 (힙과 스택은 별도로)

Linux에서이 작업을 수행하려고합니다.

+0

텍스트 벽을 피해야합니다. 코드를 형식화해야합니다. 아주 짧은 도움을 읽으십시오. –

답변

0

다소 수동적 인 방법 일 수 있습니다. 자식이 exec()를 호출하기 전에 힙을 채우고 미리 결정된 테스트 값을 스택 할 수 있습니다. 이렇게하면 스택과 힙을 되돌아보고 어떤 값이 변경되었는지 확인할 수 있습니다. 이게 당신이 찾고있는거야, 아니면 스택과 힙을 동적으로 변경하면서 모니터하고 싶니?

+0

자식이 execve()를 호출하면 메모리 맵이 바뀝니다. 그래서 나는 자식 호출 execve() 후에 그것을 할 필요가있다. 또한 도구를 사용하여 더 빠르고 안정적으로 사용할 수 있기를 바랍니다. 내가 생각하기에 최후의 수단으로이 솔루션을 시도해 볼 수 있습니다. 또한 malloc에서 힙을 사용하는 방법을 잘 모르겠습니다. 그것은 사용하는 것보다 많은 힙을 예약합니다. 응용 프로그램이 실제로 사용하는 힙이 아니라 malloc이 가져온 총 힙을 찾고 싶습니다. –