Spray

Dev tools

debugger

SHOW HN2023

Legend

Spray

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

github.com

#c debugger#debugger#ptrace#c development#linux debugging

393points
129comments
#84of 3,109 in 2023
Top 3%of 2023 by points

How HN took it

LovedMost comments that take a side are positive

21 positive, 17 neutral or asking, 2 mixed, 4 critical, out of 44 comments about the project. Thread score +0.41.

Execution: 8 for, 1 againstDesign: 0 for, 1 againstDocs: 1 for, 0 againstIdea: 1 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Clean, well-organised code and tidy structure

    From 3 comments
    • First glance through the project and it seem well organized. Kudos! How long have you been programming and what languages did you start off with? I know quite a few developers…
      koolba on HN
    • Looks especially clean, consistent and well-modularised, tackling a problem that requires non-trivial knowledge about binary formats and kernel APIs. Many "senior" programmers…
      bluetomcat on HN
    • I like reading young programmers' code: It's interesting to see how they design everything with a decently high level of knowledge, but not the years of experience. The author…
      HybridCurve on HN
  • Impressive for a 17-year-old

    From 2 comments
    • I want to only comment that your level of knowledge and maturity at the age of 17 is very impressive. The topics being investigated and exploited are expected at an undergraduate…
      smithza on HN
    • Well done. Achieving this at 17 is a rare feat even most supposed senior developers don't achieve and it ranks up there with writing an emulator. It was only in my late 20s I…
      SillyUsername on HN
  • Debuggers are hard to write, so this is good work

    From 1 comment
    • Debuggers are particularly tricky to write so this is quite good!
      gumby on HN

Objections

  • Mentioning the author's age is unnecessary self-promotion

    From 3 comments
    • Very well done, and I hope you build this out further, but please leave out the 'as a 17 yo'. I really don't think it's relevant and risks coming across as cloying - your work…
      jacknews on HN
    • I always found this a bit weird. Why do you want everybody to know how old you are? It's kind of like... hey, I did this impressive thing, please give me credit, but also, just…
      MuffinFlavored on HN
    • This is a highly unusual and complex thing for anyone to accomplish. Why not let the achievement stand for itself? Mentioning one's age screams insecurity (though to be fair,…
      _Algernon_ on HN
  • Debugger only supports self-hosted x86_64 Linux so far

    From 1 comment
    • 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…
      bregma on HN

Requests

  • Write a tutorial on building a debugger

    From 1 comment
    • Awesome! It might be boring for you, but accompanying that project with a "Let's write a debugger" tutorial would be very useful.
      zerr on HN
  • Support more CPUs and operating systems

    From 1 comment
    • 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…
      bregma on HN

Questions

  • How does a 17-year-old gain this level of knowledge?

    From 2 comments
    • Looks especially clean, consistent and well-modularised, tackling a problem that requires non-trivial knowledge about binary formats and kernel APIs. Many "senior" programmers…
      bluetomcat on HN
    • I'm impressed. What did your dad do to help you get interested in coding?
      sagarpatil on HN
  • Why are parts written in Scheme?

    From 1 comment
    • Cool job. Grats! >Parts of the Spray frontend are written in Scheme Why you decided it do it that way rather fully in C or fully in Scheme?
      forgotpwd16 on HN
  • Why spaces between function names and arguments?

    From 1 comment
    • Why do you put spaces between your function names and their arguments? I find it quite jarring, as someone who's spent a good 18 years reading C code :} ``` return…
      cyberpunk on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/38230325)