u/mttdin r/ReverseEngineering • Recommends
CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()”
189K subscribers • 101 videos on Hallway • Conference channel
- Recommended by 1 person: 1 in engineering communities.
- Presented by Matt Godbolt, creator of Compiler Explorer
- Linked in the descriptionCppCon/CppCon2018
Advanced. Deep dive for people who know the field.
207K views7 years ago1 recommendation
Systems programmingProgramming languagesCompilers and interpretersC++Operating systems
Matt Godbolt explains how the linker, loader, operating system, and C/C++ runtimes work together to set up and run a program's main function.
CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: github.com/CppCon/CppCon2018 — When you run your C++ code, have you ever considered how the linker, loader, operating system, C and C++ runtime all work so hard to get everything set up for you to start running your code in main()? In this Linux-focused talk, Matt will talk about how the linker stitches together your code and how that fits in with dynamic linking. He'll touch on debugging issues with the loader, and how ODR violations can manifest themselves. Then he'll take a look at what's going on behind the scenes to get the C runtime up, and then the C++ runtime, along with all the global object constructors - showing more reasons why you shouldn't be using them! By the end of the talk you should have an understanding of how a bundle of object files are brought together by the linker, along with the relevant runtimes, and then loaded and executed by the operating system. — Matt Godbolt, Coinbase Senior Software Engineer Matt Godbolt is the creator of the Compiler Explorer website. He is passionate about writing efficient code. He has previously worked at a trading firm, on mobile apps at Google, run his own C++ tools company and spent more than a decade making console games. When he's not hacking on Compiler Explorer, Matt enjoys writing emulators for old 8-bit computer hardware. — Videos Filmed & Edited by Bash Films: BashFilms.com Work at Hudson River Trading (HRT): tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: BashFilms.comWhy it's here
1 person recommends thisWhat people say. Recommended as an excellent explanation of how linkers, loaders, and runtimes prepare a program to run.
u/DeeBoFour20in r/C_Programming • Mentions
On “What Happens Before the Main Function is Called ?”
u/susmatthewin r/C_Programming • Mentions
u/ste_3d_venin r/C_Programming • Mentions
On “What does the 'main' function actually do?”
u/DeadLink404in r/C_Programming • Mentions
On “const char* memory leak?”
u/DeadLink404in r/C_Programming • Mentions
On “[deleted by user]”
u/Fine-Ad9168in r/C_Programming • Mentions
On “Why does this program run and terminate in segfault instead of catching it as a compile time error?”