← नवीनतम पेपर
💻 computer science

DebugHarness: Emulating Human Dynamic Debugging for Autonomous Program Repair

DebugHarness एक स्वायत्त LLM-संचालित एजेंट है जो केवल स्थैतिक कोड विश्लेषण (static code analysis) पर निर्भर रहने के बजाय—सक्रिय रूप से रनटाइम अवस्थाओं की जांच करने और परिकल्पनाओं को पुनरावृत्ति से मान्य करने—मानव गतिशील डिबगिंग प्रथाओं का अनुकरण करके जटिल मेमोरी सुरक्षा कमजोरियों के लिए स्वचालित प्रोग्राम रिपेयर में महत्वपूर्ण सुधार करता है।

मूल लेखक: Maolin Sun, Yibiao Yang, Xuanlin Liu, Yuming Zhou, Baowen Xu

प्रकाशित 2026-04-07
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Maolin Sun, Yibiao Yang, Xuanlin Liu, Yuming Zhou, Baowen Xu

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

यहाँ DebugHarness पेपर का सरल भाषा और रचनात्मक उपमाओं (analogies) के साथ विवरण दिया गया है।

बड़ी समस्या: "स्थिर" (Static) जासूस

कल्पना कीजिए कि आप एक जासूस हैं जो अपराध को सुलझाने की कोशिश कर रहे हैं, लेकिन आपको केवल अपराध स्थल की तस्वीरों को देखने की अनुमति है। आप देख सकते हैं कि शव कहाँ है (क्रैश), आप टूटी हुई खिड़की देख सकते हैं (एरर रिपोर्ट), और आप संदिग्ध की डायरी पढ़ सकते हैं (सोर्स कोड)।

हालाँकि, आपको कमरे में जाने, सबूतों को छूने या अपराध को वास्तविक समय (real-time) में होते हुए देखने से मनाही है।

आजकल के अधिकांश AI उपकरण (लार्ज लैंग्वेज मॉडल्स या LLMs) इसी तरह कंप्यूटर बग्स को ठीक करने की कोशिश करते हैं। वे कोड और एरर रिपोर्ट को देखते हैं, लेकिन वे यह नहीं देख पाते कि कंप्यूटर की मेमोरी के अंदर वास्तव में क्या हो रहा है। साधारण गलतियों के लिए, यह ठीक काम करता है। लेकिन गहरे, जटिल सुरक्षा छिद्रों (जैसे मेमोरी लीक या "use-after-free" त्रुटियों) के लिए, यह शहर के नक्शे को देखकर मर्डर मिस्ट्री सुलझाने जैसा है। आप उन महत्वपूर्ण सुरागों को खो देते हैं जो उस क्षण में घटित होते हैं।

समाधान: DebugHarness (द "लाइव" डिटेक्टिव)

नानजिंग यूनिवर्सिटी के शोधकर्ताओं ने एक नया AI एजेंट बनाया है जिसे DebugHarness कहा जाता है। केवल तस्वीरों को देखने के बजाय, DebugHarness एक 'हेज़मैट सूट' (hazmat suit) पहनता है, अपराध स्थल में प्रवेश करता है, और अपराध को वास्तविक समय में होते हुए देखता है।

DebugHarness को एक सुपर-इंटेलिजेंट मैकेनिक के रूप में सोचें जो न केवल कार का मैनुअल पढ़ता है; बल्कि वे वास्तव में इंजन से एक कंप्यूटर जोड़ते हैं, कार शुरू करते हैं, और इंजन चलते समय गेज (gauges) को देखते हैं।

यह कैसे काम करता है: 3-चरणीय जासूसी प्रक्रिया

1. "सिग्नेचर" सुराग (इनिशियलाइजेशन/आरंभिक चरण)

जब कोई बग पाया जाता है, तो वह आमतौर पर एक विशिष्ट "फिंगरप्रिंट" (जैसे कि एक विशिष्ट प्रकार की क्रैश रिपोर्ट) छोड़ देता है।

  • उपमा: कल्पना कीजिए कि जासूस को एक टूटी हुई खिड़की दिखती है। अनुमान लगाने के बजाय, वे तुरंत एक विशिष्ट "विंडो ब्रेकर हैंडबुक" निकालते हैं जो उन्हें बताती है कि उस विशेष प्रकार के टूटने के आधार पर उन्हें कौन से उपकरण उपयोग करने चाहिए और क्या देखना चाहिए।
  • पेपर में: DebugHasness एरर रिपोर्ट को पढ़ता है, बग के प्रकार की पहचान करता है (जैसे "Heap Buffer Overflow"), और AI को उस विशिष्ट प्रकार के अपराध की जांच करने के लिए निर्देशों का एक विशेष सेट ("प्रॉम्प्ट") देता है।

2. "टाइम-ट्रैवल" जांच (इंटरएक्टिव इंट्रोस्पेक्शन)

यही असली जादू है। AI केवल अनुमान नहीं लगाता; यह चलते हुए प्रोग्राम के साथ इंटरैक्ट करता है।

  • उपमा: कल्पना कीजिए कि जासूस अपराध स्थल पर "पॉज" (Pause) बटन दबा सकता है। वे संदिग्ध के हाथों को देख सकते हैं, देख सकते हैं कि वह क्या पकड़े हुए था, और फिर "रिवाइंड" (Rewind) दबाकर देख सकते हैं कि उसने उसे ठीक कब उठाया था।
  • पेपर में: DebugHarness विशेष उपकरणों (जैसे GDB, pwndbg, और rr) का उपयोग करता है ताकि:
    • प्रोग्राम को क्रैश होने से ठीक पहले रोक (Pause) सके।
    • कंप्यूटर की मेमोरी के अंदर देख सके कि वहां क्या डेटा है।
    • समय को पीछे ले जा सके (Reverse Execution) ताकि डेटा के दूषित होने के मूल स्रोत तक पहुँचा जा सके, भले ही वह कोड के किसी पूरी तरह से अलग हिस्से में हुआ हो।

3. "टेस्ट ड्राइव" लूप (वैलिडेशन/पुष्टि)

एक बार जब AI को लगता है कि उसने अपराधी को ढूंढ लिया है, तो वह केवल एक नोट नहीं लिखता; वह कार को ठीक करता है और उसे चलाने के लिए ले जाता है।

  • उपमा: मैकेनिक खराब हिस्से को बदल देता है, इंजन शुरू करता है, और कार चलाता है। यदि कार फिर से रुक जाती है, तो वे नए एरर को देखते हैं, जांच को पीछे ले जाते हैं, और एक अलग सुधार (fix) आजमाते हैं। वे यह तब तक करते रहते हैं जब तक कि कार पूरी तरह से चलने न लगे।
  • पेपर में: AI एक कोड पैच लिखता है, प्रोग्राम को कंपाइल करता है, और फिर से टेस्ट रन करता है। यदि यह विफल हो जाता है, तो AI नया एरर मैसेज प्राप्त करता है, उससे सीखता है, और फिर से प्रयास करता है। यह "क्लोज्ड लूप" AI को भ्रमित (hallucinating) होने से रोकता है।

यह बड़ी बात क्यों है? (परिणाम)

शोधकर्ताओं ने इसका परीक्षण SEC-bench पर किया, जो लोकप्रिय सॉफ्टवेयर (जैसे लिनक्स कर्नेल और इमेज प्रोसेसर) में पाए गए 200 वास्तविक दुनिया के खतरनाक सुरक्षा बग्स का एक डेटासेट है।

  • पुराना तरीका (Static AI): पिछले AI टूल इन बग्स में से केवल 57% से 67% को ही ठीक कर सके। वे इसलिए अटक गए क्योंकि वे कोड के "डायनेमिक" व्यवहार को नहीं देख सके।
  • DebugHarness का तरीका: "लाइव डिटेक्टिव" दृष्टिकोण का उपयोग करके, DebugHarness ने लगभग 90% बग्स को ठीक किया।

मुख्य निष्कर्ष (Takeaway)

DebugHarness यह सिद्ध करता है कि जटिल कंप्यूटर समस्याओं को हल करने के लिए, आप केवल एक स्मार्ट पाठक नहीं हो सकते; आपको एक सक्रिय खोजकर्ता होना चाहिए। AI को चलते हुए प्रोग्राम को "छूने", "देखने" और "पीछे ले जाने" की अनुमति देकर, हम इस अंतर को पाट देते हैं कि कोड क्या कहता है और कोड वास्तव में क्या करता है

यह रेसिपी पढ़ने और खाना बनाते समय सूप को चखने के बीच का अंतर है। DebugHarness सूप को चखता है, महसूस करता है कि यह बहुत नमकीन है, और परोसने से पहले रेसिपी को ठीक कर देता है।

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →