Taulukoiden debuggaaminen

Kyseessä on yksi, kaksi ja joskus kolmiulotteiset taulukot.
Staattisesti varattuina, esim double Alfa[100][3];, niiden debuggaaminen on helppoa GDB:llä joka on tullut sekä Qtn että Code::Blokin mukana.
Sitten kun tila varataan new operaattorilla niin minä ainakaan en saa taulukkojen sisältöä näkyviin debuggerissa.

Mitähän ratkaisukeinoja kannattaisi käyttää?
26464
Äänestä

Muut lukivat myös

Vastaukset 26

Vanhimmat

Visual Studio 2015

Äänestä
  • Entä VSCodeSetup-1.8.1 ?

    Äänestä

  • khgbkh kirjoitti:

    Entä VSCodeSetup-1.8.1 ?

    Kokeile niin selviää. On kuitenkin eri tuote kuin Visual Studio.

    Äänestä

  • khgbkh kirjoitti:

    Entä VSCodeSetup-1.8.1 ?

    Kokeilemalla selviää. On taustaltaan eri tuote kuin Visual Studio.

    Äänestä

  • Nyt puhutaankin eri kielestä.

    Äänestä

  • Erikielinen kirjoitti:

    Nyt puhutaankin eri kielestä.

    C-kieltä tuo on, jolle myös tämä palsta on tarkoitettu. Vai mitä oikein tarkoitat?

    Äänestä

  • mikäkieli kirjoitti:

    C-kieltä tuo on, jolle myös tämä palsta on tarkoitettu. Vai mitä oikein tarkoitat?

    Aloittaja käyttää C kieltä.

    Äänestä

  • "Itse varailen taulukoille tilaa yleensä dynaamisesti stdlibin malloc()-funktiolla. Muistaa vaan sitten vapauttaa muistin free():llä."

    Miten sitten pääset (helposti) näkemään mitä niissä taulukoissa on?

    Äänestä

  • khgbkh kirjoitti:

    "Itse varailen taulukoille tilaa yleensä dynaamisesti stdlibin malloc()-funktiolla. Muistaa vaan sitten vapauttaa muistin free():llä."

    Miten sitten pääset (helposti) näkemään mitä niissä taulukoissa on?

    Mitä jos vaikka koittaisi tulostaa stdout.

    Äänestä

  • m-kar kirjoitti:

    Mitä jos vaikka koittaisi tulostaa stdout.

    Mitä jos vaikka opiskelisit mitä debuggaus on.

    Äänestä

  • Naurussa.pitelemistä kirjoitti:

    Mitä jos vaikka opiskelisit mitä debuggaus on.

    Tiedän jo. Ja tulostamalla taulukot näkee miten ne muuttuu.

    Debuggaushan on sitä vian etsimistä ja korjaamista mutta sinulle nyt näyttää olevan tämä asia jotenkin vierasta.

    Äänestä

  • m-kar kirjoitti:

    Tiedän jo. Ja tulostamalla taulukot näkee miten ne muuttuu.

    Debuggaushan on sitä vian etsimistä ja korjaamista mutta sinulle nyt näyttää olevan tämä asia jotenkin vierasta.

    Sulla tuntuu olevan debuggauksen ymmärtämisessä runsaasti teknistä korjausvelkaa.

    Äänestä

  • Kyllähän niitä taulukoita voi tulostaa ja sizeofilla saa dimensioitakin selville, mutta on se vähän samanlaista kuin matkustaisi rautatietä pitkin kävellen. Onhan se mahdollista, mutta itse matkustan mieluummin junalla rautatietä pitkin.

    Äänestä

  • "Aloittaja käyttää C kieltä. "

    Aloittaja käyttää sekä Ctä että C aa, eikä näe että ne sinällään olisivat eri kieliä.

    Äänestä

  • khgbkh kirjoitti:

    "Aloittaja käyttää C kieltä. "

    Aloittaja käyttää sekä Ctä että C aa, eikä näe että ne sinällään olisivat eri kieliä.

    Aloittelija onkin aloittelija. No, siinähän oppii.
    Esim. tuo new operaattori on C kieltä, eikä kuulu C kieleen.

    Äänestä

Mitä on taulukkojen debuggaus?

Äänestä
  • GDB: (the GNU Debugger) on GNU-projektin virheenjäljitysohjelma (debuggeri). Sitä käytetään komentoriviltä ja alun opettelun jälkeen se on erittäin tehokas työkalu ohjelmistojen bugien etsimiseen.

    https://www.linux.fi/wiki/Gdb

    Linux Mint 18.1 Serena
    Xfce 64-bit

    Äänestä

  • GNU Debugger toimii myös integroituna graafiseen käyttöliittymään Integrated Development Environments (IDE) mm. Qt:ssä ja Code::Block:ssa.

    Taulukoihin tulee samalla tavalla virheitä kuin kaikkiin muihinkin muuttujiin silloin kun kuolevainen kirjoittaa koodia - muista en sitten tiedä. :-)

    Äänestä

Eikös debuggaus ole pelkkien bugien metsästystä.. eihän taulukossa (varsinkaan staattisessa) voi olla mitään bugeja. Vähän sama kuin etsisi bugia vaikkapa AND-operaattorista.

Äänestä
  • Älä kommentoi kun et asiasta mitään tiedä.

    Äänestä

  • Muuttujassa kuten taulukon alkiossa voi toki olla väärä arvo jolloin asiat menee päin honkia. Debugaus ei ole aina sitä että goto hyppää väärälle rivinumerolle.

    Äänestä

  • keps kirjoitti:

    Muuttujassa kuten taulukon alkiossa voi toki olla väärä arvo jolloin asiat menee päin honkia. Debugaus ei ole aina sitä että goto hyppää väärälle rivinumerolle.

    Koskaan ei saa mitään aikaiseksi, jos joka paikassa on mahdollisuus virheeseen. Pitää koodata kerralla oikein, eikä keskittää tarmoa omien virheidensä metsästykseen.

    Äänestä

  • Aina ei ole mahdollisuutta tehdä kerralla oikein, esimerkiksi jos kääntää jotain koodia toiselta kieleltä toiselle, että saa jonkin pulikan toimimaan, mahdollisuus virheeseen on isompi.

    Äänestä

  • huvuetd kirjoitti:

    Koskaan ei saa mitään aikaiseksi, jos joka paikassa on mahdollisuus virheeseen. Pitää koodata kerralla oikein, eikä keskittää tarmoa omien virheidensä metsästykseen.

    "Koskaan ei saa mitään aikaiseksi, jos joka paikassa on mahdollisuus virheeseen. Pitää koodata kerralla oikein, eikä keskittää tarmoa omien virheidensä metsästykseen."

    Toivottavasti olet sen verran nuori etkä ole missään oikeessa työssä. Auta armias yritystä, joka sut joskus palkkaa, jos palkkaa :)

    Äänestä

  • code_red kirjoitti:

    "Koskaan ei saa mitään aikaiseksi, jos joka paikassa on mahdollisuus virheeseen. Pitää koodata kerralla oikein, eikä keskittää tarmoa omien virheidensä metsästykseen."

    Toivottavasti olet sen verran nuori etkä ole missään oikeessa työssä. Auta armias yritystä, joka sut joskus palkkaa, jos palkkaa :)

    Ei palkkaa jos jotain asiasta ymmärtää. Mutta aina ei palkkaaminenkaan mee putkeen...

    Äänestä

Kommentoi aloitusta


khgbkh kirjoitti:

Kyseessä on yksi, kaksi ja joskus kolmiulotteiset taulukot.
Staattisesti varattuina, esim double Alfa[100][3];, niiden debuggaaminen on helppoa GDB:llä joka on tullut sekä Qtn että Code::Blokin mukana.
Sitten kun tila varataan new operaattorilla niin minä ainakaan en saa taulukkojen sisältöä näkyviin debuggerissa.

Mitähän ratkaisukeinoja kannattaisi käyttää?

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