2 puan yazan GN⁺ 2023-11-12 | 1 yorum | WhatsApp'ta paylaş
  • Spray, C kodu için küçük bir hata ayıklayıcıdır; özellikleri basit ve anlaşılır tutarak çalışan programları kontrol etmeyi ve durumlarını inceleyip değiştirmeyi amaçlayan bir araçtır
  • Desteklenen özellikler arasında işlev, dosya satırı ve adres tabanlı breakpoint’ler; değişken, adres belleği ve register yazdırma ile ayarlama; C sözdizimi vurgulama; backtrace; komut, işlev ve satır düzeyinde adımlama; komut çıktısı biçim filtresi yer alır
  • REPL komutları print/set, break/delete, continue, next, step, leave, inst, backtrace olup yürütmeyi kontrol etme ve değer okuma-yazma işlemlerini gerçekleştirir
  • print ve set sonrasına pipe (|) ile filtre eklenebilir; dec, hex, addr, bits, bytes, deref/* ile aynı 64 bit değeri farklı biçimlerde göstermek veya adres dereference işlemi yapmak mümkündür
  • Derleme için CHICKEN Scheme ve libdwarf gerekir; submodule’ler dahil klonladıktan sonra make çalıştırılırsa build dizininde spray ikilisi oluşturulur
  • Hata ayıklanacak ikili dosya, hata ayıklama bilgisi içerecek şekilde -g bayrağıyla derlenmelidir; optimizasyonu kapatmak da en iyi çıktıyı almak için gereklidir
  • Spray yalnızca Clang ile test edilmiştir; her derleyici aynı kod için hata ayıklama bilgisini farklı ürettiğinden, Spray ile hata ayıklanacak program clang ile derlenmelidir
  • Yol haritasında bileşik struct yazdırma ve değiştirme, bileşik struct sözdizimi vurgulama, frame pointer yerine DWARF tabanlı backtrace, inline function’lar, harici kütüphane yükleme ve hata ayıklanan programa gönderilen sinyalleri yakalama bulunuyor

1 yorum

 
GN⁺ 2023-11-12
Hacker News yorumları
  • Özellikle temiz, tutarlı ve iyi modülerleştirilmiş; ayrıca ikili biçimler ve kernel API’leri hakkında epey derin bilgi gerektiren bir problemi ele alıyor
    Birçok “kıdemli” programcı bile böyle bir şeyi kavramsal düzeyde bile yapmakta zorlanırdı; “bugünün çocukları…” lafının tam tersi
    Merak ediyorum, 17 yaşındaki biri bu düzeyde bilgiyi nasıl ediniyor? Kitaplar, akranlar, programlama kulüpleri, programcı ebeveynler gibi şeyler mi?

    • Daha küçük yaşta benzer bir durumdaydım; internetin olmadığı ya da sınırlı olduğu dönemlerdi, o yüzden cevap verebilirim
      Saf merak, gerekli donanıma “öylece erişebilme” gibi büyük bir koşul ve biraz kitap ile dergiyle bile oldukça uzağa gidilebiliyor
      Ebeveynlerim programcı değildi ama babam 1984’te erkenden bir bilgisayar almıştı; daha sonra işi sayesinde TurboPascal, C++ gibi derleyicileri eve getirip denememe izin verdi
      Çoğunlukla dergi ve kitaplardan öğrendim; daha sonra demo yapımı tarafındaki yaşıtlarımla biraz etkileşimim oldu ve belgeler içeren diskleri (https://fr.wikipedia.org/wiki/DP_Tool_Club) posta yoluyla da satın aldım. Örneğin https://en.wikipedia.org/wiki/Ralf_Brown%27s_Interrupt_List gibi kaynaklardı
      Küçük şeyler yaparak aşamalı biçimde yineledim; CGA için pencereleme araç takımı, Tetris klonu, Bomberman klonu, FFT yazılımı derken sonunda FPU olmadan, yalnızca yazılımla Phong rendering gibi gerçek zamanlı 3D rendering bile yaptım (https://github.com/thbar/demomaking#obez-1995)
      Demo yapımı dünyasında aynı şeylerle uğraşan başka gençlerle tesadüfen tanıştım; yani tamamen izole, sıra dışı bir vaka değildim
      Bugün meraklı bir çocuğun, o merakı doğru teşvik edilirse çok daha ileri gidebileceğini düşünüyorum
    • Çoğunlukla kitaplar ve bloglar sayesinde. Çok okumayı seviyorum
      Ayrıca tahminin doğru; babam bilgisayar bilimci
    • Depoda adım adım yönlendiren harika bir blog serisi bağlantısı var
    • Çünkü uzun zamandır işe yarar kod yazmamış olma ihtimali yüksek yazılım mühendisliği yöneticileri, mühendislere ne yapacaklarını söylemiyor
    • Half-Life oyun modlamasını Metamod ile dönüştüren 15 yaşındaki çocuğu hatırlattı
      Bazı çocuklar gerçekten inanılmaz. Ben o yaşta C++ öğrenirken pes edip ağlamıştım
  • Harika. Keşke gençken bende de bu kadar adanmışlık olsaydı
    Google Summer of Code, KDE Season of Code, Linux Foundation LFX, X.org EVoC gibi programlara katılmanı öneririm
    Çözmeye değer pek çok ilginç problem var. Öğrenciyken bunları bilmiş olmayı isterdim; şimdi tam zamanlı çalıştığım için açık kaynağa katkı yapacak zamanım yok
    Böyle devam etmeni dilerim

    • Bu projelerden haberdar ettiğin için teşekkürler. Hiçbirini bilmiyordum
  • Projeye ilk kez göz attım; iyi düzenlenmiş görünüyor. Harika
    Ne kadar zamandır programlama yaptığını ve hangi dille başladığını merak ediyorum. Onlarca yıl daha yaşlı geliştiriciler arasında hâlâ Makefile kullanamayan epey kişi tanıyorum[1]
    Kaynaktaki satır içi emojilerin niyetini merak ettim. Bugünün havalı çocukları hep böyle mi yapıyor, yoksa ASCII olmayan girdilere dikkat çekmek için mi?
    [1]: Dinamik olarak üretilen hedefleri kullanamayan ya da anlayamayan daha da fazla kişi var

    • Başta Python ve C++ öğrendim. Bir noktada C++’tan bıkıp C’ye geçtim
      Emojiler yaklaşık bir hafta kadar yaptığım bir şaka gibiydi. Rust tarafında emojileri çok daha sık görüyorum sanırım. Özellikle silmedim
      PID çevresindeki böcek emojilerinin eğlenceli olduğunu düşünüyorum. Yorumların içindekiler bir gün kalkabilir. Yine de şu ana kadar editör sorunu yaşamadım; Helix, Emacs, VSCode hepsi düzgün çalışıyor
      Terminal renkleri kapalıysa REPL’de standart çıktıya emoji basmayı da birlikte devre dışı bırakmalı mıyım diye düşünüyorum
  • Tebrikler; projelerinde bol şans
    Derleyiciler, bilişime ilgi duymamı sağlayan ilk tavşan deliklerinden biriydi
    Defalarca, durmadan okuduğum kitaplardan biri artık ücretsiz yayımlanmış durumda; debugging değil derleyici tarafında olsa da okuma listene eklemeye değer olabilir
    “Compiler Design in C”
    https://holub.com/compiler/
    Biraz eski bir kitap ama ilginç olabilir

    • Bağlantı için teşekkürler. Her zaman derleyici kitabı arıyorum ama bulması çoğu zaman zor oluyor
      Ne yazık ki birçok kitap fazlasıyla fildişi kule tarzında olabiliyor
  • 17 yaşında bu düzeyde bilgi ve olgunluk gerçekten çok etkileyici
    Ele aldığı ve denediği konular lisans düzeyinde beklenen şeyler; bu proje ise onların içinde lisansüstü ders seviyesine yakın
    Saygılarımı sunar, başarılı bir kariyer dilerim

    • Ben de etkilendim. Gerçekten harika bir erken avantaj
      Birkaç yıl sonra hâlâ genç bir teknoloji meraklısı olacak; o zaman daha da etkileyici projeler yapma ihtimali yüksek
      O noktaya gelindiğinde bu yaşta ne kadar ileride olduğu pek bilinmeyebilir. 20’lerinde başlayıp etkileyici işler yapan zeki insanlar da var ve aynı yaşa geldiklerinde çoğu gözlemciye akran gibi görünecekler
      Yine de bu erken avantaj, sürdürebileceği haksız bir üstünlüğe dönüşebilir
      Yıllar ya da on yıllar sonra bir tür “gizli silah” gibi ortaya çıkabilir
  • Genç programcıların kodlarını okumayı seviyorum. Epey yüksek düzeyde bilgiye sahip olup henüz yılların deneyimi yokken bütünü nasıl tasarladıklarını görmek ilginç
    Yazar hızlı öğrenen biri gibi görünüyor ve 6 aylık çalışmanın sonucu olarak harika

  • Görünüşe göre 17 yaşındakiler hâlâ CD’nin ne olduğunu biliyor
    Disket kaydetme ikonunu henüz emekliye ayırmamıza gerek olmayabilir :P

  • Güzel. Ben o yaştayken Turbo Pascal’da gerçek çizim kodunu elle optimize edilmiş assembly ile araya ekleyerek bir 2D grafik kütüphanesi yaptığımı hatırlıyorum
    Ama bu interneti keşfetmeden önceydi; yapmak keyifliydi fakat hiçbir yerde kullanılmayan kişisel bir proje olarak kaldı
    Kişisel projeni başkalarının görebileceği ve belki doğrudan kullanabileceği bir şeye dönüştüren bir sonraki adıma geçmiş olman harika. Genel olarak çok düzenli, yorumları iyi yazılmış ve README’si de açık
    Dünyaya açmak ürkütücü olabilir; ama insanların söylediklerinin, özellikle de senin hakkındaysa, senin çalışman kadar onların kendileri hakkında da bir şey söylediğini hatırlamak iyi olur
    Ek olarak, aslında bu projeden çok Motes ile ilgileniyorum; şimdi denemeye çalışacağım :)

    • Birkaç gün önce Motes kullanırken kodda birkaç bug buldum
      Emacs eklentisinde garip davranışlar olabilir. Yine de script’ler son birkaç haftadır bende kusursuz çalıştı
      Umarım beğenirsin :D
  • Harika
    Bu gece kodu clone’layıp inceleyeceğim
    İlgi alanlarımız benzer olduğu için bu projeye katkıda bulunmaya çalışacağım

    • Kulağa gerçekten iyi geliyor. Kod hakkında soruların olursa istediğin zaman bana ulaşabilirsin
      Çoğu yere yorum bıraktım ama hepsinin yardımcı olup olmayacağını bilmiyorum
  • Debugger yazmak özellikle zordur; bu ise epey iyi

    • Teşekkürler. Bazen epey zahmetli oldu :D