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

做网站给不给源代码html网页设计模板

做网站给不给源代码,html网页设计模板,网站制作公司 郑州,宿州网站建设公司目录 一、程序发布模式1.1 debug模式1.2 release模式 二、默认发布模式三、gdb的使用结尾 一、程序发布模式 程序的发布方式有两种,debug模式和release模式 1.1 debug模式 目的:主要用于开发和测试阶段,目的是让开发者能够更容易地调试和跟…

在这里插入图片描述

目录

  • 一、程序发布模式
    • 1.1 debug模式
    • 1.2 release模式
  • 二、默认发布模式
  • 三、gdb的使用
  • 结尾

一、程序发布模式

程序的发布方式有两种,debug模式和release模式

1.1 debug模式

  • 目的:主要用于开发和测试阶段,目的是让开发者能够更容易地调试和跟踪程序中的错误(bugs),以确保软件在发布前无重大错误。
  • 特性
    • 编译时不会进行过多的优化,以便更容易地通过调试工具(如GDB)查看程序的状态,包括变量值、函数调用栈等。
    • 包含详细的调试信息(如符号表),这些信息对于理解程序的行为和定位问题至关重要。
    • 运行时可能包含额外的检查,如数组边界检查、空指针检查等,以帮助捕获潜在的错误。
    • 通常执行速度较慢,因为缺少优化并且增加了额外的调试信息。

1.2 release模式

  • 目的:用于将软件部署到生产环境,目标是提供稳定、高效的运行体验,将软件部署到生产环境,供最终用户使用。
  • 特性
    • 编译时会进行各种优化,如代码重排、循环展开、内联函数等,以提高程序的执行速度和效率。
    • 不包含调试信息(如符号表),以减少可执行文件的大小并提高加载速度。
    • 移除所有运行时检查(如数组边界检查、空指针检查等),以减少运行时开销。
    • 进行了严格的代码检查和测试,以确保程序的稳定性和安全性。
    • 通常执行速度快,因为经过了优化并且去除了不必要的检查。

二、默认发布模式

Linux gcc/g++出来的二进制程序,默认是release模式,在release模式下是无法进行调试的,要使用gdb调试,必须在源代码生成二进制程序的时候,加上 -g 选项。

那么要怎么才能证明上面的结论呢?

  1. 首先不带任何选项使用gcc编译Test.c文件生成可执行程序a.out,再使用gdb调试a.out,我们会发现没有调试信息。然后使用gcc带-g选项编译Test.c文件生成可执行程序a.out,再使用gdb调试a.out,会发现没有刚刚那个提示。

    在这里插入图片描述

    在这里插入图片描述

  2. 分别使用gcc以不带选项和带-g选项分别生成可执行程序release版本和debug版本,我们可以发现debug版本的大小比release版本的大,因为debug版本的可执行程序中添加了调试信息

在这里插入图片描述

  1. 我们在Linux中形成的可执行程序的格式为可执行与可链接格式(ELF格式),在Linux中,readelf是一个用于显示ELF文件信息的工具,我们可以使用readelf指令通过管道筛选出调试信息。

    我们发现release版本下并没有调试信息,而debug版本下有调试信息。

在这里插入图片描述


三、gdb的使用

gdb 文件名:进入调试

  • list/l 行号:从输入的换行处显示源文件的源代码,接着上次的位置往下列,每次列10行。若没有输入行号,那么gdb会根据上下文开始显示源代码。
    在这里插入图片描述

  • list/l 函数名:显示函数的源代码。
    在这里插入图片描述

  • break(b) 行号:在某一行设置断点
    在这里插入图片描述

  • break 函数名:在某个函数开头设置断点
    在这里插入图片描述

  • info(i) break(或breakpoints) :查看断点信息。
    在这里插入图片描述

  • disable breakpoints n:禁用序号为n的断点
    在这里插入图片描述

  • enable breakpoints n:启用序号为n的断点
    在这里插入图片描述

  • delete(d) breakpoints n:删除序号为n的断点,断点的序号是线性增长的,只会越来越大,不会因为新添加的断点是前面删除的断点,导致新的断点的序号变为原来的序号。
    在这里插入图片描述

  • delete(d) breakpoints:删除所有断点
    在这里插入图片描述

  • r或run:当没有断点时运行程序,当有断点时运行到断点处。
    在这里插入图片描述

  • n 或 next:单步调试,当使用n命令进行单步调试时,gdb会执行下一行代码。如果下一行代码是一个函数调用,它会将函数调用的结果一次性显示出来,但不会深入到函数内部去逐行执行。
    在这里插入图片描述

  • s或step:单步调试,当使用s命令进行单步调试时,gdb同样会执行下一行代码。但是,如果下一行代码是一个函数调用,s命令会进入这个函数内部,并从函数的第一条语句开始逐行执行。这意。
    在这里插入图片描述

  • finish:执行到当前函数返回,然后挺下来等待命令
    在这里插入图片描述

  • print ( p ):打印表达式的值,通过表达式可以修改变量的值或者调用函数
    在这里插入图片描述

  • p 变量:打印变量值。
    在这里插入图片描述

  • set var:修改变量的值
    在这里插入图片描述

  • continue(或c):继续执行被调试的程序,直到遇到下一个断点、程序结束或遇到其他导致程序停止的事件。
    在这里插入图片描述

  • display 变量名:跟踪查看一个变量,每次停下来都显示它的值
    在这里插入图片描述

  • undisplay n:取消对序号为n的变量的跟踪
    在这里插入图片描述

  • until :主要作用是继续执行程序,直到当前栈帧(通常是当前函数)的返回点,或者遇到下一个断点。

  • until n:n为某一行代码的行号,该命令会使程序运行至第n行代码处停止。
    在这里插入图片描述

  • breaktrace(或bt):查看各级函数调用及参数
    在这里插入图片描述

  • info (i) locals:查看当前栈帧局部变量的值
    在这里插入图片描述

  • quit (q):退出gdb


结尾

如果有什么建议和疑问,或是有什么错误,大家可以在评论区中提出。
希望大家以后也能和我一起进步!!🌹🌹
如果这篇文章对你有用的话,希望大家给一个三连支持一下!!🌹🌹

在这里插入图片描述

http://www.hkea.cn/news/31156/

相关文章:

  • 网站系统管理员模块关键词查找工具
  • 望江县建设局网站外贸seo推广招聘
  • 微信网站上传图片手机怎么制作网站
  • 简单做网站需要学什么搜索引擎有哪些网站
  • 网站备案信息加到哪里如何进行网站推广
  • 昭通网站制作aso优化技巧
  • 制作网站时怎样做滚动字幕新网站多久会被百度收录
  • 余姚物流做网站微信指数是搜索量吗
  • 怎样做网站轮播今日国内重大新闻事件
  • 想给大学做网站百度网盘搜索神器
  • jsp网站开发论文官方app下载安装
  • 关于机场建设的网站今日疫情最新情况
  • 网站域名注册服务商google浏览器官方
  • 通过网站开发工具怎么改自动跳网站百度指数有哪些功能
  • 可以发锚文本的网站百度搜索官方网站
  • 东莞网站建设企慕简述如何优化网站的方法
  • 可以做网站的公司seo外包
  • 自己怎么做网站视频赚钱5g网络优化培训
  • 数据库修改网站管理员密码seo网站有优化培训吗
  • 福田做商城网站建设找哪家公司好抖音怎么运营和引流
  • 厘米售卡站怎么做网站禁止搜索引擎收录的方法
  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好