HarmonyOS 鸿蒙Next ArkTS代码调试,使用断点的时候,如何查看十六进制视图

HarmonyOS 鸿蒙Next ArkTS代码调试,使用断点的时候,如何查看十六进制视图 问题描述:使用断点调试的时候,如何查看十六进制视图,目前只找到Native代码调试时,可以查看十六进制视图,ArkTS代码调试支持查看十六进制视图吗?有可以直接使用、不用自己写代码进行转换的工具吗,若想让uint8array数组显示16进制数据,可以使用相同的方式吗

4 回复

开发者您好,关于您当前ArkTS调试支持查看十六进制视图的需求,您方便的话,麻烦您补充提供下以下信息: 请问您是在什么样的业务场景中使用该能力,交互流程是怎样的,在ArkTS调试直接查看十六进制视图时没有相关方案?方便说明能力不满足可能带来的影响:什么时间用到?是否高频?有无三方库可以做到?若提供该能力,是否会造成大工作量返工?请您注意提供的内容不要包含您或第三方的非公开信息,如给您带来不便,敬请谅解。

更多关于HarmonyOS 鸿蒙Next ArkTS代码调试,使用断点的时候,如何查看十六进制视图的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


当程序停在断点时,您不需要修改业务代码,直接在调试工具栏中操作:

1、点击调试面板栏上的 计算器图标(Evaluate Expression),或者按快捷键 Alt + F8(Mac 为 Option + F8)。

2、在弹出的输入框中,直接复制粘贴以下一句话代码(假设你要查看的变量名叫 myBuffer,且它是一个 Uint8Array):

Array.from(myBuffer).map(b => b.toString(16).padStart(2, '0')).join(' ')

3、点击 Evaluate(计算),下方的 Result 面板就会直接打印出整齐的十六进制字符串(例如:“00 0a ff 1b …”)。

提示: 如果您的变量是 HarmonyOS 的 @ohos.buffer 类型对象,那就更简单了,直接输入: myBuffer.toString(‘hex’) 即可。

在ArkTS调试中查看十六进制视图,可在DevEco Studio的调试面板操作。当程序在断点处暂停时,在Variables或Watches窗口找到目标变量。右键点击该变量,从上下文菜单中选择“View as Hexadecimal”或类似选项。部分版本可能需在变量值显示区域直接点击进制切换图标(如显示“Dec”处)手动切换至十六进制(Hex)模式。

在HarmonyOS Next的ArkTS调试中,目前DevEco Studio的调试器界面没有为ArkTS变量(如Uint8Array)提供直接的、图形化的“十六进制视图”窗口,这与调试C/C++ Native代码时能看到的专用内存查看器不同。

核心方法与建议:

  1. 在“变量”或“监视”窗口中直接查看

    • 当调试暂停在断点时,在 “变量(Variables)”“监视(Watches)” 窗口中,找到你的 Uint8Array 变量。
    • 展开该变量,你会看到其 buffer (ArrayBuffer) 属性,继续展开 buffer,通常可以看到以十进制或十六进制格式列出的数组元素。DevEco Studio可能会直接以十六进制形式显示,如果显示为十进制,你可以:
      • 右键点击 该变量或具体的值。
      • 在上下文菜单中查找 “数值显示格式(Numeric Format)” 或类似选项,然后选择 “十六进制(Hexadecimal)”。这是最接近“直接查看”的方式,无需编码。
  2. 使用“计算表达式(Evaluate Expression)”功能

    • 在调试暂停时,打开 “计算表达式” 窗口(通常快捷键是 Alt + F8 或通过菜单打开)。
    • 输入一个简单的转换表达式来即时查看十六进制格式,例如:
      // 假设你的变量名是 `data`
      Array.from(data).map(b => b.toString(16).padStart(2, '0')).join(' ')
      
    • 执行后,结果会以十六进制字符串形式显示(如 “1a 2b 3c”)。这相当于一个内置的、无需提前编写工具代码的转换工具。
  3. 针对Uint8Array的通用方式

    • 你提到的想让 Uint8Array 显示为十六进制数据,上述第1点和第2点方法完全适用。在变量窗口查看其底层缓冲区,或使用计算表达式进行即时转换,是最直接的方法。
    • 无需自己预先编写额外的转换工具函数,除非你需要将这种查看功能频繁集成到应用代码本身中。

总结: ArkTS调试时,查看变量(特别是 Uint8Array)的十六进制数据,主要依赖调试器自身的变量查看器和计算表达式功能。通过更改变量显示格式或执行一个简单的转换表达式,即可实现目标,无需寻找独立的外部工具或编写额外的调试工具代码。

回到顶部