我正在考虑使用Visual Studio 2003 / .NET 1.1将我们正在开发的应用程序升级到Visual Studio 2008 / .NET 2.0。
现在我正在测试一些内容,发现我有一个可重现的案例,其中.NET 1.1版本完成它应该做的事情,而.NET 2.0版本(相同的代码)最终以无限递归(递归是有意的,但它应该被限制在2个级别..)
市场上是否存在比较两个正在运行的应用程序的程序流程的任何内容,例如并排调试器或其他东西,或者我将不得不单独单步执行这两个应用程序并尝试查找流程中的差异/手动状态?
我很确定它会是那个或添加大量的日志记录代码,但也许有人有一个好主意/提示来跟踪它?
(仅供参考,我现在最好的猜测是它与数据绑定有关,因为.NET 1.1和.NET 2.0数据绑定之间存在其他[致命]差异......)
答案 0 :(得分:0)
如果您知道递归的位置,那么可能是一些位置很好的断点,以及大量使用“监视”窗口,这样您就可以看到用于决定是否需要进行另一次递归跳转的值,以及应该能够找到他们分歧的地方。
另一种选择是使用Diff工具(如Sourcegear's DiffMerge)来比较您在代码库的两个版本之间所做的更改。我不知道框架的不同版本会以不同的方式处理相同的代码,所以我敢打赌,差异是您在升级到2.0时修改过的代码。