调试
适用于 TEN 框架的开发人员
如果您使用 VS Code 开发 TEN 框架,则 TEN 框架源代码树中有一个 launch.json
文件,其中提供了默认的调试目标。
适用于 TEN 框架的用户
如果您使用 VS Code 开发基于 TEN 框架的自己的应用程序,您可以将配置添加到您的 .vscode/launch.json
文件,以便您可以使用断点和变量检查来调试您的应用程序,无论您使用的是哪种编程语言(C++/Golang/Python)。
在 C++ 应用程序中调试
如果应用程序是用 C++ 编写的,这意味着扩展可以使用 C++ 或 Python 编写。
使用 lldb 或 gdb 调试 C++ 代码
您可以使用以下配置来调试 C++ 代码:
-
使用 lldb 调试 C++ 代码
-
使用 gdb 调试 C++ 代码
使用 debugpy 调试 Python 代码
您可以使用 debugpy
调试 Python 代码。 但是,由于程序不是直接通过 Python 解释器启动的,因此 Python 代码由嵌入的 Python 解释器执行。 因此,您只能将调试器附加到正在运行的进程。
首先,您需要在 Python 环境中安装 debugpy
:
然后,您需要使用设置的环境变量 TEN_ENABLE_PYTHON_DEBUG
和 TEN_PYTHON_DEBUG_PORT
启动应用程序。 例如:
如果环境变量 TEN_ENABLE_PYTHON_DEBUG
设置为 true
,则应用程序将阻塞,直到附加调试器。 如果设置了环境变量 TEN_PYTHON_DEBUG_PORT
,则调试器服务器将侦听指定端口上的传入连接。
然后,您可以将调试器附加到正在运行的进程。 以下是一个配置示例:
使用 debugpy 调试 Python 代码
同时调试 C++ 和 Python 代码
如果您想在 VSCode 中一键启动同时调试 C++ 和 Python 代码,您可以执行以下操作:
-
定义一个任务,在附加调试器之前延迟几秒钟:
-
将以下配置添加到
launch.json
文件:
然后,您可以使用复合配置 app (C++) (lldb, launch) and app (C++) (debugpy, attach)
启动调试 C++ 和 Python 代码。
在 Go 应用程序中调试
如果应用程序是用 Go 编写的,这意味着扩展可以使用 Go 或 C++ 或 Python 编写。
使用 delve 调试 Go 代码
您可以使用以下配置在您的 Go 扩展中进行调试:
使用 lldb 或 gdb 调试 C++ 代码
您可以使用以下配置来调试 C++ 代码:
-
使用 lldb 调试 C++ 代码
-
使用 gdb 调试 C++ 代码
使用 debugpy 调试 Python 代码
请参阅上面的部分,了解如何使用 debugpy 调试 Python 代码。 使用设置的环境变量 TEN_ENABLE_PYTHON_DEBUG
和 TEN_PYTHON_DEBUG_PORT
启动应用程序。
然后,您可以将调试器附加到正在运行的进程。 以下是一个配置示例:
同时调试 C++、Go 和 Python 代码
如果您想在 VSCode 中一键启动同时调试 C++、Go 和 Python 代码,您可以执行以下操作:
-
定义一个任务,在附加调试器之前延迟几秒钟:
-
将以下配置添加到
launch.json
文件:
如果您想同时调试 C++ 和 Python 代码,您可以使用复合配置 Mixed Go/Python/C++ (lldb)
。 使用此配置,您可以同时对 C++、Go 和 Python 代码执行断点调试。 但是,变量检查仅支持 C++ 和 Python 代码,而不支持 Go 代码。
如果您想同时调试 Go 和 Python 代码,您可以使用复合配置 Mixed Go/Python
。 使用此配置,您可以同时对 Go 和 Python 代码执行断点调试,并检查 Go 和 Python 代码的变量。
在 Python 应用程序中调试
如果应用程序是用 Python 编写的,这意味着扩展可以使用 Python 或 C++ 编写。
使用 lldb 或 gdb 调试 C++ 代码
您可以使用以下配置来调试 C++ 代码:
使用 debugpy 调试 Python 代码
请参阅上面的部分,了解如何使用 debugpy 调试 Python 代码。 您可以使用以下配置来调试 Python 代码:
同时调试 C++ 和 Python 代码
如果您想同时启动 C++ 和 Python 代码的调试,您可以使用配置 app (Python) (debugpy, launch)
启动应用程序,并使用以下配置将调试器附加到正在运行的进程: