Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MinGW 13.2.0 toolchain's GDB (version 11.2), when run through the C/C++ Debug Adapter, cannot force the program to break without a defined breakpoint. #13191

Open
tfinnegan937 opened this issue Jan 24, 2025 · 1 comment
Labels
bug debugger help wanted Can be fixed in the public (open source) repo.

Comments

@tfinnegan937
Copy link

Environment

  • OS and version:
    Windows 10 22H2 Build Version 19045.5371

  • VS Code:
    1.96.3

  • C/C++ extension:
    1.22.11

  • GDB / LLDB version:

GNU gdb (GDB) 11.2 (Provided with the MinGW version below.

  • MinGW build used:

https://github.com/niXman/mingw-builds-binaries/releases/tag/13.2.0-rt_v11-rev1

(This is an official build pointed to by MinGW's downloads page, under the MinGW-w64 Builds heading https://www.mingw-w64.org/downloads/)

Bug Summary and Steps to Reproduce

Bug Summary:

The bugger starts successfully, but then the program refuses to break unless a breakpoint is set prior to execution. The "pause" button does not work.

Why are we using MinGW on Windows? We're doing some work with an analysis tool that only supports GCC. Switching to MSVC is not a viable workaround.

Steps to reproduce:

  1. Configure a C++ "cppdbg" debug target with the MIMode and MIDebuggerPath pointing to MinGW's GDB.
  2. Run your debug target
  3. Attempt to force a break with the "pause" button
  4. The program will refuse to pause.
  5. Stop the program. Set a breakpoint.
  6. The program successfully breaks at the breakpoint.

Debugger Configurations

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Big Endian Network Converter (Windows)",
            "type": "cppdbg",
            "request": "launch",
            "program": "${command:cmake.buildDirectory}\\tools\\bigendian_network_converter\\${command:cmake.buildType}\\bigendian_network_converter-windows-x86_64-${command:cmake.buildType}.exe",
            "args": [
                "-tftpip",
                "127.0.0.1",
                "-cfg",
                "ipport_common.cfg",
                "ipport.cfg",
                "bigendian_network_converter.cfg",
                "desktop.ocfg",
                "desktop_common.ocfg"
            ],
            "stopAtEntry": false,
            "cwd": "${command:cmake.buildDirectory}\\tools\\bigendian_network_converter\\${command:cmake.buildType}\\",
            "MIMode": "gdb",
            "miDebuggerPath": "${workspaceFolder}/bin/shell/mingw64/bin/gdb.exe",
            "environment": [
                {
                    // add the directory where our target was built to the PATHs
                    // it gets resolved by CMake Tools:
                    "name": "PATH",
                    "value": "${env:PATH}:${command:cmake.buildDirectory}\\tools\\bigendian_network_converter\\${command:cmake.buildType}\\"
                }
            ],
            "logging": { "engineLogging": true, "trace": true, "traceResponse": true }
        },
    ]
}

Debugger Logs

[debug_adapter_logs.txt](https://github.com/user-attachments/files/18540942/debug_adapter_logs.txt)

Other Extensions

  1. njpwerner.autodocstring
  2. Damien.autoit
  3. ms-vscode.cpptools-extension-pack
  4. Parasoft.vscode-cpptest
  5. twxs.cmake
  6. ms-vscode.cmake-tools

Additional Information

The nature of this work is sensitive, and the amount of information that I can provide about our codebase is limited. I would be happy to build smaller examples for the purposes of debugging this, however.

Copy link

Thank you for reporting this issue. We’ll let you know if we need more information to investigate it. Additionally, if you're working with GDB/LLDB, please note that the code is open source at https://github.com/microsoft/MIEngine/wiki/Contributing-Code . Your contributions are always welcome and appreciated.

@github-actions github-actions bot added the help wanted Can be fixed in the public (open source) repo. label Jan 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug debugger help wanted Can be fixed in the public (open source) repo.
Projects
None yet
Development

No branches or pull requests

2 participants