<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Abhishek Jha</title>
    <description>The latest articles on DEV Community by Abhishek Jha (@abhishek_jha_db6eaa98a2af).</description>
    <link>https://dev.to/abhishek_jha_db6eaa98a2af</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4161282%2Ff788a69c-b99d-4416-9a47-01a1421e1296.png</url>
      <title>DEV Community: Abhishek Jha</title>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abhishek_jha_db6eaa98a2af"/>
    <language>en</language>
    <item>
      <title>DebugPal AI: An Offline-First Visual Socratic Pointer &amp; Memory Tutor Built for my Classmate</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 16:37:31 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/debugpal-ai-an-offline-first-visual-socratic-pointer-memory-tutor-built-for-my-classmate-282f</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/debugpal-ai-an-offline-first-visual-socratic-pointer-memory-tutor-built-for-my-classmate-282f</guid>
      <description>&lt;h1&gt;
  
  
  I Built an AI Debugging Tutor for My Friend Who Was Terrified of Segmentation Faults
&lt;/h1&gt;

&lt;p&gt;I didn't build DebugPal AI because I wanted to make another coding chatbot.&lt;/p&gt;

&lt;p&gt;I built it because my friend &lt;strong&gt;Rohan kept getting &lt;code&gt;Segmentation fault (core dumped)&lt;/code&gt; in our Data Structures lab—and every time an AI fixed his code, he understood the bug a little less.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So I built him something different.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;DebugPal AI&lt;/strong&gt; is a visual, Socratic C/C++ debugging tutor that helps students understand &lt;em&gt;why&lt;/em&gt; pointer and memory bugs happen instead of simply handing them corrected code.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live Demo:&lt;/strong&gt; &lt;a href="https://debug-pal.vercel.app/" rel="noopener noreferrer"&gt;https://debug-pal.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/ahanghosh77/debug-pal" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/debug-pal&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🧑‍💻 The Friend I Built It For
&lt;/h2&gt;

&lt;p&gt;Rohan is my classmate and lab partner.&lt;/p&gt;

&lt;p&gt;We're working through university Data Structures labs where we use &lt;strong&gt;C and C++&lt;/strong&gt;, including pointers, linked lists, dynamic memory allocation, and manual memory management.&lt;/p&gt;

&lt;p&gt;For someone coming from a higher-level language such as Python, the hardest part isn't always writing the algorithm.&lt;/p&gt;

&lt;p&gt;It's understanding what is actually happening in memory.&lt;/p&gt;

&lt;p&gt;Rohan's recurring enemy was:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Segmentation fault (core dumped)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The compiler would tell him that the program crashed.&lt;/p&gt;

&lt;p&gt;But it didn't give him the mental model he needed to understand &lt;strong&gt;why&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;And when he asked cloud AI tools for help, the usual experience was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Here's the corrected code."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The code worked.&lt;/p&gt;

&lt;p&gt;The understanding didn't.&lt;/p&gt;

&lt;p&gt;That was especially frustrating because our university exams aren't just about getting a program to run. We also have to explain the concepts on paper.&lt;/p&gt;

&lt;p&gt;So I wanted to build something that would make him &lt;strong&gt;think through the bug instead of simply copying the fix.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  🧠 Meet DebugPal AI
&lt;/h1&gt;

&lt;p&gt;DebugPal AI takes a C/C++ memory bug and turns it into a visual debugging lesson.&lt;/p&gt;

&lt;p&gt;Instead of:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Your program crashed.
Here is the corrected code.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the experience is closer to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;What does this pointer currently contain?

        ↓

Where is that address pointing?

        ↓

Is that memory actually valid?

        ↓

What invariant did your program violate?

        ↓

Now... how would you fix it?
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to create the &lt;strong&gt;"Ohhh, that's why!"&lt;/strong&gt; moment.&lt;/p&gt;




&lt;h1&gt;
  
  
  🥞 1. Visual Memory Map
&lt;/h1&gt;

&lt;p&gt;Pointers are difficult to understand when they're represented only as text.&lt;/p&gt;

&lt;p&gt;DebugPal visualizes the simulated memory state with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Call Stack frames&lt;/li&gt;
&lt;li&gt;Stack variables&lt;/li&gt;
&lt;li&gt;Heap allocations&lt;/li&gt;
&lt;li&gt;Hex-style memory addresses&lt;/li&gt;
&lt;li&gt;Pointer targets&lt;/li&gt;
&lt;li&gt;Invalid memory destinations&lt;/li&gt;
&lt;li&gt;Dangerous memory blocks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, instead of simply seeing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;the student can see the pointer chain and where the final arrow ends up.&lt;/p&gt;

&lt;p&gt;When the destination is invalid, DebugPal makes the crash point visually obvious.&lt;/p&gt;

&lt;p&gt;This is particularly useful for beginners who have learned the syntax of pointers but haven't yet developed a mental model of memory.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 2. It Teaches the Invariant Behind the Crash
&lt;/h1&gt;

&lt;p&gt;A segmentation fault is only the symptom.&lt;/p&gt;

&lt;p&gt;The more important question is:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What rule did my program violate?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;DebugPal tries to make that rule explicit.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;head
  ↓
node
  ↓
NULL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;and then:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of immediately revealing the corrected code, DebugPal asks the student to reason about the next pointer and whether the next dereference is valid.&lt;/p&gt;

&lt;p&gt;This turns debugging into a small reasoning exercise.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤔 3. Three Levels of Socratic Guidance
&lt;/h1&gt;

&lt;p&gt;DebugPal deliberately doesn't reveal everything immediately.&lt;/p&gt;

&lt;p&gt;The guidance is split into three levels:&lt;/p&gt;

&lt;h3&gt;
  
  
  Level 1 — Observation
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What does this pointer contain right now?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Level 2 — Invariant Check
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Is the memory address you're about to dereference guaranteed to contain a valid object?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Level 3 — Root Cause
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;What exact operation caused the invalid memory access?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Only after thinking through the first two stages does the student get the root-cause explanation.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Don't remove the student's debugging problem. Teach them how to debug it.&lt;/strong&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  💡 4. Everyday Mental Models
&lt;/h1&gt;

&lt;p&gt;Low-level memory concepts can feel extremely abstract.&lt;/p&gt;

&lt;p&gt;So DebugPal also explains them using everyday situations.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;h3&gt;
  
  
  Dangling pointer
&lt;/h3&gt;

&lt;p&gt;Imagine checking out of a hotel but continuing to use the room key.&lt;/p&gt;

&lt;p&gt;The key still exists.&lt;/p&gt;

&lt;p&gt;The room doesn't belong to you anymore.&lt;/p&gt;

&lt;p&gt;That's roughly the mental model of a dangling pointer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Memory leak
&lt;/h3&gt;

&lt;p&gt;Imagine borrowing books from a library and never returning them.&lt;/p&gt;

&lt;p&gt;You may still be able to use the books, but the library's available resources keep shrinking.&lt;/p&gt;

&lt;p&gt;That's the intuition behind a memory leak.&lt;/p&gt;

&lt;h3&gt;
  
  
  NULL dereference
&lt;/h3&gt;

&lt;p&gt;You're following an address to find a destination, but the address effectively says:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;There is nothing here.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then your program tries to use it anyway.&lt;/p&gt;




&lt;h1&gt;
  
  
  🛡️ 5. From Bug → Safe Code
&lt;/h1&gt;

&lt;p&gt;DebugPal also provides a defensive code view.&lt;/p&gt;

&lt;p&gt;Instead of only showing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;❌ This is wrong.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;it shows the vulnerable version and a safer version side by side, followed by a checklist of the programming rule involved.&lt;/p&gt;

&lt;p&gt;The objective is to connect:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;bug → memory state → violated invariant → defensive programming practice&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;rather than treating each compiler error as an isolated problem.&lt;/p&gt;




&lt;h1&gt;
  
  
  🤖 Why Open-Weight AI?
&lt;/h1&gt;

&lt;p&gt;This is the part of the project that mattered especially for this Hacktoberfest challenge.&lt;/p&gt;

&lt;p&gt;The challenge asks participants to build something with &lt;strong&gt;open-source/open-weight AI at its core&lt;/strong&gt;, including local inference with open-weight models.&lt;/p&gt;

&lt;p&gt;DebugPal is designed around that idea.&lt;/p&gt;

&lt;p&gt;For custom C/C++ code, the application can connect directly to a locally running &lt;strong&gt;Ollama&lt;/strong&gt; instance.&lt;/p&gt;

&lt;p&gt;The browser sends the code to the local Ollama API and asks the selected open-weight model to return a structured debugging analysis.&lt;/p&gt;

&lt;p&gt;The model is instructed to produce:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug classification&lt;/li&gt;
&lt;li&gt;Crash location&lt;/li&gt;
&lt;li&gt;Stack state&lt;/li&gt;
&lt;li&gt;Heap state&lt;/li&gt;
&lt;li&gt;Pointer relationships&lt;/li&gt;
&lt;li&gt;Execution timeline&lt;/li&gt;
&lt;li&gt;Three Socratic hints&lt;/li&gt;
&lt;li&gt;An everyday analogy&lt;/li&gt;
&lt;li&gt;Before/after defensive code&lt;/li&gt;
&lt;li&gt;A debugging checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The response is structured as JSON so the frontend can turn the model's reasoning into the visual debugging interface.&lt;/p&gt;

&lt;p&gt;The relevant implementation is in &lt;code&gt;app.js&lt;/code&gt;, where DebugPal calls the local Ollama &lt;code&gt;/api/generate&lt;/code&gt; endpoint and requests a fixed JSON schema.&lt;/p&gt;




&lt;h1&gt;
  
  
  📴 And What Happens Without AI?
&lt;/h1&gt;

&lt;p&gt;This was important because Rohan is a student.&lt;/p&gt;

&lt;p&gt;University Wi-Fi isn't always reliable.&lt;/p&gt;

&lt;p&gt;So DebugPal doesn't completely fall apart when Ollama isn't available.&lt;/p&gt;

&lt;p&gt;It has a built-in heuristic fallback that can still identify common patterns such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pointer dereferencing&lt;/li&gt;
&lt;li&gt;Missing &lt;code&gt;free()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Array-loop problems&lt;/li&gt;
&lt;li&gt;Common linked-list mistakes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The application therefore has two modes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;             C/C++ Code
                  │
                  ▼
        ┌──────────────────┐
        │  Local Ollama AI  │
        │ Open-weight model │
        └────────┬─────────┘
                 │
                 │ unavailable?
                 ▼
        ┌──────────────────┐
        │ Heuristic Engine │
        └────────┬─────────┘
                 │
                 ▼
       Visual Debugging Lesson
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That architecture means the student can still use the core learning experience without depending on a remote AI server.&lt;/p&gt;




&lt;h1&gt;
  
  
  🧪 Built-in Lab Traps
&lt;/h1&gt;

&lt;p&gt;I included four common problems that map closely to what students encounter while learning C/C++:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Linked List Segmentation Fault
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="n"&gt;head&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;next&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;without safely checking whether the required nodes exist.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Dangling Pointer
&lt;/h3&gt;

&lt;p&gt;Returning or using the address of memory whose lifetime has already ended.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Dynamic 2D Matrix Memory Leak
&lt;/h3&gt;

&lt;p&gt;Allocating dynamic memory without correctly freeing the allocated blocks.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Buffer Overflow
&lt;/h3&gt;

&lt;p&gt;An off-by-one loop accessing an array outside its valid bounds.&lt;/p&gt;

&lt;p&gt;Each preset is designed to demonstrate a different memory-safety concept.&lt;/p&gt;




&lt;h1&gt;
  
  
  👨‍🤝‍👨 What Happened When I Gave It to Rohan?
&lt;/h1&gt;

&lt;p&gt;This was the most important part of the project.&lt;/p&gt;

&lt;p&gt;I didn't just build the website and call it "built for a friend."&lt;/p&gt;

&lt;p&gt;I actually handed it to Rohan in our hostel study room while we were preparing for our Data Structures lab evaluation.&lt;/p&gt;

&lt;p&gt;He tried the linked-list segmentation fault example.&lt;/p&gt;

&lt;p&gt;His reaction was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"During our linked list assignment, I kept getting segfaults because I was chaining &lt;code&gt;head-&amp;gt;next-&amp;gt;next&lt;/code&gt; without verifying if the list had fewer than 3 nodes. Cloud AI just gave me the corrected code without explaining why my logic failed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then he saw the memory visualization:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"When DebugPal drew the Stack and Heap map and showed the arrow pointing into &lt;code&gt;0x00000000 [Unmapped Page 0]&lt;/code&gt;, it instantly clicked why the CPU crashed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And the part I cared about most:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The Socratic hints made me think about the loop condition instead of guessing."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;He has already bookmarked DebugPal on his laptop for our upcoming evaluations.&lt;/p&gt;

&lt;p&gt;That's probably the best validation I could have asked for.&lt;/p&gt;




&lt;h1&gt;
  
  
  🏗️ How I Built It
&lt;/h1&gt;

&lt;p&gt;The project is intentionally lightweight.&lt;/p&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;HTML5&lt;/li&gt;
&lt;li&gt;CSS3&lt;/li&gt;
&lt;li&gt;Vanilla JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No heavy framework or build pipeline is required.&lt;/p&gt;

&lt;p&gt;The repository can be opened directly in a browser.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI Layer
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Local Ollama inference&lt;/li&gt;
&lt;li&gt;Open-weight model support&lt;/li&gt;
&lt;li&gt;Structured JSON output&lt;/li&gt;
&lt;li&gt;Socratic prompt architecture&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Offline Fallback
&lt;/h3&gt;

&lt;p&gt;A built-in heuristic analysis engine handles common pointer/memory patterns when local AI isn't available.&lt;/p&gt;

&lt;h3&gt;
  
  
  Export
&lt;/h3&gt;

&lt;p&gt;DebugPal can generate a Markdown debugging report containing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Bug classification&lt;/li&gt;
&lt;li&gt;Pointer execution timeline&lt;/li&gt;
&lt;li&gt;Memory explanation&lt;/li&gt;
&lt;li&gt;Everyday analogy&lt;/li&gt;
&lt;li&gt;Safe code&lt;/li&gt;
&lt;li&gt;Debugging checklist&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That turns a debugging session into something the student can keep as study notes.&lt;/p&gt;




&lt;h1&gt;
  
  
  🔐 Why Local AI Makes Sense for This
&lt;/h1&gt;

&lt;p&gt;For this particular use case, local AI has some advantages.&lt;/p&gt;

&lt;h3&gt;
  
  
  Privacy
&lt;/h3&gt;

&lt;p&gt;Student code can stay on the student's machine instead of being sent to a third-party cloud service.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cost
&lt;/h3&gt;

&lt;p&gt;A student shouldn't need an expensive subscription just to understand a segmentation fault in a lab assignment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reliability
&lt;/h3&gt;

&lt;p&gt;The tool can be used even when internet connectivity is poor.&lt;/p&gt;

&lt;h3&gt;
  
  
  Control
&lt;/h3&gt;

&lt;p&gt;Because the model is open-weight and runs locally, students can experiment with different models and prompts instead of being locked into a single cloud provider.&lt;/p&gt;

&lt;p&gt;That's the part of open innovation I wanted to explore with this project.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎮 Try It Yourself
&lt;/h1&gt;

&lt;h3&gt;
  
  
  Live Demo
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://debug-pal.vercel.app/" rel="noopener noreferrer"&gt;https://debug-pal.vercel.app/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  GitHub
&lt;/h3&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/ahanghosh77/debug-pal" rel="noopener noreferrer"&gt;https://github.com/ahanghosh77/debug-pal&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The easiest way to try the application:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open the website.&lt;/li&gt;
&lt;li&gt;Select a bug preset.&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Inspect Memory &amp;amp; Debug&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Explore the memory layout.&lt;/li&gt;
&lt;li&gt;Reveal the three Socratic hints one at a time.&lt;/li&gt;
&lt;li&gt;Read the everyday analogy.&lt;/li&gt;
&lt;li&gt;Compare the vulnerable and defensive code.&lt;/li&gt;
&lt;li&gt;Export the debugging report if you want to keep it as notes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you have Ollama running locally, you can also configure the local model from the application's model settings and analyze custom C/C++ code.&lt;/p&gt;




&lt;h1&gt;
  
  
  🎯 Why I Think This Fits "Build for a Friend"
&lt;/h1&gt;

&lt;p&gt;The challenge wasn't just:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Build an AI application."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It was:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Build something for a real person.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Rohan had a very specific problem.&lt;/p&gt;

&lt;p&gt;He wasn't asking for another coding assistant.&lt;/p&gt;

&lt;p&gt;He needed someone—or something—that would sit beside him and explain:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;"Stop. Look at what your pointer is actually doing."&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's what I tried to build.&lt;/p&gt;

&lt;p&gt;DebugPal AI is basically a &lt;strong&gt;visual teaching assistant for the moment when your C program crashes at 1 AM and you have no idea why.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And if it helps Rohan walk into our next Data Structures lab a little less afraid of pointers, then the project has already done what I wanted it to do.&lt;/p&gt;




&lt;h2&gt;
  
  
  🚀 What's Next?
&lt;/h2&gt;

&lt;p&gt;There are several things I'd like to improve after the challenge:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More C/C++ memory bug patterns&lt;/li&gt;
&lt;li&gt;Better parsing of arbitrary C/C++ programs&lt;/li&gt;
&lt;li&gt;More accurate memory-layout simulation&lt;/li&gt;
&lt;li&gt;Step-by-step pointer execution&lt;/li&gt;
&lt;li&gt;More local model options&lt;/li&gt;
&lt;li&gt;Interactive linked-list and tree visualizations&lt;/li&gt;
&lt;li&gt;Sanitizer integration&lt;/li&gt;
&lt;li&gt;A small collection of university-style debugging exercises&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For now, though:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rohan has stopped being scared of &lt;code&gt;Segmentation fault&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;And that's a pretty good first version.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ Built With
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;HTML&lt;/code&gt; · &lt;code&gt;CSS&lt;/code&gt; · &lt;code&gt;JavaScript&lt;/code&gt; · &lt;code&gt;Ollama&lt;/code&gt; · &lt;code&gt;Open-weight AI&lt;/code&gt; · &lt;code&gt;C/C++ debugging concepts&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  📜 License
&lt;/h2&gt;

&lt;p&gt;MIT&lt;/p&gt;

&lt;p&gt;Built with ❤️ for Hacktoberfest 2026.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>Hi</title>
      <dc:creator>Abhishek Jha</dc:creator>
      <pubDate>Sun, 04 Oct 2026 09:17:16 +0000</pubDate>
      <link>https://dev.to/abhishek_jha_db6eaa98a2af/hi-41o0</link>
      <guid>https://dev.to/abhishek_jha_db6eaa98a2af/hi-41o0</guid>
      <description></description>
    </item>
  </channel>
</rss>
