debug & release
debug调试,你在程序中设置了断点,为什么vs.net知道在那里要停下来,当你把鼠标移到某个变量上,vs.net就会显示它当时的值?
因为编译器在代码中添加了许多调试需要的代码,可以让vs.net得到,返回给你。
这些代码当然是要占用空间和时间的,在你的程序调试完了后,可以正确运行了。完全可以去掉这些代码,这时候就应该用Release模式了。
不管Debug还是Release模式,都要编译,都有中间临时代码产生,所以obj目录下有debug release目录。两种模式编译的结果,就放在bin目录下。
编译完后,中间临时代码是没什么用的了,所以一般不管obj目录里的东西!
在用VC编译是,有debug和release两种
有什么区别呢
一个为调试版本,其中包括了出错时能够定位源代码的在行,如果源文件已经改变,定位出来会有偏移,而且,在这个版本中编译器不会进行代码优化,并且在程序中能用宏定义_DEBUG来确定当前的版本。另一个为正试版本,程序出错只是进行简单的错误处理,编译器会优化代码,以提高性能。
Release代码更小,执行更快,编译更严格,更慢
当然就没有了调试信息
1 一般断点
查看流程步骤,在语句左边打断点
2 条件断点
如for循环,在这里打断点,设置条件,当变量i == 6或者变量 a==6均可
3 函数断点
输入函数名称,在执行进入该函数时断点
4 数据断点
断点作用:用于检测任意变量,包括类中或者结构体中某个成员变量的值发生了变化,如果此时设置了数据断点,只要该变量的值发生了变化就会触发数据断点,导致程序中断。用于Debug时,查找莫名其妙改变值的变量,用于锁定隐藏bug,以及通过堆栈信息梳理逻辑漏洞。
根据内存地址 或者 &变量 设置数据断点
输入&地址,得到地址
输入要监视的变量地址,或者输入&变量也可
5 操作断点:在输出框可以看到