Массив Valgrind объединяет снимки - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь профилировать приложение с помощью инструмента massif.Я запускаю его с помощью этой команды:

./valgrind.bin  --tool=massif --stacks=yes --heap=yes --trace-children=yes --vgdb=yes /usr/bin/agl_proxy

Приложение работает очень долго.Как правило, когда приложение получает сигнал прерывания, оно будет чисто завершено, и massif создаст файл профиля со многими снимками:

desc: --stacks=yes --heap=yes
cmd: /usr/bin/app
time_unit: i
#-----------
snapshot=0
#-----------
time=0
mem_heap_B=0
mem_heap_extra_B=0
mem_stacks_B=0
heap_tree=empty
#-----------
snapshot=1
#-----------
time=4501979
mem_heap_B=0
mem_heap_extra_B=0
mem_stacks_B=1480
heap_tree=empty

Однако это конкретное приложение просто сбрасывает запас и зависает, не завершаясь должным образом и, таким образом, без правильное создание файла результатов.Я могу использовать vgdb, чтобы получить снимок во время работы приложения.Но он генерирует только один снимок.

Есть ли способ объединить снимки?Я попытался добавить снимок в файл с заголовком snapshot=#, но MassifVisualizer жалуется на формат.Возможно, есть возможность объединить их или какой-нибудь инструмент.

1 Ответ

1 голос
/ 20 июня 2019

Используя vgdb, вы можете попросить массив вывести все снимки с помощью запроса монитора ниже:

all_snapshots [<filename>] requests to take all captured snapshots so far and save them in the given <filename> (default massif.vgdb.out). 
...