首页 > 其他分享 >ARM DS-5 断点设置及常用Debug 命令

ARM DS-5 断点设置及常用Debug 命令

时间:2024-04-11 11:35:24浏览次数:26  
标签:0xDEADBEEF debug msh Debug i2c 断点 DS

1.1 DS-5 Debug 方法梳理

通常在调试过程中需要打断点来进行单步调试,这个时候可以按照下面步骤来进行:

  • 在使用 DS-5 Debug 之前需要先 load 所编译的 elf 文件:

     设置好路径:

    1.2.1 DS-5 设置断点 Debug

    在上面完成 elf 文件的 load 及 路径设置后,我们就可以使用DS-5进行设置断点进行调试了。下面以 在 i2c_debug.c 中的 i2c_debug函数中

    简单设置一个断点来介绍:

    1.2.2 DS-5 常用 Debug 命令

1)查看寄存器命令

  1. info registers
  2. R0 0x200C4EDE
  3. R1 0x000B6E24
  4. R2 0x00000067
  5. R3 0x00000073
  6. R4 0xDEADBEEF
  7. R5 0xDEADBEEF
  8. R6 0xDEADBEEF
  9. R7 0x200C5F58
  10. R8 0xDEADBEEF
  11. R9 0xDEADBEEF
  12. R10 0xDEADBEEF
  13. R11 0xDEADBEEF
  14. R12 0x00000008
  15. SP 0x200C5F58
  16. SP_MAIN 0x2001F4C8
  17. SP_PROCESS 0x200C5F58
  18. LR 0x0001970F
  19. PC 0x0005D258
  20. xPSR 0x81010000 Nzcvq_T_inactive_0
  21. PRIMASK 0x00000000
  22. BASEPRI 0x00000000
  23. FAULTMASK 0x00000000
  24. CONTROL 0x00000006


2)查看 memory/寄存器命令

  1. x/w 0x56020000
  2. 0x56020000: 0x00000000

3)查看函数栈

info stack
#0 rt_strcmp(cs = 0x200C4EE1 "get", ct = 0xB6E27 "set") at kservice.c:468
#1 i2c_debug_mode_help(argc = 5, mode = 0x200C4EDE "i2cget") at i2c_debug.c:64
#2 i2c_debug(argc = 5, argv = (char**) 0x200C601C) at i2c_debug.c:89
#3 _msh_exec_cmd(cmd = 0x200C4EDE "i2cget", length = 22, retp = (int*) 0x200C6078) at msh.c:342
#4 msh_exec(cmd = 0x200C4EDE "i2cget", length = 22) at msh.c:402
#5 finsh_thread_entry(parameter = (void*) 0x0) at shell.c:722
#6 _rt_thread_exit() at thread.c:105


backtrace -5
#2 i2c_debug(argc = 5, argv = (char**) 0x200C601C) at i2c_debug.c:89
#3 _msh_exec_cmd(cmd = 0x200C4EDE "i2cget", length = 22, retp = (int*) 0x200C6078) at msh.c:342
#4 msh_exec(cmd = 0x200C4EDE "i2cget", length = 22) at msh.c:402
#5 finsh_thread_entry(parameter = (void*) 0x0) at shell.c:722
#6 _rt_thread_exit() at thread.c:105

4)内存写操作
memory set 0x66020000 32 0x1
x/w 0x66020000
0x66020000: 0x00000001

标签:0xDEADBEEF,debug,msh,Debug,i2c,断点,DS
From: https://www.cnblogs.com/FireLife-Cheng/p/18128649

相关文章

  • DDS协议测试实践及问题分析
    在上一篇文章中,我们对DDS协议测试的策略、方法和工具进行了详细的介绍。本文旨在进一步探讨如何利用这些方法和工具搭建实际的测试环境,并执行测试,进而揭示可能遇到的各类问题。  被测协议栈简介  在本次测试中,被测协议栈选择了一个在汽车行业内广泛使用的开源DDS产......
  • ARM Coresight DS-5 系列 2 - ARM Cortex-M DS-5 Trace 使用
    1.1ARMDS-5Trace接着上文完成ARMDS5的环境配置之后,这篇文章介绍如何使用ARMDS5(DS-5)进行DATATrace和指令Trace1.1.1ETM数据Trace和指令Trace1)新建一个"Debugger"core连接,创建步骤如下图所示,下图创建的是一个名为“Trace_Demo”的debugercore连接,需要注......
  • 在Intellij IDEA中使用Debug
    Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。所以学习下如何在IntellijIDEA中使用好Debug,主要包括如下内容:......
  • dsc(2节点)备份然后恢复到单机
    环境:OS:Centos7DB:DMV8 1.dsc备份在其中一个节点上备份数据和归档日志disqlSYSDBA/SYSDBAbackupdatabasefullbackupset'/dmdbms/backup/fullbak_20240411';backuparchivelogalldeleteinputto"archbak_20240411"backupset'/dmdbms/backup/archbak_2024041......
  • WDS+MDT网络启动自动部署windows(四)正确引导安装系统
    简介我也不知道为什么前面做实验为什么启动就BOOT/BCD,但是经过不断的实验,还是找到了正确的安装启用顺序。当然我有空也会再验证为什么在导入镜像前启动WDS,并尝试引导会导致报错BOOT/BCD。处置方法其实就是顺序。安装完wds服务器,安装DHCP,WDS,配置DHCP,配置WDS,导入启动镜像,导入安......
  • CF158C Cd and pwd commands 题解
    题面。大模拟,但是有坑点。思路依照题意模拟。用一个字符串\(out\)记录在进行了\(i\)次操作后如果要输出输出的东西,字符串\(in\)和\(s\)来分别记录输入的操作及操作类型。由于输出的第一个字符一定是/,所以可以直接将\(out\)的初始化定为out="/"。这样子可以省去......
  • [DS 小计] 点分树
    点分树是一个处理树上距离的优秀DS。它可以快速处理关于一些树上距离问题。引入我们知道,我们在做点分治的时候,每次找到中心,然后将重心所有的相连的边断开,处理子问题。时间复杂度是\(O(n\logn)\)的。但是有些题目让我们搞强制在线,又要求距离为\(k\)的所有和,这时候点分树......
  • NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比
    NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(SpidervsBIRD)全面对比优劣分析[Text2SQL、Text2DSL]Text-to-SQL(或者Text2SQL),顾名思义就是把文本转化为SQL语言,更学术一点的定义是:把数据库领域下的自然语言(NaturalLanguage,NL)问题,转化为在关系型数据库中可以执行的......
  • 911-基于6U VPX的光纤图像DSP实时计算平台
    一、系统组成   该平台基于风冷式的6U6槽VPX图像处理平台,包括:计算机主板、计算机主板后板、存储板、图像信号处理板、图像信号处理板后板、图像光纤转接板、机箱背板及机箱组成。图1为系统背板结构示意图:  图1:系统背板互联示意图 备注:上图槽5板卡为太速自研的......
  • WDS+MDT网络启动自动部署windows(三)UEFI & BIOS 双PXE引导
    简介:我们可以通过调整启动文件来兼容不同的硬件(UEFI&BIOS),能否不手动调整呢?自动调整也是可以的。本来是是想将DHCP放在H3C5500上的,但是咨询过H3C的售前顾问后,没有任何一个型号支持这个功能,前面已经折腾过自动识别客户端类型,发送不同的启动文件了。为了更好的完成这个系列文章......