2017-02-18 99 views
0

我有一個父進程,其中分叉和execve子進程。我只想跟蹤孩子的堆棧和堆棧使用情況。有人能告訴我如何?只跟蹤子進程的堆和堆棧使用情況

我想用

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

的,而是由地塊生成的報告中包含的母公司的內存信息也。我只對孩子感興趣,並且這也是高峯使用(堆和堆棧分開)

我想在Linux上這樣做。

+0

你應該避開文字牆。代碼應該格式化。閱讀幫助,它很短。 –

回答

0

這可能是一種有點手動的做事方式。我可能會在孩子調用exec()之前用預定的測試值填充堆棧。這樣,您可以回看堆棧和堆以檢查更改的值。這是你正在尋找的,還是你想監視堆棧和堆,因爲它們動態變化?

+0

當孩子調用execve()時,內存映射將被替換。所以我需要在子調用execve()之後做到這一點。另外,我希望有一個工具可以讓它更快更可靠。我可以嘗試這個解決方案,作爲我想的最後一招。另外,我不確定malloc如何使用堆。它保留比使用更多的堆。我希望找到malloc所佔用的全部堆,而不僅僅是應用程序實際使用的堆。 –