Подтвердить что ты не робот

Альтернатива консоли kcachegrind?

Скалы Kcachegrind и мои любимые инструменты, однако время от времени мне не хватает возможности запускать его в терминале (например, с помощью ssh) на удаленном сервере.

Я знаю, что можно настроить пересылку VNC или X-сервера, но это довольно неуклюжие, в то время как мне нужно что-то простое.

Есть ли альтернатива консоли kcachegrind (например, ncurses based)?

4b9b3361

Ответ 1

Вы можете получить основную информацию и аннотации из выходного файла callgrind (созданного valgrind --tool=callgrind) с помощью командной строки callgrind_annotate. (справочная страница раздел в документах). Для файлов, созданных cachegrind (valgrind --tool=cachegrind), вы можете использовать раздел cg_annotate (в документах). Эти утилиты строятся по умолчанию с помощью самого valgrind.

Другим способом является копирование выходных файлов программы и кеша /callgrind на ваш компьютер, а затем их анализ с локальным kcachegrind, как обычно. Но таким образом это может быть сложно, если у вашей машины нет unix, кроме окон, или вы работаете на несовместимой арке (kcachegrind может вызвать локальный objdump, чтобы получить информацию о программе).

Я также хочу рекомендовать параметры командной строки для valgrind:

 valgrind --tool=cachegrind --branch-sim=yes 
 valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes

Вы также можете указать размеры кеша для cachegrind с помощью --I1=32768,8,64 --D1=32768,8,64 --L2=3145728,12,64

Ответ 2

Используйте SSHFS для монтирования удаленного каталога, в котором вы работаете (см., например, Инструкции по установке SSHFS для Ubuntu).

Затем просто введите ssh и запустите valgrind --tool=callgrind с любыми параметрами, которые вы хотите в удаленном каталоге. Поскольку у вас есть этот каталог, смонтированный локально, так же легко открыть файлы данных с помощью KCacheGrind, как если бы вы отлаживали локально.

Ответ 3

webgrind - это веб-интерфейс, написанный на PHP, который анализирует вывод XDebug (который использует тот же формат, что и callgrind), поэтому он должен работать с выходом callgrind (хотя я еще не тестировал его).

Ответ 4

Запуск Valgrind/Callgrind на удаленном хосте представляется хорошим вариантом. Или вы можете распечатать вывод Valgrind или Callgrind на свой ПК и запустить KCachegrind на нем.

Если вы используете Emacs, вы можете запустить его на удаленном хосте и сделать, как показано здесь, что даст вам Emacs'ish интерфейс для инструмента valgrind.

Ответ 5

kcachegrind заявляет в своей помощи, что это интерфейс для cachegrind и callgrind.

cachegrind и callgrind являются частью последней версии (3.5) valgrind. Итак, загрузите valgrind из http://valgrind.org/downloads/current.html#current и создайте его. Запустите valgrind --help, он покажет вам, как использовать функциональность callgrind.

Для получения дополнительной информации мне нужно знать, что вы хотите сделать.