Debugging liveblog

På ihærdig opfordring har jeg lovet at "live-blogge" fra vores "Debug-summit" idag.

Teknologisk bliver det lidt primitivt: Ingen javascript eller underlige plugins, bare refresh en gang imellem.

19:38

Jens har sendt mig en email at han hellere vil kaldes Jesper, det skal han naturligvis have lov til at mene :-)

Jeg opsummerer dagen i et nyt blogindlæg når jeg lige har samlet tankerne.

16:57

Som BSD kerne-udvikler er det lidt pinefuldt at se hvor lang tid det har taget Linux kernen at få nogle debugværktøjer. (Bemærk fraværet af ord som "smarte" i den sætning.)

Anyway, nu er det snart min tur til at præsentere de af mine slides der ikke allerede er blevet "brugt" af andre foredragsholdere.

16:33

Lars foredrag kan opsummers som "Bedre workflow, bedre program kvalitet, mindre debugging."

Svært at være uenig i.

Nu er det Jesper om Linux kerne debugging.

16:00

Det endte med at handle mest om Unit-tests.

Nu er det Lars der vil fortælle om "Quality Up Front"

15:34

Thomas taler om at undgå at debugge.

15:09

Q&A udvikler sig til en slags "kender du noget GDB trick til at ..."

Pause...

14:49

Sune giver en god basal introduktion til debugging under UNIX, core-dumps, debugger osv.

14:46

Så er det Sune der fortæller om "SIGSEGV - Hvad gør vi ?"

14:37

Der er ingen måde jeg kunne være nær så snarky over for Microsofts produkter som Kim er det. Her ser man helt klart fordelen af at være intimt kendt med værktøjernes insufficiens.

Taget i betragtning hvor meget arbejdstid der må være gået på at skrive disse dump-interpretation værktøjer, er deres tekniske finish skræmmende elendig: Kryptiske felter, overskrifter der ikke stå over deres data osv. osv.

"Værktøjet viser håndværkeren" sagde min oldemor og det er der noget om.

Her ser vi virkelig "den tabte generation" i arbejde.

(Og det er ikke Kim, jeg disser her, han har tydeligvis noget at have det i.)

14:30

Lidt ligesom TV-køkkenet i gamle dage: "Det kan vi ikke vente på, så jeg lavede et dump inden programmet begyndte..."

14:27

For mig ligner det her nærmest den måde man debugger en IBM mainframe på...

"Det der ulempen ved det her er at man må prøve sig frem..."

14:17

Fokus er på dumps.

(En slide med overskriften: "Hvordan tager man et dump ?" En USAner ville svare "down the corridor, second door on the left...")

14:08

Om syv minutter skal Kim fra Telenor skal tale om "Debugging .NET med WinDbg". Jeg skal prøve at holde mine snarky kommentarer på et rimeligt niveau.

13:45

Vi har klappet af svenskeren og nu er der kaffe&kage.

13:36

"Der findes store muligheder for at skrive ravioli-kode. Ikke spaghettikode, men raviolikode: Der er små objekter indeni"

13:31

OooooKaaayyy ... Debugging af JavaScript ... på svensk ?

Tilbud om fallback til engelsk, men ingen tør sige "ja tak" :-)

13:25

Svar til adskellige der ikke tør spørge: Ja, det er nok bare mig der er gammel...

13:16

Jeg må nok melde pas her... Jeg er ikke rigtig til Java eller for den sags skyld IDE'er.

Pointen fra tidligere om at lære at debugge på en platform man kan overskue og forstå rinder mig i hu: Jeg ville hade at skulle lære at debugge, samtidig med at jeg skulle lære at navigere rundt i 6-8 vinduer der hver viser deres ting/syn på hvad der formodentlig er det samme program.

13:01

PTO kan lyde rigtig meget som "Beklager Braadtgaard..." når han siger tiden er udløbet.

Flot presentation af Michael, alt for mange kender ikke Valgrind.

Jesper er på om Debugging i Eclipse...

12:58

Vi ser en meget, meget hurtig demo spurte mod enden, mens Kenneth gør klar til at rydde scenen...

12:48

En meget vigtig detalje: Dynamiske analysatorer checker kun med præcis de input data du giver, hvor statiske analysatorer (FlexeLint, Coverity osv.) kigger på alle de mulige inputs.

12:44

Valgrind kører programmet i en virtuel maskine, hvor man kan stikke kode ind og lave "sanity-check", f.eks ved kald til malloc/free og andre "interessante" steder.

Der findes nogle standard "pakker" af checks, men man kan også lave sine egne check.

Programmet kører "markant" langsommere under Valgrind.

(En meget produktiv Valgrind feature er check for multi-threading, hvor hver tråd får en instruktion på skift, det er ret godt til at finde scheduling-dependencies.)

12:42

Jeg forventer at Michael når til at tale om Valgrind inden længe, indtil videre er det entomologisk (http://da.wikipedia.org/wiki/Entomologi) overblik han holder på med...

12:37

Man kan godt mærke at PTO & Kenneth er garvede konference-domptører: Talerne sparkes af scenen næsten på sekundet, eller helt sikkert på minuttet.

12:35

Ulempen ved at tale sidst i et program som det her, er at man skal bruge en masse tid på at sige "Som vi hørte tidligere idag..."

Fra Peter til Michael om "Dynamiske analysatorer til C/C++"

12:24

Selv printf(3) er et farligt væktøj i hænderne på folk der ikke kan debugge.

12:20

Ikke tid til spørgsmål...

Nu Peter Makholm, om printf(3) som debug værktøj.

12:16

Problemet er ikke at få Flexelint til at komme med advarsler, problemet er at få den reduceret til noget brugbart.

12:01

Efter nogle gode sandwiches, er Ivan på banen med FlexeLint.

FlexeLint er et kommercielt produkt fra gimpel.com. Koster ca. $400 single-seat på Windows, $1k for alle andre, i obfuscated C-format.

11:30

"Vi giver vores studerende et rimeligt fundament..."

En del af nøglen er den "simple platform" som de kan forstå helt til bunds, det ville være helt anderledes på en komplex (JVM ?) platform.

... og så er der frokost i 30 minutter.

11:23

"Svært at skabe et miljø (i undervisningsmiljø), hvor det ligner noget rigtigt..."

11:20

Tre niveauer af debugging: "Unsystematic", "Systematic" & "Scientific". Underviser i forskel på "design defect", den "failure" der skaber og den "observable error" der ses.

11:17

Fra næste år: Også et kursus i "software engineering" om metoder og værktøj.

11:14

I Jylland laver de kerne-programmering (og elbiler: http://eng.au.dk/aktuelt/nyheder/vis/artikel/studerendes-bud-paa-fremtid...)

"For at debugge softwaren, skal man forstå hardwaren"

11:05

"Contr... Det hedder reguleringssystemer på jydsk."

11:02

Klaus Kolle, fra Århus Uni/Herning, om deres undervisning af dipl.ing. i debug.

11:00

Ingen mirakel-løsning, heller ikke for lederen.

10:57

Testimonial-video fra en af "system debugger folkene"

10:54

Når man samler de dygtigste folk til et "System Debug Team" og giver dem ansvaret for de svære fejl, løser de dem faktisk.

10:50

Nu handler det om hvordan ledelsen skal håndtere debugging, hvordan bryder man den onde cirkel ?

10:45

Bo slutter med at siger at han lærte at debugg via kerneprogrammering, for der var ikke noget alternativ, men ikke alle uddannelser indeholder kerneprogrammering.

Arne (Simcorp) & Rasmus (DTU) bemægtiger sig scenen.

10:40

Kommentar: Ud i verden, havner de rigtig svære debugging opgaver altid hos de samme hænder: Dem der kan.

10:34

Bo spørger os om debugging i virkeligheden bør være en anden uddannelse end programmering, en slags overbygning måske.

Debugging kræver erfaring og overblik og derfor passer det elendigt i en "begynder uddannelse."

10:30

Bo sammenligner debugging, som process, med hvorledes en læge behandler en patient: En iterativ process af indsamling af observationer og experimenter der skal skaffe flere data eller, ofte, via held, helbredelse.

Mener at nutidens stade svarer til middelalderens kloge koner, hexedoktorer osv. (Interessant vinkel: Dengang havde de "autoriserede" læger ofte meget større fejlrate end de "uautoriserede". Se også: Holbergs skuespil).

10:15

Bo er på scenen, hvor han prøver at få publikum til at afsværge en fremtidig karierre i programmerings-undervisning.

Tl;dr: Der er hverken tid, penge eller svære nok problemer til at man kan lære de studerende debugging.

Inden da præsenterede dagens sponsor: Danske Commodities (hip! hip! hurra!) deres firma og indikerede at jobansøgninger kan sendes til dem.

phk

Kommentarer (9)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Ivan Skytte Jørgensen

Klaus Kolles indlæg om hvordan de behandler debugging i EDE-uddannelsen var en positiv overraskelse for mig. For det første tager de debugning af embeddede systemer som en hovedaktivitet med et rimeligt teoretisk fundament. For det andet viste det sig at embeddede programmører hader embeddet debugging lige så meget som mig.

  • 0
  • 0
Ivan Skytte Jørgensen

SystemTap er circa det ækvivalente værktøj på Linux. Oracle frigav først Dtrace til Oracle Linux i december sidste år. Jeg har ikke checket hvilken licens de har frigivet den under.
Jesper Dangaard Brouer fortalte kort om SystemTap.

  • 0
  • 0
Log ind eller Opret konto for at kommentere