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

电商网站开发经验WordPress自适应幻灯插件

电商网站开发经验,WordPress自适应幻灯插件,wordpress 搜索模版,wordpress无法改成中文字体目录 00.背景 01.安装 02.生成调试信息 03.调试过程 00.背景 在软件开发中,通常会为程序构建两种不同的版本:Debug模式和Release模式。它们之间的区别主要在于优化级别、调试信息、错误检查等方面: 1.Debug 模式: 优化级别低…

目录

 

00.背景

01.安装

02.生成调试信息

03.调试过程


 

00.背景

在软件开发中,通常会为程序构建两种不同的版本:Debug模式和Release模式。它们之间的区别主要在于优化级别、调试信息、错误检查等方面:

1.Debug 模式

  • 优化级别低:Debug 模式通常会关闭或者减少优化,这样可以使得生成的可执行文件更易于调试,因为优化通常会使得代码执行流程更难以跟踪。
  • 包含调试信息:在 Debug 模式下,编译器会保留更多的调试信息,例如变量名称、源代码行号等,这些信息有助于在调试过程中定位和解决问题。
  • 开启错误检查:Debug 模式通常会启用额外的错误检查和断言,这有助于在开发阶段及早发现程序中的错误。

2.Release 模式

  • 高度优化:Release 模式会应用更多的优化,以提高程序的运行性能和执行速度。这些优化可能包括代码内联、循环展开、函数内联等,使得程序更高效地运行
  • 剔除调试信息:为了减小可执行文件的大小,并提高程序运行效率,Release 模式通常会删除或者减少调试信息的存储,因此无法直接使用调试器进行源代码级别的调试。
  • 关闭错误检查:为了提高性能,Release 模式通常会关闭或者减少额外的错误检查和断言。

总结

Debug模式适用于开发阶段,面向开发者,可以方便开发者进行调试和定位问题;而Release模式则适用于发布阶段,面向用户,可以获得更高的性能和更小的可执行文件大小,但同时也失去了一些调试能力。因此,在进行软件开发时,通常会现在Debug模式喜爱进行开发和调试,然后切换到Release模式进行测试和发布。

下面讲到的gdb调试器就是在Debug模式下运行的。

01.安装

GDB程序是GNU项目的一部分,全称是GNU Debugger。它是一个用于调试C、C++等编程语言的程序的强大工具。我们需要安装GDB才能在系统上使用它。

1.包管理器

在Ubuntu上可以使用以下命令安装:

sudo apt-get install gdb

在CentOS上可以使用以下命令安装:

sudo yum install gdb

2.源代码编译

想安装最新版的GDB可以从GDB官网下载源代码编译安装
https://www.gnu.org/software/gdb/

02.生成调试信息

想要使用gdb对程序进行调试,首先要生成该程序对于的调试信息,gdb在加载程序时需要找到调试符号才能进行调试。通过以下命令生成调试信息:

gcc -g source.c -o a.out

这会编译‘source.c’并生成一个包含调试信息的可执行文件‘a.out’,使得可以在gdb中进行源代码级别的调试。

使用以下指令进入调试界面:

gdb a.out

043270cbca1e4776b47a18a00895c6bf.png

如果编译程序时没有使用选项“-g”,就不会生成调试信息,此时输入调试指令就会报错:

b3007542699144328b2405240a8dda0a.png

提示你gdb加载程序时没有找到调试符号

03.调试过程

具体调试时需要用到许多指令,这里列出来供大家参考:

  1. listl 行号:显示源代码,接着上次的位置往下列,每次列10行。
  2. listl 函数名:列出某个函数的源代码。
  3. runr:运行程序。
  4. nextn:单条执行。
  5. steps:进入函数调用。
  6. break(或 b)行号:在某一行设置断点。
  7. break 函数名:在某个函数开头设置断点。
  8. info breakpoints:查看断点信息。
  9. finish:执行到当前函数返回,然后挺下来等待命令。
  10. print(或 p):打印表达式的值,通过表达式可以修改变量的值或者调用函数。
  11. print(或 p) 变量:打印变量值。
  12. set var:修改变量的值。
  13. continue(或 c):从当前位置开始连续而非单步执行程序。
  14. delete breakpoints:删除所有断点。
  15. delete breakpoints n:删除序号为 n 的断点。
  16. disable breakpoints:禁用断点。
  17. enable breakpoints:启用断点。
  18. display 变量名:跟踪查看一个变量,每次停下来都显示它的值。
  19. undisplay:取消对先前设置的那些变量的跟踪。
  20. until X行号:跳至 X 行。
  21. breaktrace(或 bt):查看各级函数调用及参数。
  22. info(或 ilocals:查看当前栈帧局部变量的值。
  23. quit:退出 GDB。

显示源代码

输入“listl 行号”指令,终端会以“行号”居中的布局显示源代码

a83d9117f1504fe08b43343e944bde11.png

通常情况下我们习惯输入“l 0”或“l”来查看全部代码,但只会显示10行代码,这该如何呢?我们只需要继续按‘回车’键,直到显示出全部代码

be0acff4cce848109bd095a5aa242163.png

最后会提示总共有几行代码

断点

输入“runr”指令即可运行代码,当程序报错时我们可能需要打入断点来筛查错误代码处

此时可以使用“break(或 b)行号”指令,在某一行设置断点,并使用“info breakpoints(或b)”查看断点信息

3a2d87f2c7a7479987fc88835c8da15f.png

(注意:这里我们设置的断点行号和实际生成的断点行号不一致是因为,在打入断点时gdb会跳过头文件、符号{}、空格、函数名等)

gdb中,断点是有序号的,从1开始排序,当我们想删除断点时,就可以使用“delete breakpoints n”或“d n”指令,n就是断点的序号

我们输入“r”程序执行到断点处时可以使用“comtinue(或c)”命令让程序继续执行,如果后面还有断点,就会执行到下一个断点处,如果没有断点就会执行完整个程序。

61456c678add4eb69aec6dc393f91c6c.png

跟踪变量

在 gdb 中,可以使用“print(或 p)变量”查看变量的值,但是面对一个实时变化的变量时,每执行一步就要输入“p”指令查看一次,显然太麻烦,可以像vs编译器那样设置一个监视窗口实时查看变量值吗?

我们可以使用 display 命令(或者disp)来设置跟踪某个变量的值,并在每次程序执行时显示该变量的值。这样,在执行程序时,你可以同时查看变量的值,并继续执行程序。

和断点一样,也可以通过“info disp”指令来查看跟踪的变量,它们也都有从1开始的编号。

89614ed7beac408295fa4253a947413b.png

(注意:设置跟踪变量必须保证程序处于运行状态)

此时我们执行程序时就会同时显示变量

e96ad61a3cc04f35bb5e4a77c058b7f2.png

以上就是调试器gdb的基本使用说明~

 

http://www.sczhlp.com/news/50971/

相关文章:

  • 泰州网站的建设运维培训 网站建设
  • 北京开发办网站网络销售渠道
  • 公司网站怎么更新需要怎么做网站建设开发熊掌号
  • 网站开发 职位wordpress 4.7.2 提权
  • php心水主论坛网站制作网页设计做空调的网站
  • 网站主页面布局怎么做无锡企业网站制作费用
  • 网站开发语言学习精益生产管理咨询公司
  • 凡诺网站下载wordpress apache 404
  • 青岛鲁icp 网站制作 牛商网又拍云wordpress全站cdn
  • 海尔公司网站建设现状wordpress首页登录
  • 简述网站推广的意义和方法高端轻奢品牌
  • 网站建设什么语言比较好湘潭网站建设工作室
  • 免费公司网站怎么做应用软件商店
  • 受欢迎的合肥网站建设深圳百度推广代理商
  • 如何更换网站图片微信公众号登录平台登录官网
  • 网站建设基本完成网站登录系统源码
  • 网站策划方法携车网网站开发怎么样
  • 苏州市优化网站推广哪家好百度关键词工具在哪里
  • 什么网站做美式软装设计方案百度推广费
  • 服务器可以做几个网站织梦做网站也是模板吗
  • 怎么筛选一家做网站做的好的公司优秀的网站建设公司排名
  • 网站建设与实践wordpress的文章title在哪里
  • 手机号码网站建设h5case 网站
  • qt编程乱码问题
  • 网站设计论坛建设网站转赚钱吗
  • 怎么样利用一些网站开发客户做网站计划
  • 国外的网站可以做百度推广吗织梦 图片网站源码
  • 网站页面设计好了后台如何添加锦州企业网站建设
  • jsp商业网站开发深圳app开发哪家专业
  • 长沙开福区专业网站制作dedecms金融网站模板