| ▲ | Ask HN: DDD was a great debugger – what would a modern equivalent look like? | ||||||||||||||||||||||||||||
| 22 points by manux81 10 hours ago | 21 comments | |||||||||||||||||||||||||||||
I’ve always thought that DDD was a surprisingly good debugger for its time. It made program execution feel visible: stacks, data, and control flow were all there at once. You could really “see” what the program was doing. At the same time, it’s clearly a product of a different era: – single-process – mostly synchronous code – no real notion of concurrency or async – dated UI and interaction model Today we debug very different systems: multithreaded code, async runtimes, long-running services, distributed components. Yet most debuggers still feel conceptually close to GDB + stepping, just wrapped in a nicer UI. I’m curious how others think about this: – what ideas from DDD (or similar old tools) are still valuable? – what would a “modern DDD” need to handle today’s software? – do you think interactive debugging is still the right abstraction at all? I’m asking mostly from a design perspective — I’ve been experimenting with some debugger ideas myself, but I’m much more interested in hearing how experienced engineers see this problem today. | |||||||||||||||||||||||||||||
| ▲ | TheRoque an hour ago | parent | next [-] | ||||||||||||||||||||||||||||
Maybe you can have a look at RadDbg [0], as I understand the project has been bought by Epic Games recently. The goal is to make a performant debugger, from what I understand its target audience is mostly game developers, but you can use it for other programs obviously. You can see a talk of the core developer and his vision here: https://www.youtube.com/watch?v=_9_bK_WjuYY Sadly it's windows only yet, but they have plans to port it to other platforms. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | uyar 27 minutes ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
My background is in teaching C programming at the university level and DDD was very helpful there, although not very comfortable to use. For years, I've looked for a replacement and finally found Seer and was very happy with it. https://github.com/epasveer/seer Interactive debugging is definitely useful when teaching but obviously teaching is a different context. But Seer is not an educational tool and I believe it will hold up in other cases as well. | |||||||||||||||||||||||||||||
| ▲ | martijnvds 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
printf("Got here, x=%u"\n", x); | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | Agingcoder 28 minutes ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Pernosco Blows everything else out of the water. https://pernos.co/ ( I’m not affiliated to them in any way, just a happy customer) | |||||||||||||||||||||||||||||
| ▲ | galkk an hour ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
I haven’t touched in a while, but Visual Studio’s (standalone, not code) debugger was very cool. Also rr is impressive in theory, although it never worked on codebases that I worked on. | |||||||||||||||||||||||||||||
| ▲ | apaprocki 43 minutes ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Check out Binary Ninja if you haven’t. Especially if you have large binaries! | |||||||||||||||||||||||||||||
| ▲ | chrsw 10 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Something like this maybe: Doesn't seem to meet all your desired features though. | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | anthk 22 minutes ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Radare and friends maybe. For sure it has some graph-like options as DDD had where you could graphically see everything. Most RE tools today will integrate a debugger (or talk to gdb). | |||||||||||||||||||||||||||||
| ▲ | markhahn an hour ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Linaro (need Allinea) DDT? | |||||||||||||||||||||||||||||
| ▲ | DeathArrow an hour ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
I am pretty happy with the debugger from Visual Studio. | |||||||||||||||||||||||||||||
| ▲ | buster 2 hours ago | parent | prev | next [-] | ||||||||||||||||||||||||||||
Domain driven design? | |||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||
| ▲ | superdisk an hour ago | parent | prev [-] | ||||||||||||||||||||||||||||
This is a legitimate question but this was clearly generated using an LLM. To add something constructive, this demo represents an amazing ideal of what debugging could be: https://www.youtube.com/watch?v=72y2EC5fkcE | |||||||||||||||||||||||||||||