# gdb

Published articles for gdb.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Run Zephyr on ESP32 with QEMU: no board required

DevFeed: [Run Zephyr on ESP32 with QEMU: no board required](<https://devfeed.tech/articles/run-zephyr-on-esp32-with-qemu-no-board-required-26238.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2026/09/zephyr-espressif-qemu-hello-world/>)

Author: John Lee

Published: 2026-09-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Zephyr RTOS](<https://devfeed.tech/topics/zephyr-rtos.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [qemu](<https://devfeed.tech/topics/qemu.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [SDK](<https://devfeed.tech/topics/sdk.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [boot](<https://devfeed.tech/tags/boot.md>), [bootloader](<https://devfeed.tech/tags/bootloader.md>), [build](<https://devfeed.tech/tags/build.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [esp32-c6](<https://devfeed.tech/tags/esp32-c6.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [firmware](<https://devfeed.tech/tags/firmware.md>), [flash](<https://devfeed.tech/tags/flash.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [install](<https://devfeed.tech/tags/install.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>)

### AI overview

This tutorial explains how to install and use the Espressif QEMU fork to build and run Zephyr firmware for emulated ESP32, ESP32-S3, ESP32-C3, and ESP32-C6 targets without physical boards. It covers Simple Boot and MCUboot/sysbuild workflows, debugger attachment through GDB, and the relevant Zephyr SDK toolchain setup.

### Source excerpt

Install the Espressif QEMU fork and run Zephyr on emulated ESP32, ESP32-S3, ESP32-C3, and ESP32-C6 targets without a physical board.

## C++-техрадар: что разработчики действительно готовы брать в работу

DevFeed: [C++-техрадар: что разработчики действительно готовы брать в работу](<https://devfeed.tech/articles/c-23087.md>)

Original publisher: [Read original article](<https://habr.com/ru/companies/kaspersky/articles/1067982/>)

Author: Kaspersky\_Lab ("Лаборатория Касперского")

Published: 2026-08-07T13:17:24Z

Content type: article

Language: ru

Sources: ["Лаборатория Касперского" RU](<https://devfeed.tech/sources/ru-2.md>)

Topics: [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [bash](<https://devfeed.tech/tags/bash.md>), [bazel](<https://devfeed.tech/tags/bazel.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [clang](<https://devfeed.tech/tags/clang.md>), [cmake](<https://devfeed.tech/tags/cmake.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [git](<https://devfeed.tech/tags/git.md>), [plus-plus-3a0baa67a2fc](<https://devfeed.tech/tags/plus-plus-3a0baa67a2fc.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [tech-radar](<https://devfeed.tech/tags/tech-radar.md>), [vs-code](<https://devfeed.tech/tags/vs-code.md>)

### AI overview

The article analyzes the C++ portion of a technical radar based on survey responses from developers at C++ Russia and HolyJS. It explains how technologies are assessed across Adopt, Trial, Assess, and Hold categories, emphasizing that the overall distribution of votes matters more than a single dominant response. The supplied evidence specifically notes CMake as a strong performer and PostgreSQL as dividing respondents.

### Source excerpt

В мае на конференциях C++ Russia и HolyJS мы предложили участникам оценить технологии, инструменты и инженерные практики, с которыми они работают или за которыми следят. Так появились данные для двух технических радаров: по экосистеме C++ и по JavaScript. Сырые цифры сами по себе рассказывают немного, поэтому мы отдали результаты на разбор эксперту. Виктор Новиков, руководитель группы разработки в "Лаборатории Касперского", посмотрел на распределения голосов и поделился своим мнением, почему CMake уверенно побеждает, а PostgreSQL раскалывает аудиторию пополам. В этой статье -- его анализ C++-части исследования. Про техрадар JavaScript мы расскажем в другой статье. Посмотреть радар и принять участие в голосовании можно на странице проекта. Читать далее

## QEMU version 11.0.0 released

DevFeed: [QEMU version 11.0.0 released](<https://devfeed.tech/articles/qemu-version-11-0-0-released-32657.md>)

Original publisher: [Read original article](<https://www.qemu.org/2026/04/22/qemu-11-0-0/>)

Published: 2026-04-22T16:11:00Z

Content type: release

Language: en

Sources: [QEMU](<https://devfeed.tech/sources/qemu.md>)

Topics: [qemu](<https://devfeed.tech/topics/qemu.md>), [version](<https://devfeed.tech/topics/version.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [systems](<https://devfeed.tech/topics/systems.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Arm](<https://devfeed.tech/topics/arm.md>), [RISC-V](<https://devfeed.tech/topics/riscv.md>), [cpu](<https://devfeed.tech/topics/cpu.md>), [virtio](<https://devfeed.tech/topics/virtio.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [gdb](<https://devfeed.tech/topics/gdb.md>)

Tags: [arm](<https://devfeed.tech/tags/arm.md>), [availability](<https://devfeed.tech/tags/availability.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [changelog](<https://devfeed.tech/tags/changelog.md>), [ci](<https://devfeed.tech/tags/ci.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [download](<https://devfeed.tech/tags/download.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [kvm](<https://devfeed.tech/tags/kvm.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [qemu-11-0](<https://devfeed.tech/tags/qemu-11-0.md>), [release](<https://devfeed.tech/tags/release.md>), [releases](<https://devfeed.tech/tags/releases.md>), [risc-v](<https://devfeed.tech/tags/risc-v.md>), [testing](<https://devfeed.tech/tags/testing.md>), [updates](<https://devfeed.tech/tags/updates.md>), [virtio](<https://devfeed.tech/tags/virtio.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>), [x86](<https://devfeed.tech/tags/x86.md>)

### AI overview

QEMU 11.0.0 is released with more than 2,500 commits from 237 authors. Highlights include a new Nitro accelerator for AWS Nitro Enclaves, expanded accelerator and confidential VM support, new architecture features, and updates to device emulation, plugins, drivers, and debugging.

### Source excerpt

We'd like to announce the availability of the QEMU 11.0.0 release. This release contains 2500+ commits from 237 authors.

## Recent lld/ELF performance improvements

DevFeed: [Recent lld/ELF performance improvements](<https://devfeed.tech/articles/recent-lld-elf-performance-improvements-31121.md>)

Original publisher: [Read original article](<https://maskray.me/blog/2026-04-12-recent-lld-elf-performance-improvements>)

Published: 2026-04-12T07:00:00Z

Content type: article

Language: en

Sources: [MaskRay](<https://devfeed.tech/sources/maskray.md>)

Topics: [LLVM](<https://devfeed.tech/topics/llvm.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [clang](<https://devfeed.tech/topics/clang.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [clang](<https://devfeed.tech/tags/clang.md>), [gc](<https://devfeed.tech/tags/gc.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [linker](<https://devfeed.tech/tags/linker.md>), [lld](<https://devfeed.tech/tags/lld.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [macos](<https://devfeed.tech/tags/macos.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [patches](<https://devfeed.tech/tags/patches.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article reports LLVM lld/ELF linker performance improvements from parallelizing link phases and reducing task-runtime overhead. Benchmarks show a 1.34x speedup over lld 22.1 for a Release+Asserts clang link and a 1.09x speedup for a Chromium debug link, while mold and wild remain faster in the comparisons described.

### Source excerpt

Updated in 2026-05. Since the LLVM 22 branch was cut, I've landed patches that parallelize more link phases and cut task-runtime overhead. This post compares current main against lld 22.1, mold, and wild. Headline: a Release+Asserts clang --gc-sections link is 1.34x as fast as lld 22.1; Chromium debug with --gdb-index is 1.09x as fast. mold and wild are still ahead -- the last section explains why.

## Debugging with ESP-IDF VS Code extension: Part 2

DevFeed: [Debugging with ESP-IDF VS Code extension: Part 2](<https://devfeed.tech/articles/debugging-with-esp-idf-vs-code-extension-part-2-13705.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2025/06/debugging-with-vscode-part-2/>)

Author: John Lee

Published: 2025-06-12T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [VS Code Extension](<https://devfeed.tech/topics/vscode-extension.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Visual Studio Code](<https://devfeed.tech/topics/visual-studio-code.md>), [Espressif](<https://devfeed.tech/topics/espressif.md>), [Embedded Software Dev](<https://devfeed.tech/topics/embedded-software-dev.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32-c3](<https://devfeed.tech/tags/esp32-c3.md>), [esp32-s3](<https://devfeed.tech/tags/esp32-s3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [extension](<https://devfeed.tech/tags/extension.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [jtag](<https://devfeed.tech/tags/jtag.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>), [vs-code](<https://devfeed.tech/tags/vs-code.md>), [vscode](<https://devfeed.tech/tags/vscode.md>)

### AI overview

Part two of a guide to debugging Espressif firmware in VS Code with the ESP-IDF extension. It covers launching a debugging session, setting breakpoints, navigating through code, and inspecting variables using gdb and JTAG.

### Source excerpt

This two-part guide shows how to set up VS Code with the ESP-IDF extension to debug Espressif boards using JTAG. In this second part, we will debug a simple project using gdb through Espressif's VSCode extension. We will explore the debugging options for navigating the code and inspecting the variables.

## The case of the vanishing CPU: A Linux kernel debugging story

DevFeed: [The case of the vanishing CPU: A Linux kernel debugging story](<https://devfeed.tech/articles/the-case-of-the-vanishing-cpu-a-linux-kernel-debugging-story-4905.md>)

Original publisher: [Read original article](<https://clickhouse.com/blog/a-case-of-the-vanishing-cpu-a-linux-kernel-debugging-story>)

Author: Sergei Trifonov

Published: 2025-03-05T12:18:20Z

Content type: article

Language: en

Sources: [ClickHouse Blog](<https://devfeed.tech/sources/clickhouse-blog.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Google Cloud Platform (GCP)](<https://devfeed.tech/topics/google-cloud.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [incident](<https://devfeed.tech/topics/incident.md>)

Tags: [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gcp](<https://devfeed.tech/tags/gcp.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [incident](<https://devfeed.tech/tags/incident.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [performance](<https://devfeed.tech/tags/performance.md>), [process](<https://devfeed.tech/tags/process.md>), [threads](<https://devfeed.tech/tags/threads.md>)

### AI overview

A mysterious CPU spike affecting ClickHouse Cloud on GCP led engineers through tracing and debugging into Linux kernel memory-management internals. The investigation uncovered a hidden livelock, produced a reproducible test case and fix, and was followed by the discovery of another kernel bug.

### Source excerpt

Read about how a Linux kernel memory bug led to instability in ClickHouse Cloud on GCP, and the challenges of diagnosing and resolving it.

## GNU/Hurd development updates for Q1 2024

DevFeed: [GNU/Hurd development updates for Q1 2024](<https://devfeed.tech/articles/2024-q1-32744.md>)

Original publisher: [Read original article](<http://www.gnu.org/software/hurd/news/2024-q1.html>)

Published: 2024-04-05T11:07:00Z

Content type: news

Language: en

Sources: [GNU Hurd](<https://devfeed.tech/sources/gnu-hurd.md>)

Topics: [GNU/Hurd](<https://devfeed.tech/topics/gnu-hurd.md>), [gdb](<https://devfeed.tech/topics/gdb.md>), [qemu](<https://devfeed.tech/topics/qemu.md>)

Tags: [compiler](<https://devfeed.tech/tags/compiler.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [gnu-hurd](<https://devfeed.tech/tags/gnu-hurd.md>), [qemu](<https://devfeed.tech/tags/qemu.md>), [test](<https://devfeed.tech/tags/test.md>)

### AI overview

The Q1 2024 GNU/Hurd update reports work on keyboard layout support, 64-bit and AArch64 porting, GDB and glibc changes, SMP support, hardware support, testing with QEMU, and a new Alpine-based Hurd distribution in development.

### Source excerpt

Hello! Welcome to a new qoth. This qoth covers new and interesting GNU/Hurd developments in Q1 of 2024! Details. Etienne Brateau modified console-client to use xkbcommon instead of x11 for xkb extended support, which improves keyboard layout coverage a lot! Flavio Cruz also worked on porting GDB to the 64-bit Hurd, implemented setcontext/getcontext/makecontext/swapcontex () in glibc, and implemented child process resource accounting. The latter implementsgetrusage(RUSAGE_CHILDREN, ) and populates child related data in times(). He fixed the perl testsuite for the Hurd, and he also posted a RFC to enhance tracing utilities, which he used to port the RPC format to 64 bit. Flavio also had a smattering of fixes here, here, here, here, and here. Damien Zammit had some fixes including fixing the console with APIC enabled, patching GNU Mach to support ACPI v2, fixing baud rate on com ports, porting the Hurd to some AMD CPUs (WIP), adding HPET (high precision timers). He also worked on making ext2fs use xattr by default to store translators. Damien also worked on more SMP fixes here, here, here, here, here, and here. Hurd currently boots in SMP mode on the BSP. Damien wrote a test program that lets you run a task on the APs. Sergey Bugaev patched binutils to support the GNU/Hurd on AArch64, and he wrote some patches to make the Hurd easier to port here, here, and here, Sergey also posted a fairly large RFC patch series for his AArch64 port. He writes: MIG seems to just work (thanks to all of Flávio's work!). I'm using the same message ABI as on x86_64, and haven't seen any issues so far -- neither compiler errors / failed static assertions (about struct sizes and such), nor hardware errors from misaligned accesses. He also mentions that "the hardware hardening features (BTI, MTE, PAC) are currently 'not really supported', but I do want to support them in the future." Samuel merged many of the patches. In Sergey's later glibc patch series, he wrote about the AArch64 port progr

## Core Dump: A Powerful Tool for Debugging Programs in Zephyr with ESP32 Boards

DevFeed: [Core Dump: A Powerful Tool for Debugging Programs in Zephyr with ESP32 Boards](<https://devfeed.tech/articles/core-dump-a-powerful-tool-for-debugging-programs-in-zephyr-with-esp32-boards-13661.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/2023/07/core-dump-a-powerful-tool-for-debugging-programs-in-zephyr-with-esp32-boards/>)

Author: John Lee

Published: 2023-07-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [Zephyr OS](<https://devfeed.tech/topics/zephyr-os.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Embedded Systems](<https://devfeed.tech/topics/embedded-systems.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [SDK](<https://devfeed.tech/topics/sdk.md>), [Parser](<https://devfeed.tech/topics/parser.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [core-dump](<https://devfeed.tech/tags/core-dump.md>), [crash](<https://devfeed.tech/tags/crash.md>), [debug](<https://devfeed.tech/tags/debug.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [embedded-systems](<https://devfeed.tech/tags/embedded-systems.md>), [errors](<https://devfeed.tech/tags/errors.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [esp32c3](<https://devfeed.tech/tags/esp32c3.md>), [espressif](<https://devfeed.tech/tags/espressif.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [sdk](<https://devfeed.tech/tags/sdk.md>), [zephyr](<https://devfeed.tech/tags/zephyr.md>)

### AI overview

This tutorial explains how to use Zephyr OS core dumps with Espressif ESP32 boards to investigate unrecoverable software crashes. It covers enabling the logging backend, converting UART output into a binary core dump, connecting a custom GDB server, and examining program state in GDB.

### Source excerpt

How to use Zephyr Core Dump feature with Espressif Devices.

## Pleasant debugging with GDB and DDD

DevFeed: [Pleasant debugging with GDB and DDD](<https://devfeed.tech/articles/pleasant-debugging-with-gdb-and-ddd-21492.md>)

Original publisher: [Read original article](<https://begriffs.com/posts/2022-07-17-debugging-gdb-ddd.html>)

Published: 2022-07-17T00:00:00Z

Content type: article

Language: en

Sources: [Joe Nelson](<https://devfeed.tech/sources/joe-nelson.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [Text-based user interface](<https://devfeed.tech/topics/tui.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [ddd](<https://devfeed.tech/tags/ddd.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [linux](<https://devfeed.tech/tags/linux.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

This article presents configuration and scripting techniques for making GDB debugging more pleasant on Linux and BSD systems. It compares several interface-customization approaches and focuses on using the Data Display Debugger (DDD), including workarounds for its compatibility problems with recent GDB versions and its remote SSH support.

### Source excerpt

2022-07-17 GDB is an old and ubiquitous debugger for Linux and BSD systems that has extensive language, processor, and binary format support. Its interface is a little cryptic, but learning GDB pays off. This article is a set of miscellaneous configuration and scripting tricks that illustrate reusable principles. It assumes you're familiar with the basics of debugging, like breakpoints, stepping, inspecting variables, etc. Table of contents By default, GDB provides a terse line-based terminal.

## Debugging Targets of idf.py

DevFeed: [Debugging Targets of idf.py](<https://devfeed.tech/articles/debugging-targets-of-idf-py-13828.md>)

Original publisher: [Read original article](<https://developer.espressif.com/blog/debugging-targets-of-idf.py/>)

Author: John Lee

Published: 2020-06-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Blog on Developer Portal](<https://devfeed.tech/sources/blog-on-developer-portal.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [ESP-IDF](<https://devfeed.tech/topics/esp-idf.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ESP32](<https://devfeed.tech/topics/esp32.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [command-line](<https://devfeed.tech/tags/command-line.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [embedded](<https://devfeed.tech/tags/embedded.md>), [esp-idf](<https://devfeed.tech/tags/esp-idf.md>), [esp32](<https://devfeed.tech/tags/esp32.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [gpio](<https://devfeed.tech/tags/gpio.md>), [ide](<https://devfeed.tech/tags/ide.md>), [idf-py](<https://devfeed.tech/tags/idf-py.md>), [iot](<https://devfeed.tech/tags/iot.md>), [jtag](<https://devfeed.tech/tags/jtag.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This article explains how to use the debugging targets added to idf.py in ESP-IDF v4.2. It covers command-line workflows for OpenOCD, GDB, GDB TUI, IDF Monitor, and the gdbgui debug server, including JTAG requirements and configuration overrides.

### Source excerpt

This article outlines a quick and easy way to start a debugger from the command line. More specifically, it discusses the debugging targets of idf.py, which have been added to ESP-IDF from v4.2. At the time of writing, IDF v4.2 is not released yet, but you can try out this feature on the master branch. Why Do We (Not) Debug# Debugging is an essential development technique, no less so for embedded platform engineers.

## Installation

DevFeed: [Installation](<https://devfeed.tech/articles/installation-33067.md>)

Original publisher: [Read original article](<https://reactos.org/installation/>)

Published: 2019-08-19T00:00:00Z

Content type: tutorial

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [debug](<https://devfeed.tech/tags/debug.md>), [development](<https://devfeed.tech/tags/development.md>), [file](<https://devfeed.tech/tags/file.md>), [free](<https://devfeed.tech/tags/free.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [installation](<https://devfeed.tech/tags/installation.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [screen](<https://devfeed.tech/tags/screen.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This ReactOS installation guide compares the process with installing Windows XP and lists startup pointers and configuration options, including DEBUGPORT output destinations and settings such as BAUDRATE, IRQ, PROFILE, MAXMEM, NOGUIBOOT, FIRSTCHANCE, and MININT.

### Source excerpt

Installing ReactOS is very much like installing Windows XP. However, due to it still undergoing heavy development, a few pointers are helpful when first getting started. To specify output device use DEBUGPORT option. If DEBUGPORT is not specified output by default goes to COM1. Format: DEBUG Format: DEBUGPORT=[SCREEN|BOCHS|GDB|PICE|COM1|COM2|COM3|COM4|COM:|FILE|MDA] Any one of the following values may set: It is permitted to use several DEBUGPORT options, but for ports of the same class, for example, COM ports, only the last one will be used for output.

## Visualizing Postgres page images within GDB

DevFeed: [Visualizing Postgres page images within GDB](<https://devfeed.tech/articles/visualizing-postgres-page-images-within-gdb-33663.md>)

Original publisher: [Read original article](<https://pgeoghegan.blogspot.com/2019/03/visualizing-postgres-page-images-within.html>)

Author: Peter Geoghegan (noreply@blogger.com)

Published: 2019-03-23T00:07:00Z

Content type: tutorial

Language: en

Sources: [Peter Geoghegan's blog](<https://devfeed.tech/sources/peter-geoghegan-s-blog.md>)

Topics: [gdb](<https://devfeed.tech/topics/gdb.md>), [debug](<https://devfeed.tech/topics/debug.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [command](<https://devfeed.tech/tags/command.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [interactive](<https://devfeed.tech/tags/interactive.md>), [internals](<https://devfeed.tech/tags/internals.md>), [pg-hexedit](<https://devfeed.tech/tags/pg-hexedit.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>)

### AI overview

This article explains how to configure GDB to invoke pg_hexedit on PostgreSQL page images without using the filesystem, including images from local temporary buffers. It also describes using a user-defined GDB command during debugging and with core dumps.

### Source excerpt

It's straightforward to set up GDB to quickly invoke pg_hexedit on a page image, without going through the filesystem. The page image can even come from a local temp buffer. A user-defined GDB command can be created that shows an arbitrary page image in pg_hexedit from an interactive GDB session. This is a good way to understand what's really going on when debugging access method code. It also works well with core dumps. I found this valuable during a recent project to improve the Postgres B-Tree code. An example of how to make this work is available from a newly added section of the pg_hexedit README file: https://github.com/petergeoghegan/pg_hexedit/#using-pg_hexedit-while-debugging-postgres-with-gdb

## Adventures in Production Rails Debugging

DevFeed: [Adventures in Production Rails Debugging](<https://devfeed.tech/articles/adventures-in-production-rails-debugging-1292.md>)

Original publisher: [Read original article](<https://shopify.engineering/adventures-in-production-rails-debugging>)

Author: Scott Francis

Published: 2016-03-08T15:43:00Z

Content type: article

Language: en

Sources: [Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering.md>), [Shopify Engineering - Shopify Engineering](<https://devfeed.tech/sources/shopify-engineering-shopify-engineering.md>)

Topics: [Rails](<https://devfeed.tech/topics/rails.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [Regular expression](<https://devfeed.tech/topics/regular-expression.md>), [ASCII](<https://devfeed.tech/topics/ascii.md>), [Shopify](<https://devfeed.tech/topics/shopify.md>)

Tags: [ascii](<https://devfeed.tech/tags/ascii.md>), [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [instrumentation](<https://devfeed.tech/tags/instrumentation.md>), [process](<https://devfeed.tech/tags/process.md>), [rails](<https://devfeed.tech/tags/rails.md>), [ruby](<https://devfeed.tech/tags/ruby.md>)

### AI overview

This Shopify Engineering article explains how to debug production Rails problems with gdb. It describes retrieving a Ruby call stack, inspecting environment variables, and investigating a warning caused by matching an ASCII regular expression against a UTF-8 string. The approach attaches to an idle Unicorn worker, sets a breakpoint, resumes the process, dumps a core file, and examines the problem out of band without disrupting the customer request.

### Source excerpt

5 minute read At Shopify we frequently need to debug production Rails problems. Adding extra debugging code takes time to write and deploy, so we've learned how to use tools like gdb and rbtrace to quickly track down these issues. In this post, we'll explain how to use gdb to retrieve a Ruby call stack, inspect environment variables, and debug a really odd warning message in production. We recently ran into an issue where we were seeing a large number of similar warning messages spamming our log files: /artifacts/ruby/2.1.0/gems/rack-1.6.4/lib/rack/utils.rb:92: warning: regexp match /.../n against to UTF-8 string This means we are trying to match an ASCII regular expression on a UTF-8 source string.

## ReactOS 0.4.0 Released

DevFeed: [ReactOS 0.4.0 Released](<https://devfeed.tech/articles/reactos-0-4-0-released-33187.md>)

Original publisher: [Read original article](<https://reactos.org/project-news/reactos-040-released/>)

Published: 2016-02-16T00:00:00Z

Content type: release

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [ReactOS](<https://devfeed.tech/topics/reactos.md>), [version](<https://devfeed.tech/topics/version.md>), [CMake](<https://devfeed.tech/topics/cmake.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [MSVC](<https://devfeed.tech/topics/msvc.md>), [gdb](<https://devfeed.tech/topics/gdb.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [USB](<https://devfeed.tech/topics/usb.md>), [Oracle-VM-VirtualBox](<https://devfeed.tech/topics/vm-box.md>), [networking](<https://devfeed.tech/topics/networking.md>), [win32](<https://devfeed.tech/topics/win32.md>)

Tags: [cmake](<https://devfeed.tech/tags/cmake.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [free](<https://devfeed.tech/tags/free.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [msvc](<https://devfeed.tech/tags/msvc.md>), [networking](<https://devfeed.tech/tags/networking.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [release](<https://devfeed.tech/tags/release.md>), [toolchain](<https://devfeed.tech/tags/toolchain.md>), [usb](<https://devfeed.tech/tags/usb.md>), [version](<https://devfeed.tech/tags/version.md>), [virtualbox](<https://devfeed.tech/tags/virtualbox.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

The ReactOS Project announces the release of version 0.4.0, highlighting user-facing improvements such as ext2 read/write support, NTFS read support, a new explorer shell, SerialATA, sound, USB, virtualization, and wireless networking. Developer improvements include CMake support for GCC and MSVC, faster compilation, GDB remote kernel debugging, and WinDBG support.

### Source excerpt

Nearly ten years ago the ReactOS Project released version 0.3.0. Today we are proud to announce the formal release of version 0.4.0. A great deal of work has gone into making this release happen and as we look back it is remarkable to consider how far the project has come since that release a decade ago. This release is both a celebration of and a testament to everything that the ReactOS team and community has achieved together.

## A Short Guide to Kernel Debugging

DevFeed: [A Short Guide to Kernel Debugging](<https://devfeed.tech/articles/a-short-guide-to-kernel-debugging-15475.md>)

Original publisher: [Read original article](<https://developer.squareup.com/blog/a-short-guide-to-kernel-debugging>)

Author: Square Engineering

Published: 2015-10-27T16:10:00Z

Content type: tutorial

Language: en

Sources: [Square Corner Blog RSS Feed](<https://devfeed.tech/sources/square-corner-blog-rss-feed.md>)

Topics: [Kernel](<https://devfeed.tech/topics/kernel.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [bug](<https://devfeed.tech/tags/bug.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [diagnostics](<https://devfeed.tech/tags/diagnostics.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [guide](<https://devfeed.tech/tags/guide.md>), [internals](<https://devfeed.tech/tags/internals.md>), [kernel](<https://devfeed.tech/tags/kernel.md>), [linux](<https://devfeed.tech/tags/linux.md>), [linux-kernel](<https://devfeed.tech/tags/linux-kernel.md>), [memory](<https://devfeed.tech/tags/memory.md>), [process](<https://devfeed.tech/tags/process.md>), [processes](<https://devfeed.tech/tags/processes.md>), [production](<https://devfeed.tech/tags/production.md>), [techniques](<https://devfeed.tech/tags/techniques.md>)

### AI overview

This introductory guide uses a production deployment problem involving an orphaned, unkillable rm process to explain Linux kernel debugging. It discusses examining kernel call stacks and memory, along with relevant tools, techniques, and data structures.

### Source excerpt

A story about finding a kernel bug on a production system

## A Minimal LLDB Guide for Investigating Crashes

DevFeed: [A Minimal LLDB Guide for Investigating Crashes](<https://devfeed.tech/articles/i-don-t-really-want-to-learn-lldb-i-just-want-to-fix-a-crash-35552.md>)

Original publisher: [Read original article](<https://meowni.ca/posts/unscary-lldb/>)

Author: Monica Dinculescu

Published: 2014-06-23T00:00:00Z

Content type: tutorial

Language: en

Sources: [Monica Dinculescu](<https://devfeed.tech/sources/monica-dinculescu.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [clang](<https://devfeed.tech/topics/clang.md>), [gdb](<https://devfeed.tech/topics/gdb.md>), [Chromium](<https://devfeed.tech/topics/chromium.md>)

Tags: [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [chromium](<https://devfeed.tech/tags/chromium.md>), [clang](<https://devfeed.tech/tags/clang.md>), [commands](<https://devfeed.tech/tags/commands.md>), [crash](<https://devfeed.tech/tags/crash.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

A concise tutorial on using LLDB to investigate program crashes. It covers launching an executable, reproducing a crash, reading a stack trace, and setting breakpoints, with Chromium debugging examples.

### Source excerpt

lldb stands for Llama-DB, and is a database of llamas you can use to debug programs compiled with clang (lldb is to clang like gdb is to gcc). If you already know how to use gdb, then here's a translation of the common commands. Disclaimer: There is a ton of tutorials and pages about all of the awesome features and commands of lldb, and how to become a debugging pro. This is not that. This is the smallest set of things you need to read to answer the question "what's making this shit crash". That's it. Step 1. Make it go If you want to pass a bunch of arguments to your executable moose, use (´ ▽｀).。ｏ♡ src on fix/moose-crash ☀ ❥ lldb -- moose arg1 arg2 Current executable set to 'moose' (x86_64). If you don't have arguments, lldb foo is enough. This just tells lldb which executable to care about, but it won't actually start the process for you. (lldb) run --> Start or re-start your process (lldb) exit --> Stop your process. Step 2. Make it crash Since we (me) are investigating a crash, the first thing you need is a stack trace that tells you where the crash is. So, start your process in lldb, make it crash, and we'll take it from there. Side bar: I literally typed this blog out while sorting out a crash in the sign-in bits of Chromium, so all my screenshots are Chromium code. Do not panic. Your code can crash just as well if you give it enough time and attention. Once you hit your crash, lldb tells you something like this. I can't tell you how excited I am at that little arrow. It almost looks non-intimidating. Almost. Step 3. Breakpoints! It's hammer time The first thing I did was set a breakpoint at that line to figure out what's going on right before things got crashy (because I'm sure you're dying to know, my crash was happening because we hit that DCHECK which reads "the item should always be signed in" and, spoilers, it isn't) To set a breakpoint in a file at a specific line: (lldb) breakpoint set --file profile_chooser_controller.mm --line 1509 Awesome discovery

## Debugging a Difficult HTCondor Logging Bug

DevFeed: [Debugging a Difficult HTCondor Logging Bug](<https://devfeed.tech/articles/pita-bugs-part-1-32987.md>)

Original publisher: [Read original article](<https://reactos.org/blogs/pita-bugs-part-1/>)

Published: 2013-05-06T00:00:00Z

Content type: opinion

Language: en

Sources: [Front Page on ReactOS Website](<https://devfeed.tech/sources/front-page-on-reactos-website.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Evergreen ILS](<https://devfeed.tech/topics/evergreen-ils.md>), [Logging](<https://devfeed.tech/topics/logging.md>), [gdb](<https://devfeed.tech/topics/gdb.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Software](<https://devfeed.tech/topics/software.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code](<https://devfeed.tech/tags/code.md>), [data-structure](<https://devfeed.tech/tags/data-structure.md>), [debug](<https://devfeed.tech/tags/debug.md>), [free](<https://devfeed.tech/tags/free.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [linux](<https://devfeed.tech/tags/linux.md>), [logging](<https://devfeed.tech/tags/logging.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [os](<https://devfeed.tech/tags/os.md>), [react](<https://devfeed.tech/tags/react.md>), [reactos](<https://devfeed.tech/tags/reactos.md>), [software](<https://devfeed.tech/tags/software.md>), [win32](<https://devfeed.tech/tags/win32.md>), [winapi](<https://devfeed.tech/tags/winapi.md>)

### AI overview

A programmer recounts debugging an HTCondor logging bug that caused a crash through a buffer overflow. Using gdb and valgrind, they traced the problem to a mistaken write involving log-size data stored in a new struct, which could overwrite information used to track log output files.

### Source excerpt

In my years working as a programmer, I have run into many, many bugs and introduced many of my own. A few stand out as tremendously irritating to debug, as their behavior made little sense and the source of the bug was non-obvious. The first issue was from my work for the HTCondor Project, an open source cluster management software used by research groups around the world including those working on crunching data from the Large Hadron Collider, the LIGO graviton detector, and the IceCube neutrino observatory.

## Tracking down a memory leak in Ruby's EventMachine

DevFeed: [Tracking down a memory leak in Ruby's EventMachine](<https://devfeed.tech/articles/tracking-down-a-memory-leak-in-ruby-s-eventmachine-21932.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/2013/03/tracking-an-eventmachine-leak/>)

Author: Nelson Elhage

Published: 2013-03-07T13:13:37Z

Content type: tutorial

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Ruby](<https://devfeed.tech/topics/ruby.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Post Mortem](<https://devfeed.tech/topics/post-mortem.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [stripe](<https://devfeed.tech/topics/stripe.md>)

Tags: [debugging](<https://devfeed.tech/tags/debugging.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [leak](<https://devfeed.tech/tags/leak.md>), [memory](<https://devfeed.tech/tags/memory.md>), [memory-leak](<https://devfeed.tech/tags/memory-leak.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [post-mortem](<https://devfeed.tech/tags/post-mortem.md>), [ruby](<https://devfeed.tech/tags/ruby.md>), [techniques](<https://devfeed.tech/tags/techniques.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

This article describes how Stripe investigated a gradual memory leak in a Ruby service using EventMachine. It covers monitoring and process restarts as a workaround, then explores post-mortem analysis, gdb, the Ruby C API, garbage-collection hooks, and Ruby ObjectSpace to determine whether Ruby-level objects explained the service's multi-gigabyte memory use.

### Source excerpt

At Stripe, we rely heavily on ruby and EventMachine to power various internal and external services. Over the last several months, we've known that one such service suffered from a gradual memory leak, that would cause its memory usage to gradually balloon from a normal ~50MB to multiple gigabytes. It was easy enough to work around the leak by adding monitoring and restarting the process whenever memory usage grew too large, but we were determined to track down the root cause.

## Brief GDB Basics

DevFeed: [Brief GDB Basics](<https://devfeed.tech/articles/brief-gdb-basics-40657.md>)

Original publisher: [Read original article](<https://radek.io/posts/brief-gdb-basics/>)

Published: 2012-12-24T00:00:00Z

Content type: tutorial

Language: en

Sources: [Radek Pazdera](<https://devfeed.tech/sources/radek-pazdera.md>)

Topics: [gdb](<https://devfeed.tech/topics/gdb.md>), [debugging](<https://devfeed.tech/topics/debugging.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [debugger](<https://devfeed.tech/tags/debugger.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [development](<https://devfeed.tech/tags/development.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [gdb](<https://devfeed.tech/tags/gdb.md>)

### AI overview

A practical introduction to using gdb for debugging programs that crash, including how to obtain useful stack traces and source locations by compiling with symbols and debug information.

### Source excerpt

Introducing a few typical use-cases of gdb for debugging.

## How to crash gdb on OS X

DevFeed: [How to crash gdb on OS X](<https://devfeed.tech/articles/how-to-crash-gdb-on-os-x-38915.md>)

Original publisher: [Read original article](<https://idea.popcount.org/2012-11-13-how-to-crash-gdb-on-os-x>)

Author: Marek

Published: 2012-11-12T23:00:00Z

Content type: tutorial

Language: en

Sources: [Marek Majkowski](<https://devfeed.tech/sources/marek-majkowski.md>)

Topics: [gdb](<https://devfeed.tech/topics/gdb.md>), [Kernel](<https://devfeed.tech/topics/kernel.md>), [Processes](<https://devfeed.tech/topics/processes.md>)

Tags: [crash](<https://devfeed.tech/tags/crash.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [hack](<https://devfeed.tech/tags/hack.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [os](<https://devfeed.tech/tags/os.md>), [process](<https://devfeed.tech/tags/process.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

The article examines why running gdb on iTunes in OS X causes gdb to crash. It attributes the behavior to a process flag that forbids debugging and describes overriding a system call before iTunes invokes it as a workaround.

### Source excerpt

How to crash gdb on OS X or how to use gdb on iTunes In recent years the "Apple is evil" discussion started recurring more and more often. In last week's edition on the YCombinator, jrockway mentioned a very interesting technical quirk: [...] I tried to run gdb on iTunes, and gdb segfaulted. I did some research and found that Apple added extra code to the OS just to prevent someone from doing exactly that. They spent additional engineering effort just to lock me out of my own computer.

## reptyr: Attach a running process to a new terminal

DevFeed: [reptyr: Attach a running process to a new terminal](<https://devfeed.tech/articles/reptyr-attach-a-running-process-to-a-new-terminal-21927.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/2011/01/reptyr-attach-a-running-process-to-a-new-terminal/>)

Author: Nelson Elhage

Published: 2011-01-21T21:56:01Z

Content type: article

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Terminal](<https://devfeed.tech/topics/terminal.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [ssh](<https://devfeed.tech/topics/ssh.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [linux](<https://devfeed.tech/tags/linux.md>), [ncurses](<https://devfeed.tech/tags/ncurses.md>), [process](<https://devfeed.tech/tags/process.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tool](<https://devfeed.tech/tags/tool.md>)

### AI overview

The article introduces reptyr, a utility that attaches an existing running program to a new terminal. It explains how the tool transfers file descriptors, copies terminal settings, changes the process's controlling terminal, and notes limitations involving child processes.

### Source excerpt

Over the last week, I've written a nifty tool that I call reptyr. reptyr is a utility for taking an existing running program and attaching it to a new terminal. Started a long-running process over ssh, but have to leave and don't want to interrupt it? Just start a screen, use reptyr to grab it, and then kill the ssh session and head on home. You can grab the source, or read on for some more details.

## Breakpoints in gdb using int3

DevFeed: [Breakpoints in gdb using int3](<https://devfeed.tech/articles/breakpoints-in-gdb-using-int3-21551.md>)

Original publisher: [Read original article](<http://lackingrhoticity.blogspot.com/2010/05/breakpoints-in-gdb-using-int3.html>)

Author: Mark Seaborn (noreply@blogger.com)

Published: 2010-05-01T11:59:00Z

Content type: tutorial

Language: en

Sources: [Mark Seaborn](<https://devfeed.tech/sources/mark-seaborn.md>)

Topics: [debugging](<https://devfeed.tech/topics/debugging.md>), [Assembly](<https://devfeed.tech/topics/assembly.md>), [x86](<https://devfeed.tech/topics/x86.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [assembly](<https://devfeed.tech/tags/assembly.md>), [breakpoint](<https://devfeed.tech/tags/breakpoint.md>), [debugging](<https://devfeed.tech/tags/debugging.md>), [debugging-tools](<https://devfeed.tech/tags/debugging-tools.md>), [gdb](<https://devfeed.tech/tags/gdb.md>), [glibc](<https://devfeed.tech/tags/glibc.md>), [linux](<https://devfeed.tech/tags/linux.md>), [memory](<https://devfeed.tech/tags/memory.md>), [signal](<https://devfeed.tech/tags/signal.md>), [x86](<https://devfeed.tech/tags/x86.md>), [x86-64](<https://devfeed.tech/tags/x86-64.md>)

### AI overview

This article explains how inserting the x86 int3 instruction, for example through __asm__("int3"), can trigger a breakpoint while debugging with gdb. It notes that int3 raises SIGTRAP, allowing inspection of registers, memory, and the call stack under gdb, and can be useful when setting a source-line breakpoint is impractical, such as within inline assembly.

### Source excerpt

Here is a useful trick I discovered recently while debugging some changes to the seccomp sandbox. To trigger a breakpoint on x86, just do: __asm__("int3"); Then it is possible to inspect registers, memory, the call stack, etc. in gdb, without having to get gdb to set a breakpoint. The instruction triggers a SIGTRAP, so if the process is not running under gdb and has no signal handler for SIGTRAP, the process will die. This technique seems to be fairly well known, although it's not mentioned in the gdb documentation. int3 is the instruction that gdb uses internally for setting breakpoints. Sometimes it's easier to insert an int3 and rebuild than get gdb to set a breakpoint. For example, setting a gdb breakpoint on a line won't work in the middle of a chunk of inline assembly. My expectations of gdb are pretty low these days. When I try to use it to debug something low level, it often doesn't work, which is why I have been motivated to hack together my own debugging tools in the past. For example, if I run gdb on the glibc dynamic linker (ld.so) on Ubuntu Hardy or Karmic, it gives: $ gdb /lib/ld-linux-x86-64.so.2 ... (gdb) run Starting program: /lib/ld-linux-x86-64.so.2 Cannot access memory at address 0x21ec88 (gdb) So it's nice to find a case where I can get some useful information out of gdb.