Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как запустить valgrind  (Прочитано 6174 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Как запустить valgrind
« : 26 Мая 2014, 21:28:25 »
Здравствуйте.

Пишу сервер, обнаружил утечки памяти, на одном из форумов посоветовали использовать valgrind. Зашёл в Synaptic, valgrind уже был установлен, я дополнительно скачал valgrind-dbg. Теперь я никак не могу понять, как мне его запустить? Статей о том как им пользоваться полно, а как запустить они не описывают=( Подскажите пожалуйста кто с ним знаком.

Спасибо за внимание.
« Последнее редактирование: 26 Мая 2014, 21:35:02 от gunsoy »

PetrovSE

  • Гость
Re: Как запустить valgrind
« Ответ #1 : 26 Мая 2014, 21:34:38 »
Из командной строки:
valgrind ./ВАША_ПРОГРАММА АРГУМЕНТЫ_ВАШЕЙ_ПРОГРАММЫ

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Как запустить valgrind
« Ответ #2 : 26 Мая 2014, 21:42:49 »
Ввёл в терминал

valgrind —tool=memcheck Home/server/tcpserver44/bin/Debug/tcpserver44

Получил в ответ

valgrind: —tool=memcheck: command not found

Эту команду я скопировал от сюда http://cppstudio.com/post/4348/ (третье зелёное окошко)
Почему же не работает?
« Последнее редактирование: 26 Мая 2014, 21:44:20 от gunsoy »

PetrovSE

  • Гость
Re: Как запустить valgrind
« Ответ #3 : 26 Мая 2014, 21:47:13 »
Перед "tool" 2 минуса, а не один

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Как запустить valgrind
« Ответ #4 : 26 Мая 2014, 21:56:09 »
А теперь не находит файл

valgrind: Home/server/tcpserver44/bin/Debug/tcpserver44: No such file or directory

У меня небольшой опыт пользования терминалом, что не так в пути к файлу?

PetrovSE

  • Гость
Re: Как запустить valgrind
« Ответ #5 : 26 Мая 2014, 22:16:44 »
Надо прояснить где находится ваша программа:
1. Зайдите в папку где лежит файл "tcpserver44"
2. Запустите его: ./tcpserver44

Если подучилось, то допишите в начало все остальное:
valgrind --tool=memcheck ./tcpserver44

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Как запустить valgrind
« Ответ #6 : 27 Мая 2014, 17:05:52 »
Всем спасибо за помощь, запустился valgrind. Проверил клиентскую часть кода, так как на клиенте просто адские утечки памяти. Valgrind вывел мне информацию лишь файла отвечающего за авторизацию AuthorizationWindow.cpp

(Нажмите, чтобы показать/скрыть)

Как же мне теперь проверить другие части программы? Ведь для авторизации нужно отправить данные на сервер для перехода к другой части программы. Посоветуйте пожалуйста, что с этим можно сделать?

PetrovSE

  • Гость
Re: Как запустить valgrind
« Ответ #7 : 27 Мая 2014, 20:45:39 »
valgrind проверяет те части программы которые реально работали.
Т.е. что бы проверить нужные куски нужно заставить вашу программу их исполнить.
Как это сделать, кроме вас не скажет никто.

Оффлайн gunsoy

  • Автор темы
  • Участник
  • *
  • Сообщений: 178
    • Просмотр профиля
Re: Как запустить valgrind
« Ответ #8 : 24 Сентября 2015, 16:01:05 »
Прошло более года, не стал создавать новую тему. Теперь моя программа тормозит, поэтому нужно профилирование для поиска медленных мест. Долго копался в интернете в поисках команд профилирования для valgrind. Нашёл и использовал следующую для запуска программы SDL2_1

valgrind --tool=callgrind --dump-instr=yes --simulate-cache=yes --collect-jumps=yes server/SDL2_1/bin/Debug/SDL2_1

Должно было появиться окно с полями для авторизации, но программа почему-то завершилась.

http://ipic.su/img/img7/fs/valgrind.1443099374.png

Может команды не те я дал? Помогите пожалуйста разобраться с профайлером.

 

Страница сгенерирована за 0.072 секунд. Запросов: 25.