Get the latest tech news

Demystifying Debuggers, Part 2: The Anatomy of a Running Program


On the concepts involved in a running program. What happens, exactly, when you double click an executable file, or launch it from the command line, and it begins to execute?

But—if we take a peek under the hood—a program is a high-level term which refers to many lower level mechanisms and concepts, and it isn’t obvious from the outset how they’re all arranged. Of course, multitasking operating systems also provide ways for these programs to communicate and interact (that is indeed the point), but at some level they must still exist independently, as different physical cartridges do. A loader executes when a program is initially launched, or when actively-executing code requests to dynamically load another image—for instance, via LoadLibrary(Windows) or dlopen(Linux).

Get the Android app

Or read this on Hacker News

Read more on:

Photo of Anatomy

Anatomy

Photo of debuggers

debuggers

Photo of running program

running program

Related news:

News photo

The anatomy of a scare: how do games frighten you?

News photo

Linux Optimization Patches Significantly Speed-Up Debuggers Using /proc/kcore

News photo

Anatomy of an internet argument