首先,分成两种编译模式是因为debug和release内存分配,优化,关键字的处理都不一样。debug的信息是完整的,release缺少以上的很多信息。
而且你描述的也不准确,release 只有一些位置能下断点调试的,跟debug不一样的,debug任何地方都是可以调试的。
这是因为debug编译的时候没有优化,每一个指令都可以对应到代码里,所以都能调试,
release因为有性能优化,所以指令是不能完整的对应到代码里的,偶然能对上的部分就能调,其他部分调不了。
DEBUG能够输出debug.writeline信息,可以方便在在想输入的地加入这句进行输入运行内容,包括单步调试及过程调试,而release下调试的话,有些错误不会提示的,因为release编译后,会自动优化代码。
所以建议在调试的时候,使用DEBUG,而只在要生成成品的时候才用release