У меня есть исполняемый код как «демонстрировать»> Я хочу иметь аккуратное профилирование памяти для исполняемого файла thios. Я прошел через инструмент массива Вальгринда и обнаружил, что он может принести мне результаты, которые я ищу. Хотя есть небольшие проблемы, с которыми я сталкиваюсь.
Мой исполняемый файл принимает различные аргументы и без него не работает, например ./demonstrate -t 10 -p 1 -P 3
Как только я запускаю массив на приведенном выше утверждении, он говорит мне
«Ошибка выделения кучи»
taskset -c 0-10 valgrind --tool=massif ./demonstrate -t 10 -p 1 -P 3
==4140== Massif, a heap profiler
==4140== Copyright (C) 2003-2010, and GNU GPL'd, by Nicholas Nethercote
==4140== Using Valgrind-3.6.0 and LibVEX; rerun with -h for copyright info
==4140== Command: ./demonstrate -t 10
==4140==
Error allocating heap
==4140==
Совершенно похожая проблема произошла с mtrace. Включил заголовок mcheck и вызвал mtrace и muntrace в начале и конце и попытался вызвать демонстрацию
например
mtrace ./demonstrate -t 10 -p 1 -P 3 -f file.txt mALLOCoUT.TXT
Wrong number of arguments, run /usr/bin/mtrace --help for help. at /usr/bin/mtrace line 89.
Хотя, когда я запускаю приложение без опции valgrind, приложение работает нормально:
./demonstrate -t 10 -p 1 -P 3
Opened 1
Opened 2
Opened 3
Allocated huge page size=1073741824
Pushed 262144 pages
Любое предложение о том, как заставить все это работать с несколькими аргументами командной строки.
Задача ещё не решена.
Других решений пока нет …