Kodsnack 502 - Rakt in i returregistret
Kodsnack - Podcast tekijän mukaan Kristoffer, Fredrik, Tobias - Tiistaisin
Fredrik 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å [email protected] 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