c语言:调试-创新互联

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元起,快前往官网查看详情吧


本文题目:c语言:调试-创新互联
文章地址:http://azwzsj.com/article/dcogci.html