<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>DDD on 办公AI智能小助手</title>
    <link>https://blog.qife122.com/tags/ddd/</link>
    <description>Recent content in DDD on 办公AI智能小助手</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <copyright>qife</copyright>
    <lastBuildDate>Mon, 08 Dec 2025 14:54:56 +0800</lastBuildDate>
    <atom:link href="https://blog.qife122.com/tags/ddd/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用GDB和DDD轻松调试</title>
      <link>https://blog.qife122.com/p/%E4%BD%BF%E7%94%A8gdb%E5%92%8Cddd%E8%BD%BB%E6%9D%BE%E8%B0%83%E8%AF%95/</link>
      <pubDate>Mon, 08 Dec 2025 14:54:56 +0800</pubDate>
      <guid>https://blog.qife122.com/p/%E4%BD%BF%E7%94%A8gdb%E5%92%8Cddd%E8%BD%BB%E6%9D%BE%E8%B0%83%E8%AF%95/</guid>
      <description>&lt;h1 id=&#34;pleasant-debugging-with-gdb-and-ddd&#34;&gt;Pleasant debugging with GDB and DDD&lt;/h1&gt;&#xA;&lt;h2 id=&#34;gdb-front-ends&#34;&gt;GDB front ends&lt;/h2&gt;&#xA;&lt;p&gt;By default, GDB provides a terse line-based terminal. You need to explicitly ask to print the source code being debugged, the values of variables, or the current list of breakpoints. There are four ways to customize this interface. Ordered from basic to complicated, they are:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Get used to the default behavior. Then you’ll be comfortable on any system with GDB installed. However, this approach does forego some real conveniences.&lt;/li&gt;&#xA;&lt;li&gt;Enable the built-in GDB TUI mode with the &lt;code&gt;-tui&lt;/code&gt; command line flag (available since GDB version 7.5). The TUI creates Curses windows for source, registers, commands, etc. It’s easier to trace execution through the code and spot breakpoints than in the default interface.&lt;/li&gt;&#xA;&lt;li&gt;Customize the UI using scripting, sourced from your &lt;code&gt;.gdbinit&lt;/code&gt;. Some good examples are projects like &lt;a href=&#34;https://github.com/cyrus-and/gdb-dashboard&#34;&gt;gdb-dashboard&lt;/a&gt; and &lt;a href=&#34;https://github.com/hugsy/gef&#34;&gt;gef&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Use a graphical front-end that communicates with an “inferior” GDB instance. Front ends either use the GDB machine interface (MI) to communicate, or they screen scrape sessions directly.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;In my experiments, the TUI mode (option two) seemed promising, but it has some limitations:&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
