jlink_gdb_server

本文详细介绍了如何在Windows环境下通过Segger JLink GDB Server连接到设备,并在WSL中使用GDB进行程序调试。调试过程中涵盖了设置断点、查看寄存器、监控变量变化、控制程序执行等关键操作,是嵌入式开发者的实用教程。
摘要由CSDN通过智能技术生成

gdb、gdb_server、jlink关系如下
原文
https://blog.csdn.net/qq_40833810/article/details/106713462
在这里插入图片描述

1 windows端打开segger jlink GDB Server,如下设置
在这里插入图片描述
在这里插入图片描述
此时jlink已经连上,gdb等待连接
2.在wsl中,如下命令,连上gdb
…/…/…/buildtools/toolchains/gcc-arm-none-eabi/bin/arm-none-eabi-gdb nuttx
在这里插入图片描述
3 命令

c
使程序继续往下运行,直到再次遇到断点或程序结束

ctrl + c
使正在运行的程序停下来

b
设置断点,例如b 行号/函数名
b i=1 当i等于1时停止

info b
查看断点

info r
查看cpu内核寄存器

info locals
查看当前函数中各局部变量的值

d 断点号
删除断点

p 表达式
其中“表达式”可以是任何当前正在被测试程序的有效表达式,比如当前正在调试C语言的程序,那么“表达式”可以是任何C语言的有效表达式,包括数字,变量甚至是函数调用。

backtrace [-full] [n]
当前调试环境中所有栈帧的信息
n:一个整数值,当为正整数时,表示打印最里层的 n 个栈帧的信息;n 为负整数时,那么表示打印最外层 n 个栈帧的信息;
-full:打印栈帧信息的同时,打印出局部变量的值。

watch 变量/表达式
监控变量或表达式的变化,只有当被监控变量(表达式)的值发生改变,程序才会停止运行
类似的还有
rwatch 命令:只要程序中出现读取目标变量(表达式)的值的操作,程序就会停止运行;
awatch 命令:只要程序中出现读取目标变量(表达式)的值或者改变值的操作,程序就会停止运行。
但是rwatch和awatch需要硬件支持

set var key = value
设置变量key的值为value

layout:用于分割窗口,可以一边查看代码,一边测试:
layout src:显示源代码窗口
layout asm:显示反汇编窗口
layout regs:显示源代码/反汇编和CPU寄存器窗口
layout split:显示源代码和反汇编窗口
layout next:切换到下一个布局
layout prev:切换到上一个布局
info win : 显示窗口大小
focus cmd/src/asm/regs/next/prev :切换当前窗口
winheight name +/- line :调整name窗口的高度
Ctrl + L:刷新窗口
Ctrl + x,再按a:回到传统模式,即退出layout,回到执行layout之前的调试窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值