vscode MI engine

VSCODE MI 引擎是什么


MI 引擎并不是 VS Code 本身支持的功能,而是由 C/C++ 插件提供的。卸载了 C/C++ 插件 , MI 引擎就不存在了
	C/C++ 插件 中的 cppdbg 是使用 MI 引擎的一个客户端
	同时,C/C++ 插件 提供了 MI引擎


MI 引擎是由 Microsoft 开发的用于与调试器交互的标准接口,通常用于调试 C/C++ 代码。
	
	如果您要调试 Python 代码,可以使用 Python 插件提供的调试器。
	Python 插件使用 Python 调试器协议(Python Debugger Protocol,简称 PDP)来与调试器进行通信,与 MI 引擎不同。
	因此,在调试 Python 代码时,您不需要 MI 引擎。

C/C++ 插件 中的 cppdbg 使用 MI 引擎来与调试器进行通信,以实现调试功能。
	type: cppdbg 是一种使用 MI 引擎的调试器类型,它可以与 GDB 或 LLDB 等调试器一起使用。
	C/C++ 插件中提供了两种调试器类型,分别是 type: cppdbg 和 type: miDebugger。
	type: cppdbg 使用 MI 引擎进行通信
	type: miDebugger 直接使用 GDB/LLDB 的 MI 接口进行通信。
	两种调试器类型的主要区别在于通信方式不同,但它们都可以实现相同的调试功能。


MI 引擎的源代码托管在 GitHub 上,https://github.com/microsoft/miengine
	如果您想了解正在使用的 MI 引擎版本,您可以在 VS Code 中打开调试器控制台,并输入 version 命令,它将显示当前正在使用的 MI 引擎版本。


MI 引擎做了什么



下面是有关 launch.json 文件中 customLaunchSetupCommands 命令的详细描述:

	第一阶段

		1.
			当您在 VS Code 中启动调试器时,VS Code 会读取 launch.json 文件,并将其传递给 MI 引擎。
		2.
			MI 引擎会解析 launch.json 文件,并根据其中的配置启动 GDB 进程。
			GDB 进程 启动之后,什么命令都不加载.等待 MI 引擎的 请求
		3.
			MI 引擎会将 customLaunchSetupCommands 中的所有命令发送给 GDB 进程。
			同时会加一些默认命令
				加载符号表
				连接服务器
				continue
		4. 
			GDB 进程会接收到这些命令,并按照顺序执行它们。这些命令可以用于配置 GDB,例如设置断点、加载符号文件等。

	第二阶段
		5. 
			在执行完所有的 customLaunchSetupCommands 命令之后,GDB 进程会等待 VS Code 发送调试命令。
			当您在 VS Code 中执行调试命令时,VS Code 会将其转发给 MI 引擎,MI 引擎会将其转发给 GDB 进程。
			GDB 进程会接收到调试命令,并根据其执行相应的操作。
			例如,如果您执行 continue 命令,则 GDB 进程会继续执行目标程序直到下一个断点或程序结束。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值