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

山东省建设执业师网站北京校园文化设计公司

山东省建设执业师网站,北京校园文化设计公司,苏州做网站价格,医院做网站开发gdb的概述 GDB 全称“GNU symbolic debugger”#xff0c;从名称上不难看出#xff0c;它诞生于 GNU 计划#xff08;同时诞生的还有 GCC、Emacs 等#xff09;#xff0c;是 Linux 下常用的程序调试器。发展至今#xff0c;GDB 已经迭代了诸多个版本#xff0c;当下的…gdb的概述 GDB 全称“GNU symbolic debugger”从名称上不难看出它诞生于 GNU 计划同时诞生的还有 GCC、Emacs 等是 Linux 下常用的程序调试器。发展至今GDB 已经迭代了诸多个版本当下的 GDB 支持调试多种编程语言编写的程序包括 C、C、Go、Objective-C、OpenCL、Ada 等。实际场景中GDB 更常用来调试 C 和 C 程序。一般来说GDB主要帮助我们完成以下四个方面的功能 启动你的程序可以按照你的自定义的要求随心所欲的运行程序。在某个指定的地方或条件下暂停程序。当程序被停住时可以检查此时你的程序中所发生的事。在程序执行过程中修改程序中的变量或条件将一个bug产生的影响修正从而测试其他bug。 背景 程序的发布方式有两种debug模式和release模式Linux gcc/g出来的二进制程序默认是release模式要使用gdb调试必须在源代码生成二进制程序的时候, 加上 -g 选项 debug模式和release模式的区别 如果你想要让程序可以调试必须让其程序以debug模式进行发布。 像我们vs2022里面也是有这两种模式的里面想要调试程序只需将其切换成debug模式方可调试 那么问题来了一般我们的gdb进入的时候都有一个默认的模式如何知道他是debug模式还是release模式呢下面我们简单写一段代码来验证一下。 创建一个自动化构建工具Makefile文件 然后执行下make会自动编译形成一个可执行文件mycode,./mycode执行该程序是正常运行的。 在linux下我们编译代码的时候默认是release模式。如何证明呢 我们上面说了release模式下的程序是不可被调试的我们只需要证明可执行程序mycode是不可被调试的即可。在linux下我们要证明一个程序是否能够被调试需要用到一个工具gdb。 以上是我的云服务器centos7下的gdb的版本下面我们在该环境下进行使用测试 如果我们想让可执行程序mycode在gdb下被调试只需要在gcc编译时加一个-g选项 下面我们重新编译下 如果你想要你的代码以debug 模式发布必须给gcc添加-g选项 那么我们debug模式下形成的可执行程序和release模式下形成的可执行程序有什么区别呢 其实debug 模式下形成的可执行程序 相对于release模式下形成的可执行程序加了一些调试信息 我们将mycode.c形成两个可执行程序一个是debug模式的一个是release模式的 我们在Linux中形成的可执行程序格式是ELF格式的 所以我们可以通过readelf命令读取可执行文件的格式信息 开始使用 gdb binFile 退出 ctrl d 或 quit 调试命令 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 当你退出gdb的时候打的断点信息全部被清除 退出前 退出后重新进入 如何理解gdb? 可以跟windows IDE对应比如vs2022的调试
http://www.ho-use.cn/article/10818208.html

相关文章:

  • 手机网站要备案吗wordpress vip查看插件
  • 破解网站后台密码有人做吗怎么导入网站源码
  • 东菀高端网站建设做网站前期需要什么
  • 手机自助建站系统随州建设网站
  • 网站怎么做图片转换网站制作难吗
  • 网站建立连接不安全项目管理师pmp报考条件
  • 公司网站备案需要什么材料做网站所需技术
  • 网站建设的内容要怎么写大型服装网站建设
  • 不要钱做网站软件男科医生免费咨询
  • 做网站的协议外贸公司的网站建设
  • 学校多语种网站建设方案成都市微信网站建设报价
  • 宿迁建站网手机直播app开发制作
  • 做网站的必备软件网上商城建站工作室
  • 南阳seo网站价格哈密地网站建设
  • 延吉 网站开发未备案网站加速
  • 高端网站改版顾问新开传奇网站新开网
  • 成都市网站建wordpress 预加载动画
  • 网站建设 青海自己免费怎么制作网站
  • 万网网站到期后续费一年多少钱赞友商城电商平台排名第几
  • 怎么做教育网站兴义城乡建设部网站
  • 网站模板修改教程网站设计的流程是怎样的
  • 自由人网站开发礼服购物车网站模板
  • 网站开源模板给小孩子做网站
  • 烟台 网站建设个人网上怎样注册公司
  • 网站被挂黑链怎么处理手机端网站开发视频教程
  • 英德建设网站浙里建系统平台
  • 建设网站需要什么硬件设施购物网站有哪些平台
  • 中国建筑招聘官网2022wordpress 优化 插件
  • 什么网站做首页yandex俄语网站建设
  • 网站如何做收录排行wordpress汉化主题模板