From 657f6462dc869de90a40665ffb5d1a0e4481505d Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Thu, 21 May 2026 17:24:51 -0700 Subject: [PATCH 1/2] Add debuginfod launch option documentation for C/C++ debugging Document the new `debuginfod` configuration option in launch.json that controls GDB's debuginfod behavior. This option was added to MIEngine to prevent GDB hangs when debuginfod servers are unreachable --- docs/cpp/launch-json-reference.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/docs/cpp/launch-json-reference.md b/docs/cpp/launch-json-reference.md index aba36a45dcb..430eae1e799 100644 --- a/docs/cpp/launch-json-reference.md +++ b/docs/cpp/launch-json-reference.md @@ -232,6 +232,25 @@ For information about attaching to a remote process, such as debugging a process If provided, this explicitly controls hardware breakpoint behavior for remote targets. If `require` is set to true, always use hardware breakpoints. Default value is `false`. `limit` is an optional limit on the number of available hardware breakpoints to use which is only enforced when `require` is true and `limit` is greater than 0. Defaults value is 0. Example: ```"hardwareBreakpoints": { require: true, limit: 6 }```. +### debuginfod + +Controls GDB's [debuginfod](https://sourceware.org/elfutils/Debuginfod.html) behavior for downloading debug symbols from debuginfod servers. This is useful on Linux systems where debuginfod is configured (such as Ubuntu, Fedora, or Arch Linux). + +- **enabled**: If `true` (default), GDB's debuginfod support is enabled, allowing it to download debug symbols automatically. Set to `false` to prevent GDB from contacting debuginfod servers, which can be useful if the debuginfod server is unreachable and causing GDB to hang on launch. +- **timeout**: The timeout in seconds for debuginfod server requests. Default is `30`. Set to `0` to use GDB/libdebuginfod defaults with no override. + +**Example:** + +```json +{ + ... + "debuginfod": { + "enabled": true, + "timeout": 10 + } +} +``` + ## Additional properties ### processId From 2f0d6e62249eba9497dfc08808f4fc26ec0dd20f Mon Sep 17 00:00:00 2001 From: Andrew Wang Date: Tue, 9 Jun 2026 22:58:28 -0700 Subject: [PATCH 2/2] Fix debuginfod enabled default to false The debuginfod.enabled property defaults to false, not true, matching the cpptools extension source. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/cpp/launch-json-reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/cpp/launch-json-reference.md b/docs/cpp/launch-json-reference.md index 430eae1e799..c513799154d 100644 --- a/docs/cpp/launch-json-reference.md +++ b/docs/cpp/launch-json-reference.md @@ -236,7 +236,7 @@ If provided, this explicitly controls hardware breakpoint behavior for remote ta Controls GDB's [debuginfod](https://sourceware.org/elfutils/Debuginfod.html) behavior for downloading debug symbols from debuginfod servers. This is useful on Linux systems where debuginfod is configured (such as Ubuntu, Fedora, or Arch Linux). -- **enabled**: If `true` (default), GDB's debuginfod support is enabled, allowing it to download debug symbols automatically. Set to `false` to prevent GDB from contacting debuginfod servers, which can be useful if the debuginfod server is unreachable and causing GDB to hang on launch. +- **enabled**: If `true`, GDB's debuginfod support is enabled, allowing it to download debug symbols automatically. Default is `false`, which prevents GDB from contacting debuginfod servers that might be unreachable and cause GDB to hang on launch. - **timeout**: The timeout in seconds for debuginfod server requests. Default is `30`. Set to `0` to use GDB/libdebuginfod defaults with no override. **Example:**