10 Debug功能及方法简述

news2024/9/25 17:21:09

常见的Debug方法

原文链接:MDK5 Debug调试方法总结_keil5debug调试_小z不会累~的博客-CSDN博客

连接好硬件DAP之后,需要进行一些设置

开始仿真调试

Debug调试按钮分别对应的功能

  • 按钮1->reset复位按钮
  • 按钮2->run按钮,程序运行按钮
  • 按钮3->stop按钮,程序停止运行
  • 按钮4->步进按钮,指步进函数内部运行
  • 按钮5->步过按钮,步过函数执行,并不是不执行当前函数,而是直接执行完当前函数,直接指向下一条指令。
  • 按钮6->步出按钮,若是程序正在函数内部执行,点击此按钮,直接跳出函数,指向下一条指令。

  • 按钮7->运行至当前行,图中黄色表指的是程序运行的当前位置,蓝色标指的是光标指向的那一行指令,点击按钮7可以将程序运行值蓝色箭头指向的位置。
  • 按钮8->指示程序当前的停止位置,点击黄色按钮,可以跳转到程序运行的停止位置。

断点:顾名思义就是用来设置程序停止的地方

  • 按钮1->设置断点
  • 按钮2->取消断点
  • 按钮3->使能/失能断点
  • 按钮4->删除所有断点

  • 窗口1->命令窗口,可以输入一些调试相关的指令,一般不怎么使用。
  • 窗口2->反汇编窗口,可以查看当前行代码反汇编之后的代码,不常用
  • 窗口3->标志窗口,展示程序中使用的一些变量类型,不常用
  • 窗口4->寄存器窗口,用来指示CPU的工作状态
  • 窗口5->调用栈以及函数所在位置的窗口,我们的函数就是不断被压入栈里的,可以利用窗口5查询每步程序运行,栈压入操作,同时也可以通过这个窗口查看各个函数所使用的一些成员变量,非常好用,这是我们在调试过程中经常使用到的一个窗口
  • 窗口6->watch监控窗口,可以添加一些想要监视的变量,这个也是经常会使用到的一个窗口,使用方式:1、直接将变量拖拽到监控窗口中,另一种是点击变量右键Add to watch1/watch2
  • 窗口7->memory窗口,它是用来监控内存的,可以用它来查看内存存储数据的变化
  • 窗口8->串口窗口,功能类似于一个虚拟的调试助手,需要特殊的仿真器支持,不常用
  • 窗口9->逻辑分析仪,系统分析仪,也是需要特殊的仿真器支持,不常用
  • 窗口10->Trace Exceptions窗口,同样是需要特殊的仿真器支持,不常用
  • 窗口11->调试中最常使用到的窗口,对应着CPU的外设以及片上外设寄存器的查看窗口

这里插入一个问题,窗口11(System Viewer)无法使用的情况

如果对应寄存器的位没有动态跟随程序运行的话

当观察外设现象不符合预期的时候,而这个时候又排查不出错误的时候,可以通过监控对应外设所对应寄存器的状态,来排查原因,这在实际Debug调试中是经常用到的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/688972.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Keil V5版本开发STM32缺少PACKDFP解决办法 (Error Flash Downloadfailed-“Cortex-M7)

Keil V5版本开发STM32缺少PACKDFP解决办法 Error Flash Downloadfailed-“Cortex-M7 这个网址里有各个固件包的最新版,下载速度快,滋溜一下就下好啦 固件包

CISP-PTE-考前综合题记录

CISP-PTE-考前综合题记录 http://10.1.10.71/(文件上传传不上去) 获取key6 端口扫描只扫到80端口开放 输入用户名密码,抓包 对Authorization Basic的值进行base64解码,为爆破做准备 猜测用户名为admin,所有留下admin:这一段…

设计模式第15讲——模板模式(Template)

目录 一、什么是模板模式 二、角色组成 三、优缺点 四、应用场景 4.1 生活场景 4.2 java场景 五、代码实现 5.0 代码结构 5.1 OrderFood——抽象类(Abstract) 5.2 具体类(Concrete Class) 5.3 testTemplate 六、总结…

JMeter工具使用

1. Jmeter设置语言为简体中文 2. Jmeter添加线程组 3. Jmeter添加http请求 4. Jmeter添加数据统计结果 5. JMeterAddress Already in use 错误解决 windows本身提供的端口访问机制的问题。 Windows提供给 TCP/IP链接的端口为1024-5000,并且要四分钟来循环回收他们。…

PostgreSQL

一. PostgreSQL 简介 1 资料来源: 中文手册:http://www.postgres.cn/docs/14/index.html 知乎链接:https://www.zhihu.com/column/c_1452567507496689664 视频链接:https://www.bilibili.com/video/BV1uW4y1m7pD/?spm_id_frompa…

win下docker安装和使用

安装 下载安装包:https://docs.docker.com/desktop/install/windows-install/ 下载 Linux 内核更新包 适用于 x64 计算机的 WSL2 Linux 内核更新包 解决docker下载镜像速度慢问题 阿里云镜像加速器:https://阿里ID.mirror.aliyuncs.com 复制上面镜像…

轮廓检测,高斯模糊及功能

轮廓检测 一、实验介绍 1. 实验内容 本实验将学习轮廓检测及功能。 2. 实验要点 生成二进制图像来查找轮廓找到并画出轮廓轮廓特征边界矩形 3. 实验环境 Python 3.6.6numpymatplotlibcv2 二、实验步骤 1 导入资源并显示图像 import numpy as np import matplotlib.py…

rabbitmq第四课-RabbitMQ高可用集群架构详解以及生产环境最佳实践

一、如何保证RabbitMQ服务高可用 1、RabbitMQ如何保证消息安全 之前通过单机环境搭建起来的RabbitMQ服务有一个致命的问题,那就是服务不稳定的问题。如果只是单机RabbitMQ的服务崩溃了,那还好,大不了重启下服务就是了。 但是如果是服务器的…

MySQL 逻辑备份mysqldump

逻辑备份mysqldump MySQL 自带的逻辑备份工具。可以保证数据的一致性和服务的可用性原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些…

红帽“背叛”开源:限制RHEL源码访问,突袭下游发行版

红帽决定停止公开提供其企业发行版 Red Hat Enterprise Linux (RHEL) 源代码。 从现在开始,CentOS Stream 将成为公共 RHEL 相关源代码发布的唯一仓库,付费客户和合作伙伴可通过 Red Hat Customer Portal 访问到源代码。 CentOS Stream 是由 Red Hat 公…

UNIX环境高级编程——网络IPC:套接字

16.1 引言 本章将考察不同计算机&#xff08;通过网络相连&#xff09;上的进程相互通信的机制&#xff1a;网络进程间通信&#xff08;network IPC&#xff09;。 16.2 套接字描述符 为创建一个套接字&#xff0c;调用socket函数&#xff1a; #include <sys/socket.h&g…

图像增强之图像锐化(边缘增强)之robot算子

目录 note code test note matx (-1,0;1,0) maty (0,-1;1,0) code // 图像增强之图像锐化(边缘增强)之robot算子 void GetRobot(Mat& robotX, Mat& robotY) {robotX (Mat_<int>(2,2) << -1,0,1,0);robotY (Mat_<int>(2,2) << 0,-1,1…

bug汇集-二

1、多个表格 设置 只让当前选中行对应的表格行--高亮 问题&#xff1a;只能设置一个表格高亮&#xff0c;选中一个表格某行高亮&#xff0c;另一行就不高亮 解决&#xff1a; 1、在 表格属性配置里&#xff0c; 把 current-changecurrentChange 写成 current-change"…

多账号矩阵管理系统技术嫁接开发源代码

多账号矩阵管理系统技术嫁接开发源代码 文章目录 一、剪辑部分源代码开发示例二、发布投放部分源代码示例 1.账号绑定一码多扫技术应用开发代码示例2.定时挂载投放源代码示例 一、剪辑部分源代码开发示例 创建工程项目 */ public function createProjectAction() { …

windows电脑如何设置通电自启

原来电脑是需要摁启动摁扭才能开机&#xff0c;现在需要给服务器设置成通电自启 开机后摁del或者F2键进入bois设置&#xff0c;再摁F7进入高级设置&#xff0c;进入Advanced---APM Configuration 进入后 Restore AC Power Loss选择开启。

Selenium教程__获取元素文本、属性值、尺寸(8)

本文将介绍如何使用Selenium来获取元素的文本内容、属性值和尺寸&#xff0c;并展示一些实际应用场景。 学习本文内容将能够轻松地获取并利用元素的相关信息&#xff0c;从而更好地进行元素的验证、操作和断言。 from selenium import webdriverdriver webdriver.Chrome() …

【软考网络管理员】2023年软考网管初级常见知识考点(16)-网络安全与病毒

涉及知识点 网络安全要素&#xff0c;DDOS攻击&#xff0c;网络安全威胁&#xff0c;常见的病毒类型&#xff0c;软考网络管理员常考知识点&#xff0c;软考网络管理员网络安全&#xff0c;网络管理员考点汇总。 原创于&#xff1a;CSDN博主-《拄杖盲学轻声码》&#xff0c;获…

RabbitMQ学习笔记3(小滴课堂)RabbitMQ的安装和web 管控台的讲解

在安装之前我们先要启动docker: docker pull rabbitmq:management 我们现在去运行rabbitmq&#xff1a; 我们可以看到rabbitmq的日志&#xff1a; 可以用之前学过的命令去查看已经运行的容器。 账号admin 密码password 就能登录进去了&#xff1a; 我们可以加一个虚拟主机。

matlab绘制指定球心坐标及半径球面

[x,y,z]sphere(40);%先绘制单位球面&#xff0c;后面都是对此基础上进行更改完成预期的球面&#xff0c;40为分割球面的块数 r2;%球面半径 xx*r;yy*r;zz*r; xx1;yy1;zz1;%球心坐标 axis equal; surf(x,y,z);%绘图axis tight;% 坐标轴样式 square shading flat;% 着色方式light(…

分布式锁工具 Redisson,贼香!!

一、Redisson概述 二、分布式锁 三、Redisson分布式锁 四、RLock 五、公平锁 六、总结 一、Redisson概述 什么是Redisson&#xff1f; Redisson是一个在Redis的基础上实现的Java驻内存数据网格&#xff08;In-Memory Data Grid&#xff09;。它不仅提供了一系列的分布式…