一、概述

  • 在 HarmonyOS 应用调试过程中,查看变量的变化过程是否符合预期结果是一项常用的调试方法。为此 DevEco Studio 提供了调试变量的可视化功能,支持 Java、C/C++ 和 JS 语言的基本数据类型、数值类型的集合和表达式可视化调试,并以Plain(树形)、Line(折线图) 、Bar(柱状图)和Table(表格)的形式呈现。
  • 开发者可以根据这些图形化界面观察当前值、数据类型以及数值的连续变化,通过查看、比对、分析当前变量的变化过程和逻辑关系,判断出当前值(变量)是否符合预期结果,从而迅速有效的定位问题。
  • 变量可视化支持当前值可视化和连续变化值可视化两种方式。

二、当前值可视化

  • 当前值可视化:通过解析 Debugger 当前帧的信息,获取指定变量当前栈帧中的值,以Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)方式进行可视化展示。当前值可视化每次只能观察一个变量,开发者可以根据需要切换变量进行观察。
  • Plain(树形)显示结果示意图:

  • Line(折线图)显示结果示意图:

  • Bar(柱状图)显示结果示意图:

  • Table(表格)显示结果示意图:

  • 支持的数据类型包括基本类型(包括基本数据类型和基本数据类型的包装类)、基本类型的集合和表达式(结果为基本数据类型和基本数据类型的包装类)。其中:
    • Java 支持的呈现形式如下表所示:
数据类型 支持的展示类型
数值类型:byte、short、int、long、float、double基本数值类型及其包装类型等 Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
字符类型:char及其包装类、String等 Plain(树形)和Table(表格)
布尔类型:boolean及其包装类 Plain(树形)和Table(表格)
包含数值类型的集合或一维数组:List、vector、set等 Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
一维对象、键值对map和数值/字符/布尔类型的集合或数组 Plain(树形)和Table(表格)
其它 Plain(树形)
  • C/C++ 支持的呈现形式如下表所示:
数据类型 支持的展示类型
数值类型:int、float、double(或者指定大小的类型如int32_t、int64_t)和signed、unsigned、short、long等的组合 Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
字符类型:char16_t、char32_t、wchar_t等 Plain(树形)和Table(表格)
布尔类型:bool Plain(树形)和Table(表格)
包含数值类型的集合List、vector、set等 Plain(树形)和Table(表格)
包含数值类型的一维数组 Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
一维对象、键值对map和数值/字符/布尔类型的集合或数组 Plain(树形)和Table(表格)
其它 Plain(树形)
    • C/C++ 可视化功能说明:
    • 如果观察的变量在当前断点之后,则会提示“Variable not initialized”。
    • 如果全局静态变量在代码块中未使用,则会提示“error: use of undeclared identifier ‘varName’ ”。
    • 如果在全局非静态变量和局部变量中存在同名变量名,则在添加 C/C++ 全局非静态变量时,需要以“::变量名”方式添加,才能正常观察其值。
    • JS 支持的呈现形式如下表所示:
数据类型 支持的展示类型
数值类型:number Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
字符类型:string Plain(树形)和Table(表格)
布尔类型:boolean Plain(树形)和Table(表格)
一维数值类型的数组:array Plain(树形)、Line(折线图)、Bar(柱状图)和Table(表格)
一维对象、null和undefined Plain(树形)和Table(表格)
其它 Plain(树形)
    • JS 可视化功能说明:
    • JS 语法定义变量不区分数据类型,因此,可视化功能会依据数据结果进行智能识别。例如,array 集合识别为数值集合,则支持 Plain、Line、Bar 和 Table;如果识别为字符集合,则只支持 Plain 和 Table。
    • 针对 LiteWearable 和 Smart Vision 设备,如果变量在调试变量栏的 local 中存在,则可视化结果与 local 中该变量的结果保持一致;如果在 local 中不存在该变量,则显示结果为 Object,如下图中的变量 object,在 local 中存在,则以 local 中的取值为准。

三、连续变化值可视化

  • 连续变化值可视化:通过坐标图的方式,可以同时显示多个变量的连续变化过程,以及变量之间的关系。
  • 连续变化值可视化,只支持基本数值类型的数据可视化。
  • 以 Java 变量可视化为例进行说明:

  • 分析:
    • 在连续变化值可视化中,会呈现所有变量的连续变化结果,其中横坐标为断点命中clock,纵坐标为变量值,从添加观察变量的 clock 开始记录变量值的连续变化。
    • 在图中,圆圈符号表示支持(只有数值类型支持)连续变化值可视化,三角符号表示不支持。
    • 在图中,如果有多个变量的连续变化图,为方便查看其中指定的变量的变化趋势,避免非观察变量带来的影响,可以点击图形上方的变量名,将其设置为灰色,这样就可以在坐标图中隐藏该变量,再次点击灰色的变量名,则在坐标图中呈现出该变量的连续变化值。
    • 横坐标记录范围最大为 100,超过 100 后,则从 1 开始清除前面的数据。

  • 在连续变化值可视化中,可以点击 clock 节点,会自动跳转到对应值的代码行(断点位置),并且会高亮显示代码行和 clock 时钟,如下图所示:

四、变量可视化操作

  • Java、C/C++ 和 JS 调试变量可视化的操作相同。
  • 在待调试的源代码中打上断点,并启动调试功能。
  • 打开变量可视化调试窗口,可通过在编辑器或者调试变量栏窗口中,选中变量,点击鼠标右键,选中“Add to Visual Watches”,自动将该变量添加到可视化窗口中。
  • 查看变量的当前值和连续变化值。

HarmonyOS之变量可视化调试相关推荐

  1. asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念

    新建一个asp.net网站:sqlserver中有如下一张表: 新建一个页面, demo1.aspx:在页面上添加一个GridView控件: demo1.aspx.cs代码: using System ...

  2. VS可视化调试学习总结

    .NET开发人员必备的可视化调试工具 (你值的拥有) http://sanwen8.cn/p/52airn6.html http://www.cnblogs.com/cyq1162/p/6027051 ...

  3. CubeMX+VSCode+Ozone的STM32开发工作流(三)利用Ozone进行可视化调试和代码分析

    neozng1@hnu.edu.cn 本教程的示例代码是笔者参加RoboMaster机甲大师赛为机器人编写的控制器框架,你可以直接克隆仓库,阅读仓库下的Markdown文档获得更好的体验,记得点一个小 ...

  4. R单变量可视化(Histograms、 Index Plots、Time-Series Plots、Pie Charts)

    R单变量可视化(Histograms. Index Plots.Time-Series Plots.Pie Charts) 目录 R单变量可视化(Histograms. Index Plots.Tim ...

  5. r语言折线图_R语言做多变量可视化分析?

    笔者邀请您,先思考: 1 什么是多变量可视化分析? 2 多变量的常用可视化图形有哪些?适合在什么场景下应用 (需要内推数据工作,请加微信:luqin360) 多变量可视化分析是一种利用可视化手段探索多 ...

  6. 超强一代JupyterLab发布,可视化调试、中文显示、简单交互界面

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习> ...

  7. R统计绘图-corrplot热图绘制细节调整2(更改变量可视化顺序、非相关性热图绘制、添加矩形框等)

    上一篇文章推送的是怎样调整corrplot热图的可视化参数,以修改字符和图例位置,数据可视化形式和字符小大和颜色等这篇是一个补充部分,记录怎样修改参数以变量排序方式和突出部分数据.本流程还是使用R统计 ...

  8. [伊利丹·怒风] Unity3D 绘制矩形(DrawRect)及可视化调试

    背景 由于要做Native2D的A* 算法寻路,所以必须进行Scene的网格划分,而进行了网格划分需要进行可视化的调试,需求就是这个逻辑.具体是实现如下效果,这里绿色的区域就是角色不能进入的区域(或者 ...

  9. VisualGDB可视化调试STL

    本文中的VisualGDB开发调试环境为Visual Studio 2015加VisualGDB 5.4R12版本,并且使用了笔者改进过的STL可视化调试库CSTLTypeVisualizer.dll ...

最新文章

  1. 数据蒋堂 | JOIN延伸 - 维度其它应用
  2. 2021年春季学期-信号与系统-第二次作业参考答案-第一小题
  3. php链接数据库实行增删查改_利用PHP连接数据库——实现用户数据的增删改查的整体操作实例...
  4. 实验一 线性表、堆栈和队列的操作与实现
  5. 关于PID的如何修改的FAQ
  6. ES6新特性之转码器(UmiJS入门)
  7. SAP WebClient UI和business switch相关的逻辑介绍
  8. flashpaper打印机没有被正确安装_条码打印机有哪些常见问题
  9. 浏览器端的九种缓存机制介绍
  10. c语言的简单程序设计实验报告,工程学院C语言程序设计实验报告
  11. [原创]Scala学习:流程控制,异常处理
  12. MySQL中会用到age字段的索引_MySQL学习笔记(四):正确使用索引(二)
  13. 大一c语言选择题库及答案,c语言选择题(大一c语言编程题库)
  14. ​「5G消息」的最新消息
  15. 尚硅谷-宋红康-JVM上中下篇完整笔记
  16. linux防火墙reject,linux 防火墙配置与REJECT导致没有生效问题(示例代码)
  17. 敏捷开发 — Story/Defect
  18. 4. Python函数
  19. 二叉树--二叉平衡树
  20. 老宇哥带你玩转 ESP32:04 串口玩起来是真方便

热门文章

  1. Win10 UWP开发:摄像头扫描二维码/一维码功能
  2. 20145236《信息安全系统设计基础》第0周学习总结
  3. Apple 预计于内华达州雷诺市再盖一个数据中心
  4. 从人人网抓取高校数据信息,包括,省份 - 高校 - 院系 (提供最终SQL文件下载)...
  5. [存档]Div+Css布局中经常使用的小技巧合集
  6. 深入掌握JMS(六):消息头
  7. dailybuild
  8. 維護webflow:request、session、application、page
  9. android menu 小红点,Android自定义ActionProvider ToolBar实现Menu小红点
  10. php72w redis,docker php7安装php-redis