前置要求
BMC Studio版本不低于1.2.0
BMC Studio最新版本获取方法:
-
BMC Studio当前已纳入环境初始化和bingo自升级流程,在manifest下运行init.py脚本或者运行bingo upgrade即可将BMC Studio更新到最新发布版
-
参考社区软件市场文档进行安装
BMC Studio插件版本不低于0.0.5
BMC Studio插件目前需要以文件方式安装,安装过程参考软件市场文档
Qemu已安装
开发环境初始化过程会安装Qemu,无需手动安装
1. 通过BMC Studio结合Qemu进行代码调试
启动BMC Studio进程
执行bingo studio -b即可以后台方式启动BMC Studio,进入BMC Studio页面,选择右上角仿真管理进入连接管理页面
配置Qemu连接
进入连接管理页面后,选择配置->社区镜像->openUBMC 点击启动,即可从社区获取Qemu镜像,启动Qemu,然后需要等待Qemu启动完成
Qemu启动后,点击连接,输入信息后即可建立与Qemu的连接,已经启动Qemu后点击“BMC登陆”即可开启Qemu的BMC页面
进行代码调试
在已经建立Qemu连接的情况下,可以配合BMC Studio的VsCode插件实现代码调试功能,请确保BMC Studio插件已安装,且 BMC Studio已连接到Qemu,否则调试按钮不会在VsCode页面出现
此时通过VsCode在openUBMC的组件代码仓下打开新窗口,以北向接口定制开发为例,打开rackmount文件夹,点开任意北向接口定制文件,即可在右上角看到两个图标,分别是文件级调试和组件级调试
点击文件调试按钮后,文件会自动生效到Qemu,并重启对应子系统进程,等待进程重启完成后即可连接Qemu查看调试结果;
点击组件调试按钮后,BMC Studio会自动进行一次bingo build操作,并将conan制品中的文件替换到Qemu环境中,重启对应子系统,该方式适合代码修改涉及多个文件,或者修改C语言代码的情形
修改web_backend的接口,并启动调试,以Login接口的版权信息为例,修改后点击单文件生效:
等待interface进程重启完毕:
重启后,接口信息已发生更改
选择组件调试,由于需要编译组件,时间会稍微长一些:
等待子系统重新拉起…此时耗时可能更长
组件调试完成,页面发生变化
2. 通过BMC Studio进行Qemu或者真机环境的资源协作接口和数据库调试
除了代码调试能力外,BMC Studio的web页面支持对资源协作接口进行可视化查看和调试,以及对数据库信息进行查询,具体如下
连接到任意Qemu环境或者真机环境
连接到BMC环境后,选择右上角的仿真调试
资源协作接口查看与调试
由于组件数量较多,资源协作接口会在后台持续按照组件更新,可以点击刷新按钮刷新
以资源/bmc/kepler/Managers/1/BMC为例,根据路径找到对应资源,点击后即可展开资源详情,内容按照接口进行折叠
资源协作接口属性实时修改
BMC Studio基于mdbctl命令封装了属性设置功能,点击属性框即可修改属性,修改完成后点击其他任意处,属性修改会自动生效,例如将openUBMC改为MyBMC
完成修改后,即可进入命令行或者页面查看资源协作接口的修改结果:
需要注意的是,不是所有属性都支持修改,部分对象不在mdbctl命令支持范围内,则无法生效
RPC一键调用
BMC Studio还简化了RPC调用过程,开发者只需要关注调用参数即可,无需关心完整命令的拼接,我们会帮您自动完成,展开接口,点击选择需要调用的RPC,在参数框中输入参数信息,点击右侧调试按钮,就会自动将下方拼接好的命令在BMC环境上执行,并返回结果,结果内容与命令行调用一致
数据库信息查看
点击仿真调试窗口上方的数据库页签即可查看全部组件的数据库信息,每个组件下的数据库按照不同的持久化类型分类,点击对应的表即可查看数据表内容
Q&A:
- 在线调试能力支持真机吗?
答: 目前暂时还未支持哦,虽然方案上可行,但由于代码调试存在破坏环境的风险,目前暂时仅支持基于Qemu的调试,Qemu每次启动都会重置,调试导致环境出现问题后只需要重启Qemu即可
- 哪些文件支持调试呢?
答:确实不是所有文件都支持调试,主要是/opt/bmc/apps/组件名路径下的lua文件,和北向接口配置文件,以及/opt/bmc/sr路径下的内置CSR文件,mdb_interface这种模型定义仓暂时不支持直接通过VsCode调试,建议通过出整包的方式调试
















