Tutustuin vasta nyt debuggauksen (GDB) hienoon ja kiehtovaan maailmaan, ja yksi asia ihmetyttää: mitä tämä frames-invalid tarkoittaa? Nimi ainakin omasta mielestäni kuulostaa hyvin epäilyttävältä, mutta toisaalta en niitä jostain syystä saa häviämään.
Anteeksi lyhyt kysymys mutta hetken googletuksen jälkeen olin edelleen tyhjin käsin.
Mikä frames-invalid? Itse olen menestyksekkäästi käyttänyt GDB:tä vuosikaudet enkä muista mihinkään frames-invalidiin koskaan törmänneeni ainakaan niin, että olisi sellaisen paikka ja ulkonäkö jäänyt mieleen.
Olet kaiketi ensin kääntänyt ohjelmasi debug-infon kanssa (gcc koodi.c -g)? Laita esille vaikka muutama rivi siitä, mitä olet seuraavaksi tehnyt ja mitä on tapahtunut.
Käytän siis Dev-C++:n yhteydessä olevaa GDB:tä. Tarkkaa asian yhteyttä koodissa en tiedä, mutta...
GDB kirjoitti:
Starting program F:\C++\proju\main\main.exe
frames-invalid
...
starting
frames-invalid
...
Pisteiden kohdalla tulee lisää frames-invalid viestejä. Ensimmäisien pisteiden kohdalla olevien määrää en ole laskenut, mutta jälkimmäisiä tulee 9 (joka on sama kuin projektissani olevien "esineiden" määrä). Projektissani olevat esineet omaavat kukin SDL pinnan, mutta ei niissä omassa mielestäni ole mitään vikaa, eikä niitä ainakaan pitäisi käyttää väärin (muutenhan frames-invalid viestejä pitäisi tulla enemmän tai koko debuggerin pitäisi antaa Segmentation Faultia?), ja ne kaikki vapautetaan jossain tilanteessa.
Enimmäkseen haluaisin nyt tietää mitä tuo frames-invalid tarkoittaa, ja että onko sitä syytä saada pois näkyvistä.
Täsmägoogletus ja muutaman tuloksen vilkaisu johtivat GDB:n ohjeiden kohtaan Annotations. Tästä selviääkin, että tämän ylimääräisen tulosteen tarkoituksena on auttaa graafisten debuggaustyökalujen keskustelua GDB:n kanssa, ja siksi ne on varmaankin Dev-C++:n GDB:ssä asetettu oletuksena päälle. Ne saa mahdollisesti piilotettua parametrilla --annotate=0
. Voit tietenkin myös hankkia erillisen GDB:n tai kokeilla jotain graafista käyttöliittymää sille. Asian korjaaminen jollain tavalla on suotavaa, jotta debuggaaminen sujuu mukavammin. Toki voit käyttää GDB:tä noinkin, mutta se ei varmaankaan ole kovin hauskaa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.