惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

月光博客
月光博客
IT之家
IT之家
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
MyScale Blog
MyScale Blog
G
Google Developers Blog
Microsoft Azure Blog
Microsoft Azure Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
Google DeepMind News
Google DeepMind News
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
Martin Fowler
Martin Fowler
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
MongoDB | Blog
MongoDB | Blog
I
InfoQ
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security

博客园 - baoli

健壮应用程序异常信息收集,捕捉UnhandledException,并生成dump文件 JProfile使用心得--windows版 一些关于debug和性能分析方面的资料收集 XML技术架构概要介绍 Unix Bourne Shell 注意问题备忘 [转载]socket编程原理 组件设计时支持小结 spring 笔记(java版) 说说网络通信模型 几个网络模型的示例代码(BlockingModel、OverlappedModel、WSAEventSelect、CompletionRoutine)..c++ 发个IOCP的C++例子 [转载]IOCP模型的总结 [转载]理解 I/O Completion Port (IOCP完成端口) [转载]手把手教你玩转SOCKET模型之重叠I/O篇 [转载]Windows网络编程系列教程之四:Select模型 [转载]同步、异步、阻塞和非阻塞的概念 网站内存泄漏问题追踪--初始访问后,三次查询点击内存使用量达400M 检测MDAC版本的检测器 oracle里面对数字的位与或运算
关于如何判断程序和类库是Debug 还是 Release 的问题
baoli · 2008-02-19 · via 博客园 - baoli

在发布程序时不小心把一部分Debug的dll文件和一部分Release的dll文件混合发布了,最后导致整个生产环境瘫痪(内存和cpu使用量很高,同时网站访问无响应)。到现在我还搞不懂为什么会这样,也许是代码中有些地方用了一下比较不稳定的东西,也或许是dotnet的framework在Debug和Release混合下就会发生问题。但是就解决问题角度来说,最快速的应该是把这堆混合后的dll文件再次区分开,然后重新发布一个统一了版本的dll。

isDebug
http://www.sliver.com/dotnet/IsDebug/作者有一个用于做这方面检测的程序isDebug。这个程序能分辨exe和dll文件是

Debug 还是 Release 。但是该程序不是十分准确,部分的dll不能真实分辨,而且只适合使用在dotnet程序下。ps:本程序的作者就是Reflector的作者。

也谈判断一个程序是Debug 还是 Release 的一篇文章里面找到了另一个判断程序是否Debug的方法。该方法是直接通过读取程序文件中的标记来作判断的,因此该方法合适使用在各种执行文件和类库上。其结果也比isDebug准确,很多isDebug分辨错误的,它也能准确分辨。
其核心代码如下:

Code

因此我使用该方法做了一个类似isDebug的程序。下载
该程序还有两个主要的问题:
1、对可执行文件和类库只使用后缀作判断,总觉得这很不妥;
2、没有找到判断托管执行文件和非托管文件的办法。

 最后说一下前面提到的系统瘫痪,Debug和Release混合不是这个问题的根源,而一般仅仅是导火线。