批量做网站引流电子商务网站的特点

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

批量做网站引流,电子商务网站的特点,凯里有哪些网站开发公司,有什么ae做动图的网站目录 1.前言 2.开启项目报错 3.GDB的进入和退出 4.GDB调试中查看代码和切换文件 5.GDB调试中程序的启动和main函数传参 6.GDB中断点相关的操作 7.GDB中的调试输出指令 8.GDB中自动输出值指令 9.GDB中的调试指令 前言 在日常开发中#xff0c;调试是我们必不可少的技能。在专业…目录 1.前言 2.开启项目报错 3.GDB的进入和退出 4.GDB调试中查看代码和切换文件 5.GDB调试中程序的启动和main函数传参 6.GDB中断点相关的操作 7.GDB中的调试输出指令 8.GDB中自动输出值指令 9.GDB中的调试指令 前言 在日常开发中调试是我们必不可少的技能。在专业的编译器中如VSCodeVS等编译器中都提供了较为完全的调试功能如单步调试异步调试等等。而在Linux中我们可以使用GDB工具来调试自己编写的代码本篇文章就皆在讲解GDB的使用以及调试方法 开启项目报错 在关于《MinGW从入门到链接库》的文章中曾对如何开启代码调试关闭调试进行简单的讲解在对GDB调试工具讲解之前先简单回顾以下这些内容 1.使用-W命令开启编译生成期间的警告 //开启编译生成期间的警告 g -o 可执行文件名 -W 源文件.cpp 图1.使用-W命令开启警告 2.使用-Wall命令开启编译生成期间的所有警告 //开启编译生成期间的所有警告 g -o 可执行文件名 -Wall 源文件.cpp 图2.使用-Wall命令开启警告 3.使用-Wunused-variable命令开启指定的Wunuser-variable警告和默认警告其他指定的警告也可以通过修改-Wunused-variable的类型来修改 //开启指定的wunuser-variable警告和默认警告 g -o 可执行文件名 -Wunused-variable 源文件.cpp 图3.使用-Wunused-variable命令开启默认警告和指定警告 4.使用-Wno命令关闭编译期间的指定警告 //关闭指定的return-local-addr警告和默认警告 g -o 可执行文件名 -Wno-return-local-addr 源文件.cpp 图4.使用-Wno命令关闭指定的return-local-addr警告 5.使用Werroe命令将编译生成期间的警告当作错误提示 //使用Werroe命令将编译生成期间的警告当作错误提示 g -o 生成的可执行文件名 -Werror 源文件.cpp 图5.使用-Werror命令将编译生成期间的警告当作错误提示 6.使用-O命令(大写)设置文件优化等级其中优化等级共分为3个优先级从1到3 //在编译生成期间对文件进行优化优化等级为1 g -o 可执行文件名 -O1 源文件.cpp//在编译生成期间对文件进行优化优化等级为2 g -o 可执行文件名 -O2 源文件.cpp//在编译生成期间对文件进行优化优化等级为3 g -o 可执行文件名 -O3 源文件.cpp 图6.对编译源文件进行等级为1的优化 GDB的进入和退出 在启动GDB调试之前需要先对项目进行编译生成可执行文件。此时为了能进入GDB调试在编译器CPP文件时需要加入-g命令为生成的可执行文件添加调试信息具体代码如下 g -g -o 可执行文件名 要编译文件示例g -g -o Demo2 txt1.cpp 图7.使用-g命令生成的可执行文件区别 生成可执行文件后可以使用gdb命令进入调试界面如下 gdb 可执行文件名示例gdb Demo 图8.使用gdb命令进入GDB调试 在进入GDB调试后可以使用quit命令退出GDB调试如下 quit 图9.退出GDB调试 GDB调试中查看代码和切换文件 在正式启动可执行文件前我们一般需要先查看程序代码找到合适的地方打断点以下是几种查看代码和切换文件的方式 1.使用list命令查看当前调试的文件默认显示前10行 list list 指定的文件名:行号 list 指定的文件名:函数名示例list main:5 //查看main文件中的第五行(显示上下文代码) 示例l main:fun //仓库main文件中的fun函数 PS也可以使用缩写l 图10.使用list命令查看代码 2.使用set listsize命令设置默认显示的行数 set listsize示例 set listsize 20 PS可简写为set list 3.使用show listsize命令显示当前的显示行数 show listsizePS可简写为 show list 图11.显示和设置的显示的行数 4.使用fram命令查看当前显示代码的位置可防止频繁调用list查看代码显示范围越界 fram 图12.查看当前显示的行数 GDB调试中程序的启动和main函数传参 在使用gdb命令进入GDB调试后可以使用以下两种方式启动程序 1.使用run命令启动程序执行到断点位置无断点则全部执行 run 图13.使用run命令启动程序 2.使用start命令启动程序执行到程序的第一行代码 stars 图14.使用start命令启动程序 一般我们在调试可执行文件时需要传入参数而且main函数也自带两个参数分别是int型的argc对象和char*型的argv对象我们可以使用以下命令对其传参和显示当前传入参数 1.使用set args命令传入参数 set args 传入的参数示例sey args 1 2 3 2.使用show args命令显示当前传入的参数 show args 图15.设置参数和显示参数 GDB中断点相关的操作 断点的类型分为两种一个是条件断点即满足指定条件则在该断点处停止二是常规断点程序运行到该位置便停止。在GDB中可以将断点设置到具体的行中也可以设置到具体的函数中具体参考如下 1.使用break命令设置断点 break 行数(函数名)示例 break 10 示例 b fun PS可使用简写b 图16.设置断点 2.使用break命令设置条件断点 break 行数 if 条件示例break 5 if i 2 3.使用break命令设置其他文件的断点 break 文件名:行数(函数名)示例break main:5 设置完断点后可以取消设置的断点以及查看当前调试的断点信息具体操作如下 1.使用info break命令查看断点信息 info breakPS可简写为i b 图17.查看断点信息 2.使用delete命令删除断点 delete 断点编号示例delete 1 PS可简写为d 图18.删除指定断点 3.使用disable命令设置断点的状态为无效 disable 断点编号示例disable 1 //设置编号为1的无效 示例disable 1-3 //设置编号为1到3的无效 PS可简写为dis 图19.使用disable命令设置断点状态为无效 4.使用enable命令设置断点状态为有效 enable 断点编号示例enable 1 //设置编号为1的断点生效 示例enable 1-3 //设置编号为1到3的生效 PS可简写为ena 图20.使用enable命令设置断点状态为有效 GDB中的调试输出指令 在GDB中我们可以使用run和start指令来启动程序当遇到断点时会停止继续输入run或者start指令则会提示我们是否要重新执行该程序。如果要继续执行则要使用continue指令具体如下 1.使用continue指令继续运行程序 continuePS可简写为c 图21.使用continue命令继续执行程序 在调试过程中我们在代码中也可能会经常使用printf或者cout函数来输出代码中执行的变量信息这样能实时的观察到变量值的变化方便我们定位代码的Bug。而在GDB中我们也可以做类似的操作具体如下 1.使用print指令输出指定变量的值 在使用print指令输出变量的值的时候我们可以使用格式化字符限制输出的字符格式类似于C语言中的scanf函数具体格式化字符信息如下 格式化字符备注/x以十六进制的形式打印出整数/o 以八进制的形式打印出整数/t 以二进制的形式打印出整数/f 以浮点数的形式打印变量或表达式的值/c 以字符形式打印变量或表达式的值/d 以有符号、十进制的形式打印出整数/u 以无符号、十进制的形式打印出整数 表1.格式化字符表 在使用print命令前需要先给程序打上断点并且使用run或start指令启动程序当运行到断点时即可使用print指令查看对象的值 print 变量名 print 格式化字符 变量名示例print obj 示例p /x obj PS可简写为p 图22.使用print命令输出指定对象的值 2.使用ptype命令输出指定的变量的类型 ptype 变量名示例ptype obj 图23.使用ptype命令输出指定对象的类型 GDB中自动输出值指令 在GDB调试中我们会经常遇到循环为了方便输出循环中的值我们可以使用print指令输出但是每一次执行后都执行一遍print指令则会十分麻烦。这时我们可以display指令自动输出指定变量的值具体如下 1.使用display命令自动输出指定变量的值 使用display命令输出变量的值也可以使用格式化字符输出具体可参考print指令的格式化字符表表1具体操作如下 display 变量名 display 格式化字符示例display obj 图24.使用display命令自动输出指定对象的值 2.使用info命令输出自动显示表使用display指令指定输出过的对象的值 info display 图25.使用info命令输出自动显示表 3.使用undisplay指令删除指定变量的自动输出 undisplay 变量编号示例undisplay 1 4.使用disable指令将自动输出变量的状态设为禁用 disable 变量编号示例disble 1 5.使用enable指令将自动输出变量的状态设为启用 enable 变量编号示例enable 1 PS具体可以参考断点中相关的操作 GDB中的调试指令 我们在使用各种编译器进行调试时会提供一些类似于单步调试等功能而GDB也同样支持这些功能具体如下 1.使用step命令执行下一行代码当遇到函数时将跳转至函数体内 stepPS可简写为s 2.使用finish命令跳出函数体使用step命令执行到函数体内部时使用该指令跳出函数体。PS保证函数体内不存在断点若存在断点则还是执行该函数体内的代码 finsh 3.使用next命令执行下一行代码当遇到函数时不会跳转至函数体内 nextPS可简写为n 4.使用unit跳出循环体当断点在循环内时可以使用该指令 unit