扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
Debug和Release:
创新互联长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为绵竹企业提供专业的成都做网站、网站建设,绵竹网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。Debug:包含调试信息,不优化版本
Debug文件夹:调试版本的可执行程序
Release:已经优化的版本
优化:可能包括地址的改变等,release 出现的问题debug可能没有,debug出现的问题release可能没有。
Release文件夹:优化版本的可执行程序
IDE:集成开发环境vs2022-IDE-集成开发环境=编辑器+编译器+调试器
Linux:
gcc-编译器(C++编译器)
gdb-调试器
快捷键F5:启动调试,跳到断点处
断点在循环中可多次停下(只要符合条件)
断点中可以设置停下来的条件
调试过程中,箭头指向下一条执行的语句·
F10,逐过程,跳过自定义函数
F11:逐语句,进入函数内部
绿色开始键:可以实现跳跃执行
CTRL+F5:直接执行,不会在断点停下
调试窗口:监视/自动窗口/局部变量:变量变化
监视数组:进入函数中内部难以监视,输入数组名,n元素个数,观察到前n个元素的值
内存:地址:&a 或者地址的16进制
内存显示的内容:地址 内容 参考信息
反汇编:代码在汇编代码是怎么样的
寄存器:观察到寄存器的值
调用堆栈:模拟函数调用逻辑
变量名和寄存器的值
拓展:
数据结构:
栈:从顶放,从顶出
常用coding技巧:1.使用assert
断言:assert(exp1)
表达式如果为假就报错,如果为真就就不发生。
assert在realease中优化
2.尽量用const
3.养成良好的编码风格
4.必要的注释
5.避免编码陷阱
eg:1.传址函数中避免地址为空指针:用assert对指针为空的情况判错
2.加const防止地址被修改
const 修饰指针变量时:
int* const p:修饰的是p,不能变p指向的变量,p指向的变量的值可以变,
const int *p:修饰的是p指向的对象,p指向的对象可变,p指向的变量不能变,
const int * const p:修饰的是p和p指向的对象,p指向的对象不变,p指向的变量不能变
3.根据正负等选择合适的返回值
4.软件everything来看代码
5.常量字符串是不能改的
常见错误:编译错误:
链接错误:
无法解析外部符号xxx
找xxx
运行错误:
语法正确,结果不是我们想要的。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流