使用gdb调试C程序

embedded/2024/12/28 5:41:16/

1.程序样例

test.c:

#include <stdio.h>int main () {    unsigned long long int n, sum;    n = 1;    sum = 0;    while (n <= 100) {        sum = sum + n;        n = n + 1;    } return 0;
}

2.编译程序

gcc -g test.c -o test

3.运行调试

gdb test --silent

4.调试程序命令

①添加断点:
b num
例如:b 6
②全速运行
r
③查看变量
p 变量名
④当变量更新,程序暂停运行
watch 变量名
在这里插入图片描述
⑤为断点添加条件,条件满足,才暂停程序
condition 1 n>10
备注:1是断点序号
在这里插入图片描述
⑤查看断点
info b
⑥删除断点
d 断点序号或clear 断点序号
⑥查看程序
l或list
⑦继续运行
c或continue
⑧单步运行
step或next(简写n)
next命令会将函数调用视为一行代码执行,而step命令会在遇到函数时进入其内部
⑨until或u
快速执行循环体,并运行至循环体外停止。


http://www.ppmy.cn/embedded/149372.html

相关文章

基于GEE云计算、多源遥感、高光谱遥感技术蓝碳储量估算;红树林植被指数计算及提取

海洋是地球上最大的“碳库”,“蓝碳”即海洋活动以及海洋生物&#xff08;特别是红树林、盐沼和海草&#xff09;能够吸收大气中的二氧化碳&#xff0c;并将其固定、储存在海洋中的过程、活动和机制。而维持与提升我国海岸带蓝碳潜力是缓解气候变化的低成本、高效益的方案&…

Spring API 接口加密/解密

API 接口加密/解密 为了安全性需要对接口的数据进行加密处理&#xff0c;不能明文暴露数据。为此应该对接口进行加密/解密处理&#xff0c;对于接口的行为&#xff0c;分别有&#xff1a; 入参&#xff0c;对传过来的加密参数解密。接口处理客户端提交的参数时候&#xff0c;…

插入排序解析:时间复杂度、空间复杂度与优化策略

引言 在众多经典排序算法中&#xff0c;插入排序以其简单易懂、实现简洁而受到广泛应用。尽管它在大规模数据排序中的效率较低&#xff0c;但在小数据集或数据几乎有序的情况下&#xff0c;插入排序的表现却往往超出预期。因此&#xff0c;了解插入排序的工作原理和适用场景&a…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司&#xff08;OSCG&#xff09; 概述 在本文中&#xff0c;我们将深入研讨如何于 Odoo 18 中构建 JavaScript&#xff08;JS&#xff09;对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

GraphQL 全景攻略:从基础概念到生产落地的技术指南

一、概念与背景 1. 传统 REST 与 GraphQL 的差异 在讨论 GraphQL 之前&#xff0c;有必要先回顾一下在业界被广泛采用的 REST&#xff08;Representational State Transfer&#xff09; 模式。REST 通常通过“资源”概念将后端服务抽象成 GET/POST/PUT/DELETE 等接口。然而&a…

EXCEL中给某一列数据加上双引号

""""&A2&""":["""&B2&"""]," 效果&#xff1a;

SpringBoot(二)—— yaml配置文件

接上篇&#xff0c;我们对SpringBoot有了基本的了解&#xff0c;接下来探究配置文件。 目录 二、配置文件 1. SpringBoot热部署 2. 配置文件 2.1 配置文件的作用 2.2 YAML 配置文件 2.3 YAML 与 XML 比较 3. YAML语法 3.1 键值对 3.2 值的写法 3.3 对象/Map&#x…

mysql进阶

存储引擎 MySQL体系结构&#xff1a; 存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表而不是基于库的&#xff0c;所以存储引擎也可以被称为表引擎。 默认存储引擎是InnoDB。 相关操作&#xff1a; -- 查询建表语句 show create table ac…