vs2015 c#怎么调试release
1个回答
展开全部
这里面你可能理解错了一个问题:调试其实是程序会生成带有连接的,不进行优化的dll或exe,并且同时生成调用库文件(pdb结尾的那个)。
当然这也是我们常说的调试模块。但由于不进行优化,且带有运行不必须的link,还存在相应的pdb,所以性能各方面并不好,而且还可能会存在泄露(比如,网站之类的,前端如果故意构造出你网站的例外,从而获得与运行相关的信息),所以还有一种对应的模式就是生成时优化程序不带有或尽可能少带有(这个有检查规则等可以自行设置)的文件。目的就是在真实环境中为安全性,性能各方面考虑的原因,这就是release(发布)。
也就是说要你调试你的程序,那么你必须要有不优化/带有连接,且含用对应的程序调试信息库文件,当你调试完成后可以release(发布)。如果没有以上的几条件,当然debug无法获得有用的错误信息。
你想在release模式下进行调用,在项目中选中相应信息的信息即可——但这样的话release只剩下一个名称了——其实他是真的Debug模式。
也就是说,release下调试其实把release当成一个debug了,那release本身的意义就失去了。所以不用再想如何在release下进行调试了——他其他只是为发布做准备的。release无法调试的原因是因为优化了程序,没有了调试库——如果你加上,虽然名称还是release,但其实已经是真正的debug了。
当然这也是我们常说的调试模块。但由于不进行优化,且带有运行不必须的link,还存在相应的pdb,所以性能各方面并不好,而且还可能会存在泄露(比如,网站之类的,前端如果故意构造出你网站的例外,从而获得与运行相关的信息),所以还有一种对应的模式就是生成时优化程序不带有或尽可能少带有(这个有检查规则等可以自行设置)的文件。目的就是在真实环境中为安全性,性能各方面考虑的原因,这就是release(发布)。
也就是说要你调试你的程序,那么你必须要有不优化/带有连接,且含用对应的程序调试信息库文件,当你调试完成后可以release(发布)。如果没有以上的几条件,当然debug无法获得有用的错误信息。
你想在release模式下进行调用,在项目中选中相应信息的信息即可——但这样的话release只剩下一个名称了——其实他是真的Debug模式。
也就是说,release下调试其实把release当成一个debug了,那release本身的意义就失去了。所以不用再想如何在release下进行调试了——他其他只是为发布做准备的。release无法调试的原因是因为优化了程序,没有了调试库——如果你加上,虽然名称还是release,但其实已经是真正的debug了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询