Cachegrind je nejen cache profiler, ale da se pouzit i jako normalni profiler, staci treba v KCachegrind prepnout na 'Cycle Estimation' (navic, tenhle profiler nema nektere z chybicek gprof-u, jako treba praktickou nepouzitelnost na cokoliv vetsiho nez hello world programy).
Tim ze allegro pouziva MMX a 3DNOW instrukce a ty valgrind nepodporuje, coz z nej cini pomerne malo pouzitelny nastroj. Ja osobne proto pouzivam electric fence, je to pomerne jednoduchy nastroj jez vyuziva vlastnosti chraneneho modu, kdy pristup k nealokovanym oblastem pameti okamzite vyvola GPE(za/pred alokovoanou oblasti pameti je vzdy non present stranka, pristup na ni samozerjme vyvola GPE). Bohuzel neni schopen detekovat leaky...
[carnogur@fialka carnogur]$ valgrind --tool=memcheck valgrind
==7863== Memcheck, a memory error detector for x86-linux.
==7863== Copyright (C) 2002-2004, and GNU GPL'd, by Julian Seward.
==7863== Using valgrind-2.1.1, a program supervision framework for x86-linux.
==7863== Copyright (C) 2000-2004, and GNU GPL'd, by Julian Seward.
==7863== For more details, rerun with: -v
==7863==
==7863== Conditional jump or move depends on uninitialised value(s)
==7863== at 0x8066B25: _IO_vfprintf (in /usr/bin/valgrind)
==7863==
==7863== Conditional jump or move depends on uninitialised value(s)
==7863== at 0x8066B79: _IO_vfprintf (in /usr/bin/valgrind)
Executable is mapped outside of range 0x80cf000-0x4fffe000
failed to load /usr/lib/valgrind/stage2: Cannot allocate memory
==7863==
==7863== ERROR SUMMARY: 6 errors from 2 contexts (suppressed: 0 from 0)
==7863== malloc/free: in use at exit: 0 bytes in 0 blocks.
==7863== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==7863== For a detailed leak analysis, rerun with: --leak-check=yes
==7863== For counts of detected errors, rerun with: -v
Valgrind je shell script, proto nedokaze zpracovat "sam sebe" jako argument :) (vyzaduje jenom spustitelne programy).
S prekladem nekterych terminu jsem mela obcas docela problemy, hlavne s tim, co muzu ponechat bez prekladu a nebude to v textu moc bit do oci, a co by se prelozit melo, aby tomu kazdy rozumel... Takze dekuji za pripominku, v dilu o cachegrind to budu brat na vedomi :).
-=ZV=-
Jaka je moznost pouziti na jinych platformach nez Linux? Jestli zadna, tak je to skoda, pokud si vzpominam tak napr.mpatrol jde pouzit jak na win32,linux, unix, tak snad i na nekterych mainframech. Jake je srovnani s jinymi podobnymi udelatky? Zda se mi, ze jich existuje (minimalne pod Linux) hromada...