Lysa»Blog

Quiet, Yet Not So Quiet

Slow and steady wins the race, as they say. Lysa progress has been chugging along at a steady pace as I try to keep up with a rigorous schedule of streaming every day (insert Rocky training montage here).

I've been implementing DWARF instructions over the last week(ish) and it's going pretty smoothly. However, like the genius that I am, I've decided to just implement most of them without testing them thoroughly. There are a couple reasons for this, but I expect Lysa to explode when I finally plug in the DWARF VM. It'll be great.

The exciting part about this VM nonsense is what it will do for Lysa. On Linux, executable files are encoded with ELF information that tells the OS how to run the file. When you add debug symbols, you get DWARF information which includes "location lists." These are what tell the debugger where to find important things in memory. Once we can evaluate DWARF expressions, we can evaluate location lists (lists of DWARF expressions) that tell us where to find the values of variables and other things in memory.

We're getting closer and closer to a sort of watchlist function where we can keep an eye on memory and do some neat little tricks.

So, keep showing up for streams, keep your eyes on the project, and keep being excited because Lysa is coming!

P.S. It has been insanely cool hanging out with people on stream while I work. There are even a few regulars who show up to almost every stream. All of you folks are fantastic! See you on Twitch, o7
Matt Mascarenhas,
Captain, do you have a regular time for your streams? We could add it to insobot's schedule from #random (while he can't enter the work room!).
Mārtiņš Možeiko, Edited by Mārtiņš Možeiko on
On Linux, executable files are encoded with DWARF information that tells the OS how to run the file.

This is not very accurate:
1) DWARF is used in other OS than Linux. Darwin also uses DWARF. gcc/clang on Windows also uses DWARF.
2) OS doesn't care about DWARF much. It's the debugger that cares. DWARF is something like a protocol between compiler and debugger (or some profiler/analyzer-thingy tools). Not OS. That's why you can use DWARF when compiling with gcc and debugging with gdb even on Windows!
Jeremiah Goerdt,
Miblo
Captain, do you have a regular time for your streams? We could add it to insobot's schedule from #random (while he can't enter the work room!).


No set schedule yet.
Jeremiah Goerdt,
mmozeiko
On Linux, executable files are encoded with DWARF information that tells the OS how to run the file.

This is not very accurate:
1) DWARF is used in other OS than Linux. Darwin also uses DWARF. gcc/clang on Windows also uses DWARF.
2) OS doesn't care about DWARF much. It's the debugger that cares. DWARF is something like a protocol between compiler and debugger (or some profiler/analyzer-thingy tools). Not OS. That's why you can use DWARF when compiling with gcc and debugging with gdb even on Windows!


You're definitely right. I got stuck in the DWARF mindset and meant to say ELF. I'll make some edits to be more clear.

Thanks