Dav*_*vid 63 .net debugging system.diagnostics
我可能已经知道了这一点,但我不确定,我也没有记录.
我在开发过程中经常使用System.Diagnostics.Debug.WriteLine来跟踪变量或异常的变化,因为我正在调试代码.这意味着只有在开发过程中才能更容易地开发和理解发生的事情.我通常要么注释掉代码,要么在我去制作时将其删除.
我想知道如果我忘记评论代码会发生什么.比如说,在开发周期中,我正在跟踪可能使用Debug.Write Line将连接sting到输出窗口的错误信息.这显然可以在开发时使用,但我想知道当我上线时,如果这里存在风险.有人可以将调试器附加到我的实时可执行文件并捕获此输出吗?或者它只是在Visual Studio中产生输出?
那么当我们从调试切换到发布时呢?如果我们编译发布版本,编译器是否会忽略此代码?
Phi*_*ney 75
Debug类中的所有成员都标有ConditionalAttribute,因此调用站点不会编译为Release版本.
Mit*_*eat 17
System.Diagnostics.Debug方法调用仅在定义"DEBUG"条件编译符号时才出现.默认情况下,仅为调试版本定义"DEBUG"符号.
ConditionalAttribute除非"DEBUG"被定义为条件编译符号,否则支持忽略对这些方法的调用的编译器 .
Age*_*191 11
由于Debug方法都具有[Conditional("DEBUG")]属性,如果从Debug切换到Release,您将不必担心它,因为将删除对这些方法的调用(以及其他优化)发布版本).
只有在调试模式下运行时,调试信息才可见.在Release模式下,不会显示Debug语句(如果希望在Release模式下显示这些语句,则可以使用Trace而不是Debug).
http://support.microsoft.com/kb/815788
| 归档时间: |
|
| 查看次数: |
18922 次 |
| 最近记录: |