views:

195

answers:

1

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.

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..)

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...)

A: 

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. 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.

rwmnau