当前位置: 首页 > news >正文

上海知名的网站建设做网站培训班

上海知名的网站建设,做网站培训班,做外贸如何分析客户网站,邯郸wap网站建设报价目录 一#xff1a;gdb简介 二#xff1a;示例代码 三#xff1a;使用 1.启动gdb 2.各种指令 1: 查看源代码 2:设置断点 3:查看断点信息 4:删除断点 5: run 6:逐过程调试 7:逐语句调试 8:查…目录 一gdb简介 二示例代码 三使用 1.启动gdb 2.各种指令 1: 查看源代码  2:设置断点 3:查看断点信息 4:删除断点 5: run  6:逐过程调试 7:逐语句调试 8:查看变量值 9:跳转行号 四总结 一gdb简介 GDB 全称“GNUsymbolic debugger”,是 Linux 下常用的程序调试器。发展至今,GDB 已经迭代了诸多个版本,当下的 GDB 支持调试多种编程语言编写的程序,包括 C、C、Go 等等。实际场景中,GDB 更常用来调试 C 和 C 程序。一般来说,GDB主要帮助我们完成以下四个方面的功能: 启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。 在某个指定的地方或条件下暂停程序。 当程序被停住时,可以检查此时你的程序中所发生的事。 在程序执行过程中修改程序中的变量或条件,将一个bug产生的影响修正从而测试其他bug。 二示例代码 code.c 文件内容为 #includestdio.h int ADDToTop(int num) {int result 0;int i 0;for(i 1; i num; i){result i;}return result; } int main() {int num 10;int sum 0;sum ADDToTop(num);printf(sum: %d\n,sum);return 0; }makefile 文件内容为 mycode:code.cgcc -o $ $^ -g .PHONY:clean clean:rm -f mycode我们知道程序的发布形式有两种一种为 debug 模式另一种为 release 模式。一般情况下编译指令为 gcc code.c -o test 要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项。不加就是默认为 release 版本。 编译为 debug 版本的指令为 gcc code.c -o code.debug -g -stdc99 debug版本需要一些调试信息占用的内存更大所以我们可以通过占用内存的大小判断Linux gcc/g出来的二进制程序默认是哪一种模式 通过上述示例我们可以看出Linux gcc/g出来的二进制程序默认是release模式。 -std c99 c99 是C语言的一个标准该标准规定了可以在循环控制条件里面定义变量egfor(int i 0; i 10; i)。如果没有使用则可能会导致 三使用 1.启动gdb 启动 gdb 的指令为 [gdb 文件的名称] 示例 gdb mycode运行效果为 此时需要我们切换为 root 用户安装 gdb ,如下图所示 此时我们再切回普通用户进行启动 gdb 的工作 如果出现上述界面则说明已经进入 gdb 调试接下来可以开始使用各种指令进行调试。 2.各种指令 在进行各种调试指令之前我们需要首先知道退出调试的指令 ctrl d 或 quit 调试命令 1: 查看源代码  listl 行号显示binFile源代码接着上次的位置往下列每次列10行。 2:设置断点 break(b) 行号在某一行设置断点 我们此处在以 #includestdio.h 为第一行的第16行打上断点  break 函数名在某个函数开头设置断点 在 main 函数和 ADDToTop函数开头打断点  3:查看断点信息 info break 查看断点信息 我们查看在 2 第16行所打的断点 Num --- 编号   Type --- 种类   Address --- 断点在内存中的位置  What --- 断点在程序中的位置 查看 2 中指定函数名打断点 4:删除断点 delete breakpoints n删除序号为n的断点 disable breakpoints禁用断点 enable breakpoints启用断点 n --- 表示该断点不可用y --- 表示该断点可用 如果想把已经变为 n 的改变为 y 则需要执行enable b 3 命令示例 5: run  run(或r)从开始连续而非单步执行程序 如果有断点则执行到断点处停止如果没有断点则执行到结束。 6:逐过程调试 n 或 next单条执行。一步步执行但不会进入函数内部 清空原来的所有断点在第16行打上断点按下 r  运行键程序会在断点处停下此时输入 n,观察现象 程序直接执行完了 ADDToTop 函数内部的全部内容。 7:逐语句调试 s或step进入函数调用遇到函数时会进入函数内调试 保持第16行的断点按下 r 执行到断点处停止此时在按下 s 观察现象 我们发现逐语句调试过程中进入了 ADDToTop 函数内部并且一步一步往下执行。 8:查看变量值 p 变量打印变量值。 可以用于查看循环执行到某一步的时候查看某个/某些变量的值如下图所示 9:跳转行号 until X行号跳至X行 当我们进入一个函数后可能会存在需要循环很多次的场景此时我们可以通过 until 行号 跳转到指定行数示例如下 四总结 listl 行号显示binFile源代码接着上次的位置往下列每次列10行。 listl 函数名列出某个函数的源代码。 r或run运行程序。 n 或 next单条执行。 s或step进入函数调用 break(b) 行号在某一行设置断点 break 函数名在某个函数开头设置断点 info break 查看断点信息。 finish执行到当前函数返回然后挺下来等待命令 print(p)打印表达式的值通过表达式可以修改变量的值或者调用函数 p 变量打印变量值。 set var修改变量的值 continue(或c)从当前位置开始连续而非单步执行程序 run(或r)从开始连续而非单步执行程序 delete breakpoints删除所有断点 delete breakpoints n删除序号为n的断点 disable breakpoints禁用断点 enable breakpoints启用断点 info(或i) breakpoints参看当前设置了哪些断点 display 变量名跟踪查看一个变量每次停下来都显示它的值 undisplay取消对先前设置的那些变量的跟踪 until X行号跳至X行 breaktrace(或bt)查看各级函数调用及参数 infoi) locals查看当前栈帧局部变量的值 quit退出gdb
http://www.zqtcl.cn/news/272795/

相关文章:

  • 网站开发网站制作太原优化排名推广
  • 佛山市网站开发桥西区建设局网站
  • 怎么制作网站应用云主机上传wordpress
  • flash网站代做马鞍山网站建设制作公司
  • 温州网站的优化wordpress 注册邮箱验证失败
  • php网站开发实例视频教程宁波seo运营推广平台排名
  • 网络营销网站开发设计公司网站推广营销
  • 2015年做那个网站致富wordpress最新模板
  • 做网站开发平台北京广告公司有哪些
  • 郑州企业建站系统模板兰州需要做网站的公司有哪些
  • 怎样做网站卖东西 自己有货句容网络公司
  • 网站建设协议书 保密条款免费发布推广的网站
  • 网站首页外链上海网站建设联系方式
  • 陕西网站建设优化技术2023年1月热点新闻事件
  • 广东省建设银行招聘网站免费搭建个人网站
  • 知名商城网站建设公司wordpress主题 汉化
  • 网站上线做什么pc网站如何做移动适配
  • wap网站搭建北京北京网站建设
  • 放心的网站设计制作免费做logo设计的网站
  • 温州专业手机网站制作多少钱移动商城 网站建设方法方式
  • 周口网站开发wordpress
  • 如何查网站的备案号玉环在哪里做网站
  • 网站开发什么叫前端后端seo研究中心晴天
  • 邢台建筑类的建设网站代刷网站只做软件下载
  • 关于旅游的网站建设目的食品网站建设的目的
  • 开发php网站开发太湖网站建设推荐秒搜科技
  • 90设计网站怎么绑定手机号淘宝搜索排名
  • 无锡自助做网站哪些编程语言适合网站开发
  • 蒲城网站建设wzjseo北京专业推广公司
  • 阳春做网站外贸建站推广公司