Tällaista mietin: On annettu joku ohjelma, vaikka less, lähdekoodeineen. Kun tuon ajaa, niin valgrind ilmoittaa:
valgrind less
==3536== Memcheck, a memory error detector
==3536== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==3536== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==3536== Command: less
==3536==
Missing filename ("less --help" for help)
==3536==
==3536== HEAP SUMMARY:
==3536== in use at exit: 17,749 bytes in 27 blocks
==3536== total heap usage: 89 allocs, 62 frees, 30,742 bytes allocated
==3536==
==3536== LEAK SUMMARY:
==3536== definitely lost: 0 bytes in 0 blocks
==3536== indirectly lost: 0 bytes in 0 blocks
==3536== possibly lost: 0 bytes in 0 blocks
==3536== still reachable: 17,749 bytes in 27 blocks
==3536== suppressed: 0 bytes in 0 blocks
==3536== Rerun with --leak-check=full to see details of leaked memory
==3536==
==3536== For counts of detected and suppressed errors, rerun with: -v
==3536== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Jos pomo sanoo, että nuo kaikki muistit pitää vapauttaa, niin millä ohjelmalla bugien paikka löytyy helpoimmin?
Mitä keinoja paikallistaa muistivuoto?
7
274
Vastaukset
- Lisäksi
Muistivuoto voi olla jossain ohjelman käyttämässä kirjastossa.
- bugimetsästys
Niin voi, mutta mitä keinoja tuollaisen etsimiseen on? Onko esimerkiksi työkalua, joka ilmoittaa funktion, jossa vuoto tapahtuu?
- Epäselvää
Ymmärtääkö pomosi jotain ohjelmien muistinhallinnasta?
- bugimetsästys
Mulla ei ole pomoa, mutta kuvittelin tilanteen, jollainen voi tulla vastaan ohjelmoijan uralla.
- Schemer
Katsoppa Valgrind ohjeet:
http://valgrind.org/docs/manual/quick-start.html#quick-start.interpret
Esimerkin lopussa kerrotaan että vapauttamaton/vuotanut muisti varattiin rivillä 5, filessä a.c. Se missä kohtaa koodia muistipointteri hukataan tai jätetään vapauttamatta pitää itse tutkia, eli pointteria voidaan kuljettaa ympäriu ohjelmaa, funktioista toiseen. - 88818181181881
No, tehdään kuppoon erittäin mikroskooppisen pieniä reikiä, niitä ei saa nähdä paljaalla silmällä. Sen jälkeen kuppo aseteaan yöksi jääkaappiin. Seuraavana päivänä kuppo otetaan esille, yritetään muistaa mihin ne reijät tehtiin, nämä reijät rinkuloidaan tussilla. Sitten kuppo teytetään vedellä ja katsotaan muistettiinko oikein missä kohdin ne reijät on? Jos vesi vuotaa tussilla merkitystä kohdata, löydettiin muistivuoto.
- diagnoosiehdotus
Saattaa olla sellainen vika, että joku rutiini varaa aina vain uudestaan muistia ja jättää palauttamatta sen muistin, lataa aina vain uudestaan, katso sellaisia rutiineja, mitkä varaavat muistia toistuvasti, ja joista on unohtunut vapauttaa se muisti kun sitä on käytetty.
Silloin se jää varaamaan muistia käyttämättömänä ja aina varautuu lisää, eli tsekkaat rutiinit joissa varataan muistia ja käydään toistuvasti.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 447706
Tulipalossa henkilövahinkoja, itsenäisyyspäivä alkoi huonosti, poliisi tiedottaa lisää
Savonlinna https://www.como.fi/uutiset/savonlinna-henkilovahinkoja-tulipalossa-poliisi-tiedottaa-lisaa/694307Oletko keskustellut kaivatustasi muiden
Kanssa lähiaikoina? Jos, onko keskustelu ollut positiivista tai negatiivista? Vaikuttaako keskustelut mielipiteeseesi ka593839Ennen ei ollut persuja ja työttömyyttä, lääkäriinkin pääsi
Ennen oli kaikilla töitä Kauppiaille kelpasi kun saivat voittoa Yritystukia ei ollut Lääkäriin pääsi kaikki haluklaat Nu623687- 973523
- 553153
Kyllä on Vasemmistoliitosta Koskelan johdolla tullut todellinen ääripuolue
se on niin tulipunainen kuin olla voi, ja selvästi haluaa jatkuvasti eripuraa, ja repiä kansaa kahtia. Siinä on jo vuod592965Antifasismi - mitä se on?
Se on äärivasemmistolaista anarkistista toimintaa joka käyttää fasisminvastaisuutta keppihevosena oikeuttaakseen toimint302538IL- KELA:n pääjohtaja, lääke- ja oikeustieteen tohtori Lasse Lehtonen sekavassa tilassa Brysselissä!
"Iltalehden tietojen mukaan Lehtosen käytös Brysselin lentokentällä on herättänyt huomiota, ja hänen olemuksensa on tulk2072130- 501640