4.5 调试器gdb

4.5 调试器gdb

ID:44702176

大小:126.68 KB

页数:43页

时间:2019-10-25

4.5 调试器gdb_第1页
4.5 调试器gdb_第2页
4.5 调试器gdb_第3页
4.5 调试器gdb_第4页
4.5 调试器gdb_第5页
资源描述:

《4.5 调试器gdb》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、嵌入式系统程序设计大连理工大学软件学院嵌入式系统工程系赖晓晨gdb调试器§gdb简介§使用gdb一、gdb简介§gdb是GNU发布的linux下的字符界面调试工具。功能强大。§gdb的功能¢按照用户的要求启动程序¢让被调试的程序在任意断点处停止(断点可以是条件表达式)¢程序暂停时可检查运行环境¢程序暂停时可动态改变运行环境1。gdb简介§gdb是GNU发布的linux下的字符界面调试工具。功能强大。§gdb的功能要使用gdb调试程序,在用¢按照用户的要求启动程序gcc编译源文件时要指定-g选项,¢让被

2、调试的程序在任意断点处停止(断点可以是条件表达式)以使程序中包含必要的信息¢程序暂停时可检查运行环境¢程序暂停时可动态改变运行环境例gdbtest#includeintfunc(intn){intsum=0,i;for(i=1;i<=100;i++)sum+=i;returnsum;}intmain(){inti;longresult=0;for(i=1;i<=250;i++)result+=i;printf("result(1-100)=%d",result);printf("

3、result(1-250)=%d",func(250));return0;}~/exp/gdb/gdbtest.c例gdbtest#include断点2intfunc(intn){intsum=0,i;for(i=1;i<=100;i++)sum+=i;returnsum;}intmain()断点1{inti;longresult=0;for(i=1;i<=250;i++)result+=i;printf("result(1-100)=%d",result);printf("

4、result(1-250)=%d",func(250));return0;}例gdbtest#include断点2breakintfunc(intn)infobreak{intsum=0,i;runfor(i=1;i<=100;i++)nextsum+=i;continuereturnsum;print}btintmain()断点1finish{inti;quitlongresult=0;for(i=1;i<=250;i++)result+=i;printf("result(1-

5、100)=%d",result);printf("result(1-250)=%d",func(250));return0;}二、使用gdb§使用gdb的前提:gcc–gprogram.c§启动gdb:gdbprogram(gdb)filep§gdb的帮助信息:(gdb)help↙//查看命令种类(gdb)helpclass↙//查看类中的命令(gdb)helpcommand↙//查看命令gdb的常用命令§file:装入想调试的可执行文件§kil:终止正在调试的程序§list:列出源代码§ne

6、xt:stepover§step:stepinto§quit:退出gdbgdb的常用命令(续)§watch:监视变量的值§break:设置断点§make:不退出gdb就可以重新产生可执行文件§shell:在gdb中执行shell命令§(gdb)↙:重复执行命令§Tab键:命令补齐§命令缩写:在gdb中运行shell程序§在gdb中,可以执行linux的shell命令格式:shell例如:(gdb)shellls(gdb)shellpwd程序的运行,在gdb中运行程序可能需

7、要:1.指定程序运行的参数setargs1020402.运行环境showpaths//查看程序运行路径showenv//查看所有环境变量showenvHOME//查看某环境变量setenvLINES=25//设置某环境变量在gdb中运行程序(续)3.工作目录pwd//显示当前目录cddirectoryname//切换目录4.程序的输入输出run>outfile//输出重定向程序先于调试已经运行的程序gdb启动§在linux下用ps命令查看正在运行的程序的PID,然后执行gdbprogramPID§先用

8、gdbprogram关联上程序,进入gdb后用attach命令挂接进程PID,用detach取消挂接gdbprogarm(gdb)attachPID~/exp/gdb/grun.c暂停/恢复程序运行§查看程序是否正在运行(gdb)infoprogram§gdb中程序的暂停方式(停止点)¢断点(breakpoint)¢观察点(watchpoint)¢捕捉点(catchpoint)¢信号(signals)¢线程停止(threadstops)§恢复程序运行,用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。