Can't pause or set breakpoint when running in vscode

Viewed 3291

I'm currently developing a (simple) kernel using Qemu for i368. I was using a normal makefile and had debugging via GDB into Qemu working perfeclty The I moved to CMake and for some reason I can only hit breakpoints when my code is already in a breakpoint.

I also can't pause, the feedback I get from the debug window is the pause was succesful When setting a breakpoint it tells me Attempting to bind the breakpoint

A hint may be that when I stop the debug session, I get a popup from vscode saying timeout

My launch.json

{
// 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": "Launch with GDB",
    "type": "cppdbg",
    "request": "launch",
    "program": "${command:cmake.launchTargetPath}",
    "cwd": "${workspaceRoot}",
    "args": [],
    "targetArchitecture": "x86",
    "MIMode": "gdb",
    "miDebuggerPath": "/bin/gdb",
    "miDebuggerArgs": "",
    "logging": {
        "trace": true,
        "traceResponse": true,
        "engineLogging": true
    },
    "customLaunchSetupCommands": [
        {
            "text": "target remote localhost:1234",
            "description": "Connect to QEMU remote debugger"
        }
    ],
    "setupCommands": [
        {
            "text": "file ${command:cmake.launchTargetPath}",
            "description": "Load binary."
        },
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ],

}
]

}

Pause response

<--   C (pause-67): {"command":"pause","arguments":{"threadId":1},"type":"request","seq":67}
--> R (pause-67): {"type":"response","request_seq":67,"success":true,"command":"pause","body":{},"seq":1321}

Response when setting a breakpoint:

--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (340258) Send Event AD7BreakpointErrorEvent\n"},"seq":1327}
1: (340258) Send Event AD7BreakpointErrorEvent
--> R (setBreakpoints-69): {"type":"response","request_seq":69,"success":true,"command":"setBreakpoints","body":{"breakpoints":[{"id":4,"verified":true,"line":73}]},"seq":1329}
--> E (breakpoint): {"type":"event","event":"breakpoint","body":{"reason":"changed","breakpoint":{"id":4,"verified":false,"message":"Attempting to bind the breakpoint....","line":73}},"seq":1331}

If I type stop in Qemu terminal then vscode stops and I can set breakpoints again.

2 Answers

I have the same issue and still haven't solved yet. But I found something maybe useful for you. according to their discussion under this issue: https://github.com/Microsoft/vscode-cpptools/issues/833 you can try

  1. set target-async to off for your debugger:
    "setupCommands": [
    {
    "text": "set target-async off"
    }
  1. send SIGINT to your local debugger process
    -exec -interpreter-exec console "signal 2"

to see if it can pause or not.

I meet the similar issue, try to connect remote target with option ""MIDebuggerServerAddress": "targetIp:port", not command in customLaunchSetupCommands.

Related