Kodsnack 502 - Rakt in i returregistret
2022-12-06 05:26Fredrik och Tobias snackar om hur språk som C++ omvandlas till maskinkod. Tobias går på djupet om hur man bär sig åt för att kunna felsöka kod när kompilatorn kan bestämma sig för att helt enkelt slänga bort stora delar av den. Det känns lite som ett under att man över huvud taget kan sätta brytpunkter i sin kod när man felsöker.
Som uppvärmning: Advent är här igen. Tobias portionerar ut Lego och funderar över varför han sällan deltar i Advent of code.
Avsnittet sponsras av Grebban - en e-handelsbyrå som söker fler utvecklare inom bland annat backend och fullstack. Söker du och får ett jobb och nämner Kodsnack i din ansökan så får du en sign-on-bonus på 20000 kronor. Surfa in på grebban.com/kodsnack för mer information och ansökan!
Ett stort tack till Cloudnet som sponsrar vår VPS!
Har du kommentarer, frågor eller tips? Vi är @kodsnack, @tobiashieta, @oferlund, och @bjoreman på Twitter, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas.
Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik.
Länkar
- Advent of code
- Kodsnacks Advent of code-repo - bidra med din kod!
- Dependabot
- Unga programmerares kodkalender
- Asdf - kalenderavsnitten syns inte (än?) på webbsidan, men de finns i poddflödet
- Lowering
- LLVM-IR
- Godbolt.org
- Första exemplet
- GCC:s olika intermediärrepresentationer
- DAG - Directed acyclic graph
- DWARF - Unix debugformat
- Codeview - Microsofts och Windows debugformat
- Andra exemplet
- Register
- Minnespekare
- Grebban - veckans sponsor söker utvecklare
- Laravel
- grebban.com/kodsnack - läs mer eller ansök
- Anvil
- Tredje exemplet
- Fjärde exemplet
- Inlining i C och C++
- Lambda i C++
- Femte exemplet - med lambda
- Const i C++
- Kodgranskningen i LLVM - sök på CodeViewDebug.cpp och hoppa några gånger för att komma till den faktiska koden
Titlar
- På det mest komplicerade sättet
- Ett lätt ämne
- Hur debugging faktiskt funkar
- Sänkning
- Det ultimata lågnivåspråket
- När vi sänker C-kod
- Högnivåassembler
- Tre lager av översättning
- Hur representeras det i assemblerlagret
- Med debuginformation och utan optimering
- Jag behöver inte deklarera en variabel
- Lägg till en variabel som är borta
- Rakt in i returregistret
- Då låtsas vi att det är en constant
- Konstant nog