2 poin oleh GN⁺ 2023-11-12 | 1 komentar | Bagikan ke WhatsApp
  • Spray adalah debugger kecil untuk kode C yang menjaga fungsinya tetap sederhana dan mudah dipahami, sebagai alat untuk mengendalikan program yang sedang berjalan serta memeriksa dan mengubah statusnya
  • Fitur yang didukung mencakup breakpoint berdasarkan fungsi, baris file, dan alamat; menampilkan serta mengatur variabel, memori alamat, dan register; penyorotan sintaks C; backtrace; stepping per instruksi, fungsi, dan baris; serta filter format keluaran perintah
  • Perintah REPL mencakup print/set, break/delete, continue, next, step, leave, inst, backtrace untuk mengendalikan eksekusi serta membaca dan menulis nilai
  • Setelah print dan set, filter dapat ditambahkan dengan pipe (|), dan dengan dec, hex, addr, bits, bytes, deref/*, nilai 64-bit yang sama dapat ditampilkan dalam format berbeda atau dilakukan dereferensi alamat
  • Untuk build, dibutuhkan CHICKEN Scheme dan libdwarf; setelah clone termasuk submodule, jalankan make maka biner spray akan dibuat di direktori build
  • Biner yang akan di-debug harus dikompilasi dengan flag -g agar menyertakan informasi debug, dan menonaktifkan optimasi diperlukan untuk mendapatkan keluaran terbaik
  • Spray hanya diuji dengan Clang, dan karena tiap compiler menghasilkan informasi debug untuk kode yang sama dengan cara berbeda, program yang akan di-debug dengan Spray harus dikompilasi menggunakan clang
  • Roadmap yang tersisa mencakup menampilkan dan mengubah struktur komposit, penyorotan sintaks untuk struktur komposit, backtrace berbasis DWARF alih-alih frame pointer, fungsi inline, pemuatan library eksternal, serta penangkapan sinyal yang dikirim ke program target debug

1 komentar

 
GN⁺ 2023-11-12
Komentar Hacker News
  • Sangat rapi dan konsisten, serta sangat termodularisasi, dan menangani masalah yang membutuhkan pengetahuan cukup mendalam tentang format biner dan API kernel
    Bahkan banyak programmer “senior” pun mungkin akan kesulitan membuat hal seperti ini, bahkan pada level konsep sekalipun, jadi ini benar-benar kebalikan dari “anak-anak zaman sekarang…”
    Penasaran, bagaimana anak 17 tahun bisa memperoleh tingkat pengetahuan seperti ini. Apakah dari buku, teman sebaya, klub pemrograman, atau orang tua yang programmer?

    • Saya berada dalam situasi yang mirip saat usia lebih muda, dan karena itu terjadi di masa ketika internet belum ada atau masih terbatas, saya rasa saya bisa menjawab
      Rasa ingin tahu murni dan syarat besar berupa “sekadar bisa mengakses” perangkat keras yang dibutuhkan, ditambah sedikit buku dan majalah, bisa membawa seseorang sangat jauh
      Orang tua saya bukan programmer, tetapi ayah saya membeli komputer lebih awal pada 1984, lalu belakangan membawa pulang compiler seperti TurboPascal dan C++ lewat pekerjaannya agar saya bisa bereksperimen
      Saya belajar terutama dari majalah dan buku, lalu belakangan sedikit bergaul dengan teman sebaya di dunia demomaking, dan juga membeli lewat pos disket berisi dokumentasi (https://fr.wikipedia.org/wiki/DP_Tool_Club). Misalnya materi seperti https://en.wikipedia.org/wiki/Ralf_Brown%27s_Interrupt_List
      Saya membuat hal-hal kecil secara bertahap dan berulang, mulai dari toolkit windowing untuk CGA, klon Tetris, klon Bomberman, software FFT, hingga akhirnya bisa membuat rendering 3D real-time seperti rendering Phong sepenuhnya dalam software tanpa FPU(https://github.com/thbar/demomaking#obez-1995)
      Saya kebetulan bertemu remaja lain di dunia demomaking yang juga melakukan hal serupa, jadi saya bukan kasus aneh yang sepenuhnya terisolasi
      Anak yang penasaran di masa kini sepertinya bisa melangkah jauh lebih jauh lagi, asalkan rasa ingin tahunya didorong dengan baik
    • Utamanya berkat buku dan blog. Saya suka banyak membaca
      Dan tebakan Anda benar, ayah saya memang ilmuwan komputer
    • Ada tautan ke seri blog yang sangat bagus di repositori, yang memandu langkah demi langkah
    • Karena manajer rekayasa perangkat lunak yang kemungkinan besar sudah lama tidak menulis kode yang berguna tidak menyuruh para engineer apa yang harus dilakukan
    • Mengingatkan saya pada anak 15 tahun yang merevolusi modding game Half-Life dengan Metamod
      Beberapa anak memang luar biasa. Pada usia itu saya frustrasi belajar C++ sampai menangis
  • Keren. Saya berharap dulu punya dedikasi sebesar ini saat masih muda
    Saya sarankan mencoba ikut program seperti Google Summer of Code, KDE Season of Code, Linux Foundation LFX, dan X.org EVoC
    Ada banyak masalah menarik yang layak dikerjakan. Andai saya tahu soal hal-hal seperti ini saat masih mahasiswa; sekarang saya kerja penuh waktu jadi tidak punya waktu untuk berkontribusi ke open source
    Semoga terus sukses

    • Terima kasih sudah memberi tahu tentang proyek-proyek ini. Saya belum tahu satu pun tentang semuanya
  • Saya baru melihat-lihat proyeknya sekilas, dan tampaknya tertata dengan baik. Hebat
    Penasaran sudah berapa lama Anda memrogram dan bahasa apa yang pertama dipakai. Saya kenal cukup banyak developer yang usianya puluhan tahun lebih tua tetapi masih belum bisa memakai Makefile[1]
    Saya juga penasaran apa maksud emoji inline di source-nya. Apakah ini memang hal yang dilakukan anak-anak keren zaman sekarang, atau untuk membuat orang sadar akan input non-ASCII?
    [1]: Lebih banyak lagi yang tidak bisa memakai atau memahami target yang dibuat secara dinamis

    • Awalnya saya belajar Python dan C++. Pada suatu titik saya bosan dengan C++ lalu pindah ke C
      Emoji itu cuma semacam lelucon yang saya lakukan sekitar seminggu. Sepertinya saya jauh lebih sering melihat emoji di dunia Rust. Saya tidak merasa perlu menghapusnya
      Saya rasa emoji serangga di sekitar PID itu lucu. Yang ada di komentar mungkin akan hilang suatu saat. Tapi sejauh ini belum ada masalah editor, dan Helix, Emacs, VSCode semuanya berjalan baik
      Saya juga sedang memikirkan apakah kalau warna terminal dimatikan, pencetakan emoji ke output standar di REPL juga perlu dinonaktifkan
  • Selamat, dan semoga sukses dengan proyek-proyekmu
    Compiler adalah salah satu lubang kelinci pertama yang membuat saya tertarik pada komputasi
    Salah satu buku yang dulu saya baca berulang-ulang tanpa bosan kini tersedia gratis; memang bukan tentang debugging melainkan compiler, tetapi mungkin layak dimasukkan ke daftar bacaan
    “Compiler Design in C”
    https://holub.com/compiler/
    Bukunya memang agak tua, tetapi mungkin menarik

    • Terima kasih untuk tautannya. Saya selalu mencari buku compiler, tetapi sering sulit didapat
      Sayangnya, banyak buku yang terlalu gaya menara gading
  • Sangat mengesankan melihat pengetahuan dan kedewasaan seperti ini pada usia 17 tahun
    Topik yang dibahas dan dieksplorasi adalah hal-hal yang biasa diharapkan di tingkat sarjana, dan bahkan di antara itu, proyek ini terasa lebih dekat ke level mata kuliah pascasarjana
    Saya angkat topi, dan berharap karier yang sukses untukmu

    • Saya juga terkesan. Ini benar-benar keunggulan awal yang luar biasa
      Beberapa tahun lagi dia masih akan menjadi penggemar teknologi yang muda, dan saat itu kemungkinan bisa menghasilkan proyek yang lebih mengesankan lagi
      Pada titik itu, mungkin tidak akan terlalu diketahui lagi seberapa jauhnya dia sudah unggul di usia ini. Ada orang-orang cerdas yang mulai di usia 20-an dan tetap melakukan hal-hal mengesankan, dan pada usia yang sama, bagi kebanyakan pengamat mereka akan tampak seperti rekan sejawat
      Meski begitu, keunggulan awal ini bisa menjadi keuntungan tidak adil yang terus bertahan
      Dalam beberapa tahun atau bahkan dekade, itu bisa muncul sebagai semacam “senjata rahasia”
  • Saya suka membaca kode dari programmer muda. Menarik melihat bagaimana mereka merancang keseluruhan saat sudah punya tingkat pengetahuan yang cukup tinggi tetapi belum punya pengalaman bertahun-tahun
    Penulisnya tampak seperti orang yang belajar dengan cepat, dan hasil kerja 6 bulan ini sangat bagus

  • Anak 17 tahun ternyata masih tahu apa itu CD
    Mungkin ikon simpan disket floppy belum perlu dipensiunkan :P

  • Bagus. Saat seumur itu saya ingat membuat library grafis 2D di Turbo Pascal, dengan menyisipkan assembly yang dioptimalkan dengan tangan untuk kode penggambaran yang sebenarnya
    Hanya saja itu sebelum saya mengenal internet, jadi meski membuatnya menyenangkan, akhirnya tetap hanya jadi proyek pribadi yang tidak dipakai di mana-mana
    Hebat bahwa Anda melangkah ke tahap berikutnya: mengembangkan proyek pribadi menjadi sesuatu yang bisa dilihat orang lain dan mungkin benar-benar dipakai langsung oleh mereka. Secara keseluruhan sangat rapi, komentarnya bagus, dan README-nya jelas
    Mempublikasikan sesuatu ke dunia bisa terasa menakutkan, tetapi semoga membantu untuk mengingat bahwa apa yang orang katakan, terutama saat itu tentang diri Anda, sering kali sama banyaknya menggambarkan diri mereka sendiri seperti halnya pekerjaan Anda
    Tambahan, sebenarnya saya lebih tertarik pada Motes, jadi saya akan mencobanya sekarang :)

    • Beberapa hari lalu saya memakai Motes dan menemukan beberapa bug di kodenya
      Mungkin ada perilaku aneh di plugin Emacs. Meski begitu, skrip-skripnya sudah bekerja sempurna untuk saya selama beberapa minggu terakhir
      Semoga Anda suka :D
  • Keren
    Malam ini saya akan clone kodenya dan melihat-lihat
    Karena minat saya mirip, saya ingin mencoba berkontribusi pada proyek ini

    • Kedengarannya sangat bagus. Kalau ada pertanyaan tentang kodenya, jangan ragu menghubungi saya kapan saja
      Saya meninggalkan komentar di sebagian besar tempat, meski saya tidak yakin semuanya membantu
  • Debugger itu memang sangat sulit ditulis, dan ini cukup bagus

    • Terima kasih. Kadang memang cukup menyiksa :D