完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
gdb
GDB, GNU 的调试器称为 gdb(ddd),该程序是一个交互式工具,工作在字符模式。 GDB可完成如下的调试任务
开放root用户权限:sudo -s,Linux终端依次输入以下代码即可。 apt-get update apt-get install gdb Do you want to continue? [Y/n] y 测试使用: 编写一个简单的 hello.c #include int main(){ printf("Hello World!n"); } 在可以使用 gdb 调试程序之前,必须使用 -g 选项编译源文件。
gdb [文件名] 例如使用 gdb 调试 hello,首先gcc -g -o hello hello.c , 然后gdb hello gdb调试命令 help NAME:显示指定命令的帮助信息。 file FILE:装载指定的可执行文件进行调试。 kill:终止正被调试的程序。 list:显示源代码段。 break NUM:在指定的行上设置断点。 run:执行当前被调试的程序 。 continue:继续执行正在调试的程序。 step:向前执行一行源代码,遇到函数的情况下,进入函数内部执行。 stepi:执行一条机器指令。 next:单步执行一条语句,不单步执行进入函数体。 nexti: 单步执行一条指令,如果该指令是函数调用,那么程序执行直到该函数调用结束时才停止。 set 变量 = 表达式 或 set 变量 := 表达式:设置程序中变量的值。 display EXPR 每次程序停止后显示表达式的值,表达式由程序定义的变量组成。 print 变量或表达式 :打印变量或表达式的值。 info break:显示当前断点清单,包括到达断点处的次数等。 info files:显示被调试文件的详细信息。 info func:显示所有的函数名称。 info local:显示当函数中的局部变量信息。 info prog:显示被调试程序的执行状态。 info var:显示所有的全局和静态变量名称。 delete 断点号:清除断点或自动显示的表达式。 disable 断点号列表(断点号之间用空格间隔开):让指定断点失效。 enable 断点号列表:和disable相反,恢复失效的断点。 ignore 断点号 忽略次数:忽略断点。 quit:退出gdb。 gdb 调试步骤 第一步:用-g选项编译程序 arm-linux -g -o hello hello.c 第二步:gdb 程序 gdb hello 第三步:查看源码 list 第四步:在 main 函数设置断点 break main 第五步:运行 run 第六步:调试 step/next/break/cont/print/display 第七步:退出 quit 嵌入式远程调试 在开发板上运行 gdbserver 在PC端执行 ddd -debugger ./arm-linux-gdb greeting 其他Liunx开发工具 交叉反汇编器 arm-linux-objdump arm-linux-objdump -D -S hello > out.s:将反汇编文件输出到out.s 查看elf文件工具 arm-linux-readelf arm -linux-readelf -a hello:查看hello可执行文件。 arm-linux-readelf -d hello:查看可执行文件需要的共享库 图形化开发套件:CODE::BLOCKS 课后作业 (1) 假设温度传感器文件 TempSensor.c 中使用到冒泡排序算法对取到的 10 次温度进行排序,对应函数名为 BubbleFun(),然后去除最高和最低值,将余下的 8 个温度值相加取平均作为本次测量温度,在编译时希望加上调试信息,则需要在编译选项时添加 (-g),在调试过程中,需要启动程序运行并停止在 BubbleFun() 函数入口处,写出 gdb 调试指令序列流。 gcc -g -o TempSensor TempSensor.c gdb TempSensor list break BubbleFun run (2) CODE::BLOCKS是一款(图形开发套件),其底层(需要)arm-linux-gcc 开发套件的支撑。 |
|
|
|
只有小组成员才能发言,加入小组>>
863 浏览 0 评论
1191 浏览 1 评论
2566 浏览 5 评论
2901 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2761 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1201浏览 3评论
214浏览 2评论
486浏览 2评论
399浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
482浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-22 22:01 , Processed in 1.073884 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号