Jún 27, 2009

Debuggerem

Když něco rozeberem, tak leda debuggerem.
Konzultate vy jste mi to zavařil,
ten systém není blbej,
jen trochu zpomalenej,
že jste se tenkrát aspoň málo nesnažil.

– softvérový folklór na motívy lyrickej balady

Bez debuggera ani ranu. Neznalosť používania debuggera spôsobuje nadužívanie metód ako logovanie a tracovanie. Takže v kóde máte každý druhý riadok nejaký printf alebo iný nezmysel. Keď takémuto vývojárovi niekto nareportuje problém, tak prvé čo spraví: prídá ďalší print. Nakoniec kód, ktorý počíta 10 gramov fazuliek, má 50 kilo. Pričom log komunikácie pri vložení 10 fazuliek do jamky má minimálne 1.5 MB.

Ako debugovať C++? Veľmi jednoducho. Napríklad pomocou Eclipse. Veľa ľudí zastaví to, že nevedia, ako debugger spustiť. Takže predpokladajme, že máme Eclipse s CDT pluginom. Ideme debugovať pocitadlo_fazuliek_enterprise.

  1. FileImportC/C++C/C++ Executable
  2. Select executable – sem napíšte cestu k binárke, browse borcom moc nefunguje – /home/georgik/geck/pocitadlo_fazuliek_enterprise – Next
  3. New project name – Pozor! Nahraďte medzery znakom _, pretože debugger sa vám nemusím pripojiť pokiaľ je v mene projektu medzera. Samozrejme borci tam defaultne šupnú názov: Debug pocitadlo… Tak ho zmente na Debug_pocitadlo_fazuliek_enterprise
  4. Launch Configuration – zvoľme: C/C++ Local Application – pokiaľ spúšťame aplikáciu, pre fajnšmekrov je k dispozícii možnosť Attach to local application, tekže sa pripojíte k bežiacej aplikácii a debugujuete tú.
  5. Name. To isté ako v bode tri,  odstránte medzeru.
  6. Nastavte dvojklikom na paneli vedľa zdrojového kódu break pointy.
  7. Debug

Eclipse sa prepne do debug perspektívy. To, čo je veľmi prínosné na Eclipse debuggeri, je možnosť prechádzania premenných formou stromu. Window – Show/View – Variables.

No a to je celé! Ušetríte tisíce hodín printfovania a iných nezmyselných ladiacich procedúr.

Ešte klávesové skratky:

  • F5 – step into – vstúpiť do aktuálne zobrazenej fcie
  • F6 – step over – prejsť na ďalší krok v rovnakej úrovni kódu
  • F7 – step return – zastaviť sa až pri opustení fcie o úroveň vyššie
  • F8 – pokračuj až kým nenarazíš na ďalší break point

Naviac Eclipse vám zastaví debuggovanie v prípade, že aplikácia obdrží signál.

Debugger podľa môjho názoru patrí k základnej gramotnosti developera.