How a data structure should behave, who owns which pointer, what conditions must be met, etc
Comparing what the code intended with the result observed by the runtime tool is
This is the fastest way to identify logical contradictions.
[Your Desktop (Host Machine)]
VS Code UI (The "Head")
│
│ talks to localhost (127.0.0.1) on Port 44693
▼
[Port Forwarding Bridge]
│
▼
[Inside Docker Container]
`vscode-server` (Headless Server / Node.js)
Reads files, runs bash, drives GCC / GDB / Valgrind
There are newer editors exploring the native route—such as Zed (written entirely in Rust)
—which achieve lower memory footprints and faster startup times.
But for an orchestration server handling basic text and process spawning,
Node.js stays well within the "millisecond" thresholds needed for human typing.
building the system that manages the raw heap bytes.
gcc -O0 -g -fsanitize=address,undefined -fno-omit-frame-pointer bug.c -o bug_san
│ │ │ │ │ │ │
│ │ │ │ │ │ └─ Output binary name
│ │ │ │ │ └─ Input source file
│ │ │ │ └─ Keep stack anchors (clean backtraces)
│ │ │ └─ Inject ASan & UBSan runtime checks
│ │ └─ Add source file/line debug symbols
│ └─ Disable optimization (keep code literal for debugging)
└─ The compiler (GNU Compiler Collection)
Every stack frame saves the address of the previous function's RBP right at the base of its own frame.
This creates an exact singly-linked list embedded directly in the stack.
Room 0x000000000000 ───┐
Room 0x000000000001 │ "The Zero Page"
... │ (Rooms 0 to 4095) (4KB block)
Room 0x000000000FFF ───┘ [LOCKED by the OS with a giant padlock]
------------------------------------------------------------------
Room 0x000000001000 ───┐
... │ Normal Usable Memory
Room 0x7FFFFFFFFFFF ───┘ (Your variables, strings, buffers)
An LLM is a model that predicts the next token. Just give good guidance from the start.
If you provide high-quality prompts and instructions from the start,
It works cleverly by detecting patterns in far smarter areas.