Какие есть аналоги Pyrify, CodeGuard под Linux?
От: Костенко Андрей Викторович  
Дата: 04.08.04 07:48
Оценка:
Добрый день.

Люди, подскажите, пожалуйста, какие есть аналоги Pyrify, CodeGuard под Linux?
Чем можно отловить использование неинициализированных переменных, утечки памяти?

Как можно просчитать время выполнения ф-ций (аналог VTune)?
Re: Какие есть аналоги Pyrify, CodeGuard под Linux?
От: machinehead  
Дата: 04.08.04 08:01
Оценка:
Здравствуйте, Костенко Андрей Викторович, Вы писали:

КАВ>Добрый день.


КАВ>Люди, подскажите, пожалуйста, какие есть аналоги Pyrify, CodeGuard под Linux?

КАВ>Чем можно отловить использование неинициализированных переменных, утечки памяти?

Утечки памяти можно искать утилитой mtrace

1. включить в программу <mcheck.h>
2. задать имя файла трассы % export MALLOC_TRACE=memory.log
3. запустить программу
4. анализировать результат % mtrace my_prog $MALLOC_TRACE

КАВ>Как можно просчитать время выполнения ф-ций (аналог VTune)?


Профайлер gprof

для ее использования нужно установить флаг -pg компилятору

gcc -pg test1.o test2.o -o test

P.S. сам я этими утилитами не разу не пользовался
Re: Какие есть аналоги Pyrify, CodeGuard под Linux?
От: cFF  
Дата: 04.08.04 10:11
Оценка: 6 (1)
Здравствуйте, Костенко Андрей Викторович, Вы писали:

КАВ>Добрый день.


КАВ>Люди, подскажите, пожалуйста, какие есть аналоги Pyrify, CodeGuard под Linux?

КАВ>Чем можно отловить использование неинициализированных переменных, утечки памяти?

КАВ>Как можно просчитать время выполнения ф-ций (аналог VTune)?


посмотрите valgrind — решает все ваши вопросы, к нему есть масса модулей, вот особо полезный:
cachegrind — модуль для valgrind собственно профайлер.
Также обратите внимание на kcachegrind — kde frontend для cachegrind.

oprofile — низкоуровневый профайлер, работает на уровне ядра, собственно может быть собран как часть ядра, а так же как модуль. В ядре 2.6.х присутствует по умолчанию.

а вообще keywords: gprof, oprofile, valgrind
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.