使用 Visual Studio Code 连接到 QEMU 中 运行 的 OP-TEE 的 gdb-server

Using Visual Studion Code to connect to the gdb-server of the OP-TEE which is running in the QEMU

我正在 ARM-64 中设置 op-tee。我想知道是否可以在 ubuntu 18.04.

下使用 visual studio 代码 运行ning 调试它

到目前为止,我能够在 QEMU 中编译和 运行 op-tee。并且还能够使用命令行 gdb 连接 gdb 服务器(遵循此 link:https://www.op-tee.org/docs/debug/)。

现在我想使用一些 GUI 而不是 gdb。由于我正在使用 visual studio 代码,所以我想知道是否可以配置 vsCode 来这样做?

我已经尝试安装 cortex-debug 扩展(我不确定它是否正确)并且还尝试了 c/c++ 调试附加。但我无法让它们工作!

这是我的 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": "(gdb) Attach",
        "type": "cppdbg",
        "request": "attach",
        "program": "${workspaceFolder}/optee_os/out/arm/core/tee.elf",
        "miDebuggerServerAddress": "localhost:1234",
        "processId": "${command:pickProcess}",
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "Enable pretty-printing for gdb",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            },
            {
                "text": "optee"
            }
        ]
    },
    {
        "cwd": "${workspaceRoot}",
        "executable": "${workspaceFolder}/optee_os/out/arm/core/tee.elf",
        "name": "Debug Microcontroller",
        "request": "attach",
        "type": "cortex-debug",
        "servertype": "openocd"
    }
]

}

我希望能够通过使用 Microsoft 可视化代码远程连接到 QEMU 下 运行ning 的 gdb 服务器来调试 arm 应用程序。

欢迎任何使用扩展的建议。

我找到了适合我的解决方案:

首先需要为 VS Code 安装 Native Debug 扩展。

然后在launch.json文件中添加如下配置:

    {
        "type": "gdb",
        "request": "attach",
        "name": "Attach to QEMU",
        "executable": "${workspaceFolder}/optee_os/out/arm/core/tee.elf",
        "target": "localhost:1234",
        "remote": true,
        "cwd": "${workspaceRoot}", 
        "gdbpath": "~/devel/optee/toolchains/aarch64/bin/aarch64-linux-gnu-gdb"
    }

备注:

  • 只有应用程序不是 运行,您才能连接到 QEMU:
    • 在 QEMU 中输入 c 之前它应该处于初始状态
    • 或断点停止
  • 应该没有其他客户端连接到它。

参考: