microsoft / microsoft/vscode-cpptools
Debugger doesn't launch with lldb (lldb-mi is required)
Open
Nobody has claimed this yet.
debugger
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
Environment
- OS and version: Windows 11 12H2
- VS Code: 1.75.0
- C/C++ extension: 1.13.9
- OS and version of remote machine (if applicable):
- GDB / LLDB version: lldb 15.0.0
Bug Summary and Steps to Reproduce
Bug Summary:
I'm unable to start a debug session with lldb. It always prints an error without doing anything in the terminal or the console.
I tried with both openocd and stm32cubeprogrammer
Debugger Configurations
{
"name": "Debug main app",
"type": "cppdbg",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}\\bin\\debug\\main_app.elf",
"MIMode": "lldb",
"miDebuggerPath": "C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe",
"miDebuggerServerAddress": "localhost:3333",
"debugServerPath": "C:\\openocd\\bin\\openocd.exe",
"debugServerArgs": "-f board/stm32f3discovery.cfg",
"serverStarted": "Waiting for connection on port .*\\.\\.\\.",
"stopAtConnect": true,
// "preLaunchTask": "Build",
"svdPath": "${command:vscode-embedded.st.svd}/STM32F303.svd"
},
{
"name": "Debug main app",
"type": "cppdbg",
"request": "launch",
"cwd": "${workspaceFolder}",
"program": "${workspaceFolder}\\bin\\debug\\main_app.elf",
"MIMode": "lldb",
"miDebuggerPath": "C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe",
"miDebuggerServerAddress": "localhost:3333",
"debugServerPath": "${command:vscode-embedded.st.gdbserver}",
"debugServerArgs": "--stm32cubeprogrammer-path ${command:vscode-embedded.st.cubeprogrammer} --swd --port-number 3333",
"serverStarted": "Waiting for connection on port .*\\.\\.\\.",
"stopAtConnect": true,
"logging": { "engineLogging": true, "trace": true, "traceResponse": true },
// "preLaunchTask": "Build",
"svdPath": "${command:vscode-embedded.st.svd}/STM32F303.svd"
}
Debugger Logs
1: (156) ->ST-LINK device initialization OK
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (156) ->Stm32Device, pollAndNotify running...\r\n"},"seq":54}
1: (156) ->Stm32Device, pollAndNotify running...
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (158) ->SwvSrv state change: 0 -> 1\r\n"},"seq":56}
1: (158) ->SwvSrv state change: 0 -> 1
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (158) ->Waiting for connection on port 3334...\r\n"},"seq":58}
1: (158) ->Waiting for connection on port 3334...
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (158) ->Waiting for debugger connection...\r\n"},"seq":60}
1: (158) ->Waiting for debugger connection...
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (158) ->Waiting for connection on port 3333...\r\n"},"seq":62}
1: (158) ->Waiting for connection on port 3333...
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (158) Starting: \"C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe\" --interpreter=mi\r\n"},"seq":64}
1: (158) Starting: "C:\LLVM_Arm_Embedded_Toolchain\bin\lldb.exe" --interpreter=mi
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (163) DebuggerPid=70428\r\n"},"seq":66}
1: (163) DebuggerPid=70428
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"[Warning] 1: (200) STDERR: error: unknown option: --interpreter=mi\r\n"},"seq":68}
[Warning] 1: (200) STDERR: error: unknown option: --interpreter=mi
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"[Warning] 1: (201) STDERR: Use 'lldb.exe --help' for a complete list of options.\r\n"},"seq":70}
[Warning] 1: (201) STDERR: Use 'lldb.exe --help' for a complete list of options.
--> E (output): {"type":"event","event":"output","body":{"category":"console","output":"1: (204) \"C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe\" exited with code 1 (0x1).\r\n"},"seq":72}
1: (204) "C:\LLVM_Arm_Embedded_Toolchain\bin\lldb.exe" exited with code 1 (0x1).
--> E (output): {"type":"event","event":"output","body":{"category":"stderr","output":"Starting: \"C:/ST/STM32CubeIDE_1.10.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.win32_2.0.300.202203231527/tools/bin/ST-Link_gdbserver.exe\" --stm32cubeprogrammer-path C:/ST/STM32CubeIDE_1.10.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.301.202207041506/tools/bin/ --swd --port-number 3333\r\nStarting: \"C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe\" --interpreter=mi\r\nerror: unknown option: --interpreter=mi\r\nUse 'lldb.exe --help' for a complete list of options.\r\n\"C:\\LLVM_Arm_Embedded_Toolchain\\bin\\lldb.exe\" exited with code 1 (0x1).\r\n\r\n"},"seq":74}
Other Extensions
No response
Additional Information
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the debugger launch path represented by the provided cppdbg configuration, especially how MIMode and miDebuggerPath are used. Reproduce the launch with the logged configuration and verify that the selected LLDB executable accepts the MI startup arguments; done means the debug session launches without the unknown-option error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, vscode
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100