Live data from Hacker News

Show HN: I spent 6 months building a C debugger as a 17-year-old

github.com

51–60 of 145 posts

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#51
post #47

Nice one, I remember writing a 2D graphics library in Turbo Pascal using embedded hand-optimised assembly for the actual drawing code when I was your age, but that was back before I discovered the internet so it ended up being something I'd enjoyed writing but never did anything with, so well done on taking the next step turning it from a personal project to one that other people can see and maybe use themselves - it…

Oh, I just noticed some bugs in the code while using Motes the other day. Expect some weirdness with the Emacs plugin. The scripts have been working flawlessly for me the past few weeks though. I hope you like them :D

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#52
post #45
post #33

Earlier quoted context omitted.

Thanks for pointing me to those projects! I didn't know about any of them.

We (Rizin and Cutter) usually participate in GSoC, so if we are accepted next year as an organization, you could apply. See our previous programs[1][2][3]. [1] http://rizin.re/gsoc/2023/ [2] https://rizin.re/posts/gsoc-2023-announcement/ [3] https://rizin.re/posts/gsoc-2023-dwarf/

Thanks the links : D

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#53

Earlier quoted context omitted.

I'm impressed too, this is an excellent head start. Years later as a still-young technology enthusiast it would be likely that even more impressive projects will be accomplished. By then it may be largely unknown how advanced this was at this young of an age. Simply because there will be other sharp minds that do impressive stuff but only got started in their 20's, and reaching the same age they would be considered b…

Why is the advantage of early learning and understanding “unfair”?

I read it in a “first to market” unfair advantage type of way, not ethically unfair. Of course, there are larger societal questions around access to early learning opportunities but I didn’t read into it that way.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#54
post #36

Looks especially clean, consistent and well-modularised, tackling a problem that requires non-trivial knowledge about binary formats and kernel APIs. Many "senior" programmers would struggle to build something like this even at a conceptual level. The antithesis of "kids these days" :-) Out of curiosity, how does a 17-year-old attain that level of knowledge? Books, peers, programming clubs, parents who are programmer…

It's mostly books and blogs: I like to read a lot. Also, your guess is correct, my dad is a computer scientist.

Reading books to increase your understanding puts you ahead of 90% of people who graduated from a CS program in the last 5-10 years from what I've seen. Several of my coworkers admitted to having never read a book on anything related to software engineering before and it shows.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#55

Looks especially clean, consistent and well-modularised, tackling a problem that requires non-trivial knowledge about binary formats and kernel APIs. Many "senior" programmers would struggle to build something like this even at a conceptual level. The antithesis of "kids these days" :-) Out of curiosity, how does a 17-year-old attain that level of knowledge? Books, peers, programming clubs, parents who are programmer…

Tangential: my gut feeling is that this is a very good use case for GPTs; I’m an experienced application developer and sysadmin, but wouldn’t even know where to start if I’d want to tackle this sort of topic. I’m pretty sure ChatGPT would point me in the right direction and allow me to tackle the first important steps.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#56
So, only self-hosted debugging on x86_64 Linux. A good start.

Now make it work for other common CPUs (aarch64, RISC-V).

Make it work for other OSes (FreeBSD has ptrace, for example).

Make sure it handles signal and thread trampolines, calls through the VDSO, and handwritten assembler that does not have function prologues. Handle C++ constructors and destructors of objects in static storage running before/after main().

Have it intercept signals. Have it follow the child or the parent after forking. Have it handle multiple threads.

Make it work with coredumps.

Make it work on core dumps from a foreign CPU architecture (big-endian PowerPC, for example).

Make it work with debug symbols in separate files from the executable.

Make it work with binaries compiled from languages other than C.

You're going to be busy for the next 20 years or so.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#57
post #56

So, only self-hosted debugging on x86_64 Linux. A good start. Now make it work for other common CPUs (aarch64, RISC-V). Make it work for other OSes (FreeBSD has ptrace, for example). Make sure it handles signal and thread trampolines, calls through the VDSO, and handwritten assembler that does not have function prologues. Handle C++ constructors and destructors of objects in static storage running before/after main()…

I just spent ~1.5 years of my life on various aspects of debuginfos and that even just for profiling where I only need line/column information. So I feel this comment through and through.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#58
post #56

So, only self-hosted debugging on x86_64 Linux. A good start. Now make it work for other common CPUs (aarch64, RISC-V). Make it work for other OSes (FreeBSD has ptrace, for example). Make sure it handles signal and thread trampolines, calls through the VDSO, and handwritten assembler that does not have function prologues. Handle C++ constructors and destructors of objects in static storage running before/after main()…

Yeah, I don't think so. It's x86_64 only, and C only too. Some points from your list make sense now, but most of it is simply not part of Spray's scope, and never has been ...

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#59
What others need to understand is that, unlike the older generation, kids today have grown up in the era of easily accessible computing. Someone who is 17 today was born in the year the original iPhone was introduced. Computing literacy is not only required, it is expected from a very young age. What might have been impressive to us 20-30 years ago is not really the same as it is now.

Cool project, but as other commenters have pointed out, the self-promotion of off-putting. Don't hold on to using your age as a qualifier to make you stand out in job applications or otherwise.

Re: Show HN: I spent 6 months building a C debugger as a 17-year-old

#60
post #58
post #56

So, only self-hosted debugging on x86_64 Linux. A good start. Now make it work for other common CPUs (aarch64, RISC-V). Make it work for other OSes (FreeBSD has ptrace, for example). Make sure it handles signal and thread trampolines, calls through the VDSO, and handwritten assembler that does not have function prologues. Handle C++ constructors and destructors of objects in static storage running before/after main()…

Yeah, I don't think so. It's x86_64 only, and C only too. Some points from your list make sense now, but most of it is simply not part of Spray's scope, and never has been ...

Not commenting on the debugger specifically, but: keep being curious & experimenting, it will go a long way :-) (I was in your shoes)
Post reply on HN