- 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,backtraceuntuk mengendalikan eksekusi serta membaca dan menulis nilai - Setelah
printdanset, filter dapat ditambahkan dengan pipe (|), dan dengandec,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
makemaka binersprayakan dibuat di direktoribuild - Biner yang akan di-debug harus dikompilasi dengan flag
-gagar 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
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?
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
Dan tebakan Anda benar, ayah saya memang ilmuwan komputer
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
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
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
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
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 :)
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
Saya meninggalkan komentar di sebagian besar tempat, meski saya tidak yakin semuanya membantu
Debugger itu memang sangat sulit ditulis, dan ini cukup bagus