Kokeilin ensikerran Valgrindia.
Ajoin sillä tekemääni GTK -sovellusta. Käytän sovelluksessa Cairo-API:a ja sovellus pitää muistissa jatkuvasti muutamaa pixmappia.
Sovellus on myös yhteydessä tietokantaan (datatiedosto), josta tarvittaessa luetaan väliaikaisesti muistiin tarvittava tieto, parhaassa tapauksessa kokonaan. Muistinvaraus tapahtuu dynaamisesti ja vapautetaan heti kun tarvittava tieto on analysoitu ja käyttäjälle näkyvä tieto piirretty näytölle.
Eli sovelluksen muistinvaraus varioi paljon.
Anyway, lopettaessani sovelluksen ajon saan seuraavan tulosteen terminaaliin:
==1680== HEAP SUMMARY:
==1680== in use at exit: 1,154,151 bytes in 12,102 blocks
==1680== total heap usage: 82,708 allocs, 70,606 frees, 10,083,310 bytes allocated
==1680==
==1680== LEAK SUMMARY:
==1680== definitely lost: 4,648 bytes in 123 blocks
==1680== indirectly lost: 15,880 bytes in 791 blocks
==1680== possibly lost: 806,581 bytes in 6,441 blocks
==1680== still reachable: 327,042 bytes in 4,747 blocks
==1680== suppressed: 0 bytes in 0 blocks
==1680== Rerun with --leak-check=full to see details of leaked memory
==1680==
==1680== For counts of detected and suppressed errors, rerun with: -v
==1680== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 166 from 13)
Onko jotain PAHASTI vialla, osaatteko analysoida =)?
Voiko valgrindilla paikallistaa virheet, vuodot etc.?
Onko muita käyttökelpoisia työkaluja?
Valgrindia käytetään suoritettavaan sovellukseen... onko debuggereita, joilla voisi analysoida lähdekodia ja havaita muistinhallinnan puutteellista koodausta?
Kiitos etukäteen
Ajoin sillä tekemääni GTK -sovellusta. Käytän sovelluksessa Cairo-API:a ja sovellus pitää muistissa jatkuvasti muutamaa pixmappia.
Sovellus on myös yhteydessä tietokantaan (datatiedosto), josta tarvittaessa luetaan väliaikaisesti muistiin tarvittava tieto, parhaassa tapauksessa kokonaan. Muistinvaraus tapahtuu dynaamisesti ja vapautetaan heti kun tarvittava tieto on analysoitu ja käyttäjälle näkyvä tieto piirretty näytölle.
Eli sovelluksen muistinvaraus varioi paljon.
Anyway, lopettaessani sovelluksen ajon saan seuraavan tulosteen terminaaliin:
==1680== HEAP SUMMARY:
==1680== in use at exit: 1,154,151 bytes in 12,102 blocks
==1680== total heap usage: 82,708 allocs, 70,606 frees, 10,083,310 bytes allocated
==1680==
==1680== LEAK SUMMARY:
==1680== definitely lost: 4,648 bytes in 123 blocks
==1680== indirectly lost: 15,880 bytes in 791 blocks
==1680== possibly lost: 806,581 bytes in 6,441 blocks
==1680== still reachable: 327,042 bytes in 4,747 blocks
==1680== suppressed: 0 bytes in 0 blocks
==1680== Rerun with --leak-check=full to see details of leaked memory
==1680==
==1680== For counts of detected and suppressed errors, rerun with: -v
==1680== ERROR SUMMARY: 3 errors from 3 contexts (suppressed: 166 from 13)
Onko jotain PAHASTI vialla, osaatteko analysoida =)?
Voiko valgrindilla paikallistaa virheet, vuodot etc.?
Onko muita käyttökelpoisia työkaluja?
Valgrindia käytetään suoritettavaan sovellukseen... onko debuggereita, joilla voisi analysoida lähdekodia ja havaita muistinhallinnan puutteellista koodausta?
Kiitos etukäteen
Vastaukset 1
Vanhimmat
Enemmän infoa vuodoista saat ajamalla Valgrindiä komennolla
valgrind --tool=memcheck --leak-check=full ohjelma
En ole muuten tutustunut debuggaukseen. Kuulemma GDB:lvoi debugata ohjelmia.