2 पॉइंट द्वारा GN⁺ 2023-11-12 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Spray C code के लिए एक छोटा debugger है, जिसका लक्ष्य features को सरल और समझने में आसान रखना है ताकि चल रहे program को control किया जा सके और उसकी state की जांच व संशोधन किया जा सके
  • समर्थित features में function, file line, और address-आधारित breakpoints, variable, address memory और register को print व set करना, C syntax highlighting, backtrace, instruction/function/line स्तर stepping, और command output format filters शामिल हैं
  • REPL commands print/set, break/delete, continue, next, step, leave, inst, backtrace के जरिए execution control और values को read/write किया जाता है
  • print और set के बाद pipe(|) के साथ filters लगाए जा सकते हैं, और dec, hex, addr, bits, bytes, deref/* की मदद से एक ही 64-bit value को अलग-अलग formats में दिखाया जा सकता है या address dereference किया जा सकता है
  • Build के लिए CHICKEN Scheme और libdwarf की जरूरत होती है, और submodules सहित clone करने के बाद make चलाने पर build directory में spray binary बनती है
  • Debugging target binary को -g flag के साथ compile करना होगा ताकि debug information शामिल हो, और बेहतर output के लिए optimization बंद रखना सबसे अच्छा है
  • Spray को सिर्फ Clang के साथ test किया गया है, और क्योंकि हर compiler एक ही code के लिए debug information अलग तरह से बनाता है, इसलिए जिस program को Spray से debug करना है उसे clang से compile करना चाहिए
  • Roadmap में complex struct print/modify, complex struct syntax highlighting, frame pointer की जगह DWARF-आधारित backtrace, inline functions, external library loading, और debugged program को भेजे गए signals को capture करना अभी बाकी है

1 टिप्पणियां

 
GN⁺ 2023-11-12
Hacker News की राय
  • खास तौर पर यह साफ-सुथरा, सुसंगत और अच्छी तरह modularized है, और ऐसी समस्या से निपटता है जिसके लिए binary formats और kernel API की काफी गहरी समझ चाहिए
    कई “senior” programmers भी ऐसी चीज़ को concept level पर भी बनाना मुश्किल समझेंगे; यह “आजकल के बच्चे…” वाली सोच का बिल्कुल उल्टा है
    जिज्ञासा है कि 17 साल का कोई इस स्तर का ज्ञान कैसे हासिल करता है। किताबें, peers, programming club, programmer parents जैसी चीज़ें?

    • मैं इससे भी कम उम्र में कुछ ऐसी ही स्थिति में था, और उस दौर में internet नहीं था या सीमित था, इसलिए जवाब दे सकता हूँ
      शुद्ध जिज्ञासा, ज़रूरी hardware तक “बस access होना” जैसी बड़ी शर्त, और थोड़ी-सी किताबों व magazines से भी आप काफी दूर तक जा सकते हैं
      मेरे parents programmers नहीं थे, लेकिन मेरे पिता ने 1984 में जल्दी ही computer खरीद लिया था, और बाद में अपनी job के जरिए TurboPascal, C++ जैसे compilers घर ले आए ताकि मैं experiment कर सकूँ
      मैंने मुख्यतः magazines और books से सीखा, बाद में demo-making वाले कुछ peers से थोड़ा interaction हुआ, और documentation वाली disks (https://fr.wikipedia.org/wiki/DP_Tool_Club) डाक से खरीदीं। उदाहरण के लिए https://en.wikipedia.org/wiki/Ralf_Brown%27s_Interrupt_List जैसी सामग्री थी
      छोटी-छोटी चीज़ें बनाते हुए धीरे-धीरे iterate किया; CGA के लिए windowing toolkit, Tetris clone, Bomberman clone, FFT software से होते हुए, आखिरकार FPU के बिना सिर्फ software से Phong rendering जैसी real-time 3D rendering तक बना ली (https://github.com/thbar/demomaking#obez-1995)
      demo-making दुनिया में वही काम कर रहे दूसरे teenagers संयोग से मिले, इसलिए मैं कोई पूरी तरह अलग-थलग खास मामला नहीं था
      आज कोई जिज्ञासु बच्चा, अगर उसकी curiosity को ठीक से प्रोत्साहन मिले, तो शायद बहुत आगे जा सकता है
    • मुख्यतः books और blogs की वजह से। मुझे बहुत पढ़ना पसंद है
      और आपका अंदाज़ा सही है, मेरे पिता computer scientist हैं
    • repository में एक शानदार blog series link की गई है, जो step-by-step guide करती है
    • क्योंकि software engineering manager, जिसने बहुत समय से शायद कोई उपयोगी code नहीं लिखा हो, engineers को यह नहीं बता रहा होता कि क्या करना है
    • Half-Life game modding को Metamod से बदल देने वाले 15 साल के बच्चे की याद आती है
      कुछ बच्चे सचमुच कमाल के होते हैं। मैं उस उम्र में C++ सीखते-सीखते frustrate होकर रो पड़ा था
  • शानदार। काश बचपन में मुझमें भी इतना dedication होता
    Google Summer of Code, KDE Season of Code, Linux Foundation LFX, X.org EVoC जैसे programs में हिस्सा लेने की सलाह दूँगा
    हल करने लायक कई interesting problems हैं। काश student रहते मुझे इनके बारे में पता होता; अब full-time job है, इसलिए open source में contribute करने का समय नहीं है
    आगे भी अच्छा करते रहो

    • इन projects के बारे में बताने के लिए धन्यवाद। मुझे इनमें से किसी के बारे में पता नहीं था
  • project पर पहली नज़र डाली तो यह अच्छी तरह organized लगा। बेहतरीन
    जानना चाहूँगा कि programming कितने समय से कर रहे हो और किस language से शुरू किया था। अपने से कई दशक बड़े developers में भी मैं ऐसे काफी लोगों को जानता हूँ जो अभी तक Makefile नहीं लिख पाते[1]
    source में inline emoji का इरादा क्या है, यह जानने की curiosity है। क्या आजकल के cool kids सब ऐसा करते हैं, या non-ASCII input के प्रति जागरूक रखने के लिए है?
    [1]: dynamically generated targets का उपयोग या समझ न पाने वाले तो और भी ज्यादा हैं

    • शुरुआत में मैंने Python और C++ सीखे। एक समय C++ से ऊब गया और C पर आ गया
      emoji कोई ऐसा मज़ाक था जो करीब एक हफ्ते तक चला। Rust side में emoji कहीं ज्यादा बार दिखते हैं। उन्हें हटाने की जरूरत नहीं समझी
      PID के आसपास bug emoji मुझे मजेदार लगते हैं। comments वाले शायद किसी दिन हट जाएँ। हालांकि अब तक editor issues नहीं आए, और Helix, Emacs, VSCode सभी ठीक चलते हैं
      सोच रहा हूँ कि अगर terminal colors बंद हों, तो REPL में standard output पर emoji print करना भी disable कर देना चाहिए या नहीं
  • बधाई, और projects के लिए शुभकामनाएँ
    compilers उन शुरुआती rabbit holes में से एक थे जिनसे मेरी computing में रुचि बनी
    जिन किताबों को मैंने बार-बार अंतहीन पढ़ा, उनमें से एक अब free में उपलब्ध है; debugging नहीं बल्कि compiler side की है, फिर भी reading list में डालने लायक हो सकती है
    “Compiler Design in C”
    https://holub.com/compiler/
    थोड़ी पुरानी किताब है, लेकिन interesting हो सकती है

    • link के लिए धन्यवाद। compiler books मैं हमेशा ढूँढता रहता हूँ, और कई बार मिलना मुश्किल होता है
      दुर्भाग्य से कई किताबें बहुत ivory-tower style की होती हैं
  • 17 साल की उम्र में इतना ज्ञान और परिपक्वता बहुत impressive है
    जिन topics से यह deal और experiment कर रहा है, वे undergraduate level पर अपेक्षित चीज़ें हैं, और उनमें भी यह project graduate course level के करीब है
    सम्मान, और सफल career की शुभकामनाएँ

    • मैं भी प्रभावित हूँ। सचमुच बेहतरीन early lead है
      कुछ साल बाद भी यह अभी young tech enthusiast ही होगा, और तब शायद और भी impressive projects कर पाएगा
      तब तक यह बात शायद उतनी मशहूर न रहे कि इस उम्र में यह कितना आगे था। 20s में शुरू करके भी smart लोग impressive काम करते हैं, और उसी उम्र पर ज्यादातर observers को वे peers जैसे दिखेंगे
      फिर भी यह early lead एक unfair advantage बन सकता है जिसे यह बनाए रख सकता है
      कई सालों या दशकों बाद यह किसी तरह के “secret weapon” जैसा सामने आ सकता है
  • young programmers का code पढ़ना मुझे पसंद है। काफी high-level knowledge तो है, लेकिन अभी कई सालों का experience नहीं है—ऐसे में वे पूरी चीज़ को कैसे design करते हैं, यह देखना interesting होता है
    author fast learner लगता है, और 6 महीने के काम के लिहाज से यह शानदार है

  • लगता है 17 साल के बच्चों को भी अभी पता है कि CD क्या होती है
    floppy disk save icon को अभी retire न भी किया जाए तो चलेगा :P

  • अच्छा है। याद है, जब मैं उस उम्र का था तो Turbo Pascal में actual drawing code के लिए hand-optimized assembly लगाकर 2D graphics library बनाई थी
    हालांकि वह internet खोजने से पहले की बात थी, इसलिए बनाना मजेदार था मगर वह कहीं इस्तेमाल न होने वाला personal project बनकर रह गया
    personal project को उस अगले level तक ले जाना बढ़िया है जहाँ दूसरे लोग उसे देख सकें और शायद खुद इस्तेमाल भी कर सकें। कुल मिलाकर बहुत organized है, comments अच्छे हैं, और README साफ है
    दुनिया के सामने publish करना डरावना हो सकता है, लेकिन याद रखना अच्छा होगा कि लोग जो कहते हैं, खासकर जब वह तुम्हारे बारे में हो, वह तुम्हारे काम जितना ही उनके अपने बारे में भी बताता है
    वैसे सच कहूँ तो मुझे इस project से ज्यादा Motes में interest है, इसलिए अब उसे try करने जा रहा हूँ :)

    • कुछ दिन पहले Motes इस्तेमाल करते हुए code में कुछ bugs मिले
      Emacs plugin में अजीब behavior हो सकता है। फिर भी scripts पिछले कुछ हफ्तों से मेरे लिए perfectly काम कर रही हैं
      उम्मीद है तुम्हें पसंद आएगा :D
  • शानदार
    आज रात code clone करके देखूँगा
    interests मिलते-जुलते हैं, इसलिए इस project में contribute करने की कोशिश करूँगा

    • सुनकर बहुत अच्छा लगा। code के बारे में कोई सवाल हो तो कभी भी संपर्क कर सकते हो
      ज्यादातर जगहों पर comments छोड़ रखे हैं, लेकिन पता नहीं वे सभी helpful होंगे या नहीं
  • debugger लिखना खास तौर पर tricky होता है, और यह काफी अच्छा है

    • धन्यवाद। कभी-कभी काफी मुश्किल रहा :D