简体   繁体   English

比较.net 1.1和.net 2.0中相同应用程序之间的程序流

[英]Comparing program flow between same app in .net 1.1 and .net 2.0

I'm looking at upgrading an application we're developing here using Visual Studio 2003 / .NET 1.1 to Visual Studio 2008 / .NET 2.0. 我正在考虑使用Visual Studio 2003 / .NET 1.1将我们在此处开发的应用程序升级到Visual Studio 2008 / .NET 2.0。

Now I was testing stuff, and found that I have a reproducable case in which the .NET 1.1 version does what it is supposed to do, while the .NET 2.0 version (same code) ends up in an infinite recursion (the recursion is intentional, but it is supposed to be limited to 2 levels..) 现在,我正在测试某些东西,发现我有一个可重现的案例,其中.NET 1.1版本执行了应做的事情,而.NET 2.0版本(相同的代码)以无限递归结束(递归是有意的) ,但应该限制为2个级别。)

Is there anything on the market for comparing program flow of two running applications, like a side-by-side debugger or something, or will I have to resort to stepping through both apps separately and trying to find the differences in flow/state manually? 市场上是否有任何东西可以比较两个正在运行的应用程序的程序流程,例如并排调试器之类的东西,还是我不得不采取措施分别浏览这两个应用程序并尝试手动查找流程/状态的差异?

I'm pretty sure it will be either that or adding a lot of logging code, but maybe anyone has a great idea / tip to track this down? 我很确定这是或者添加了大量的日志记录代码,但是也许任何人都有一个很好的主意/提示来进行跟踪?

(FYI, my best guess at this moment is that it has something to do with data binding, because there were other [fatal] differences between .NET 1.1 and .NET 2.0 data binding...) (仅供参考,此刻我的最佳猜测是它与数据绑定有关,因为.NET 1.1和.NET 2.0数据绑定之间还有其他[致命]区别...)

If you know where the recursion if happening, then maybe some well-placed breakpoints, along with copious use of the "Watch" window so you can see the values that are used to decide if another recursive trip is necessary, and you should be able to find where they diverge. 如果您知道递归发生的位置,那么也许可以适当地放置一些断点,并大量使用“监视”窗口,这样您就可以看到用于确定是否有必要进行另一次递归行程的值,并且您应该能够找出分歧之处。

Another option would be using a Diff tool (like Sourcegear's DiffMerge ) to compare the changes you've made between the two versions of your code base. 另一个选择是使用Diff工具(例如Sourcegear的DiffMerge )来比较您在两个版本的代码库之间所做的更改。 I don't know that the different versions of the framework would process the same code differently, so I would bet that the difference is code that you've modified as part of your upgrade to 2.0. 我不知道框架的不同版本会以不同的方式处理相同的代码,所以我敢打赌,区别在于您在升级到2.0时已修改了代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM