Valgrind-kokeilu

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
1321
Äänestä

Muut lukivat myös

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.

Äänestä

Kommentoi aloitusta


C-koodari kirjoitti:

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

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu