Пропустить код в Qt Valgrind Function Profiler

В Qt вы можете интегрировать Valgrind проанализировать ваш код. Я использую Valgrind Function Profiler в анализировать режим и ударил Начните кнопка. Проблема в том, что у меня есть огромная последовательность запуска, которая меня не интересует.

Я нашел определения в Valgrind / callgrind.h это должно помочь мне:

  • CALLGRIND_START_INSTRUMENTATION
  • CALLGRIND_STOP_INSTRUMENTATION
  • CALLGRIND_DUMP_STATS

В соответствии с Эта статья Я должен выполнить Valgrind со следующими параметрами:

valgrind --tool=callgrind --instr-atstart=no ./application

Но как мне это сделать в Qt? Я все еще хочу использовать приятный графический интерфейс и навигацию.
Спасибо!

0

Решение

Предположим, у вас есть проект с «main.cpp» и подпапкой «build». Создайте текстовый файл с именем «my_valgrind.sh» рядом с «main.cpp» и поместите в него следующие строки:

#!/bin/bash
valgrind --instr-atstart=no $@ ./build/[...]

замените […] на имя вашего исполняемого файла. Qt предоставляет остальные аргументы через $ @
После этого сделайте файл sh доступным для запуска: щелкните правой кнопкой мыши на файле .sh file-> Properties-> Permissions-> Allow Execution as Program (или используйте решение командной строки)
Может быть, вам нужно изменить разрешения (chown [имя пользователя] my_valgrind.sh)

В Qtcreator вы идете в Инструменты-> Параметры-> Анализатор и заменяете исполняемый файл valgrind полным путем к файлу my_valgrind.sh.

Тогда это должно работать.

Важный:

  • Если вы измените имя сгенерированного исполняемого файла, вы должны изменить
    .sh файл.
  • Когда valgrind запускает вашу программу этим методом, она запускается не из папки сборки, а из папки, в которой находится файл .sh (на один уровень выше). Следовательно, вы должны переименовать относительные пути как «../data/» в «data /»
1

Другие решения

Вы можете попробовать этот подход, который я использовал один раз. Создать bash скрипт.

#!/bin/bash
valgrind --tool=callgrind --instr-atstart=no $@

сделать его исполняемым (chmod + x) и использовать его как исполняемый Qt Creator -> Tools -> Options -> Analyzer,

Просто стоит попробовать.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector