microsoft / microsoft/vscode-cpptools

Debugger doesn't launch with lldb (lldb-mi is required)

Offen
#10,491 6 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

debugger
Vorherrschende Sprache
TypeScript
Sterne
6.2k
Forks
1.7k
Ø Merge
14 Std. 46 Min.
Gemergte PRs (30 T.)
61

Beschreibung

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

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit dem durch die bereitgestellte cppdbg-Konfiguration dargestellten Debugger-Startpfad, insbesondere damit, wie MIMode und miDebuggerPath verwendet werden. Reproduziere den Start mit der protokollierten Konfiguration und überprüfe, dass die ausgewählte LLDB-Ausführbare die MI-Startargumente akzeptiert; abgeschlossen ist dies, wenn die Debugsitzung ohne den Fehler „unknown-option“ gestartet wird.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp, vscode
Bereich
devtools
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.