Сравнение потока программ между одним и тем же приложением в .net 1.1 и .net 2.0 - PullRequest
0 голосов
/ 19 февраля 2009

Я смотрю на обновление приложения, которое мы разрабатываем здесь, используя Visual Studio 2003 / .NET 1.1 до Visual Studio 2008 / .NET 2.0.

Теперь я тестировал материал и обнаружил, что у меня есть воспроизводимый случай, когда версия .NET 1.1 делает то, что должна, а версия .NET 2.0 (тот же код) заканчивается бесконечной рекурсией ( рекурсия преднамеренная, но должна быть ограничена двумя уровнями ..)

Есть ли на рынке что-либо для сравнения потока программ двух запущенных приложений, например параллельный отладчик или что-то в этом роде, или мне придется прибегнуть к пошаговому обходу обоих приложений по отдельности и попытаться найти различия в потоке / состояние вручную?

Я почти уверен, что это будет либо добавление большого количества кода для регистрации, но, возможно, у кого-нибудь есть отличная идея / совет, чтобы отследить это?

(К вашему сведению, на данный момент я думаю, что это как-то связано со связыванием данных, поскольку между связыванием данных в .NET 1.1 и .NET 2.0 были и другие [фатальные] различия ...)

1 Ответ

0 голосов
/ 01 октября 2009

Если вы знаете, где происходит рекурсия, то, возможно, какие-то удачно расположенные точки останова, наряду с обильным использованием окна «Наблюдение», чтобы вы могли увидеть значения, которые используются для определения необходимости другой рекурсивной поездки, и вы должно быть в состоянии найти, где они расходятся.

Другой вариант - использовать инструмент Diff (например, DiffMerge * Sourcegear ) для сравнения изменений, которые вы внесли в две версии базы кода. Я не знаю, что разные версии фреймворка будут обрабатывать один и тот же код по-разному, поэтому я готов поспорить, что различие заключается в коде, который вы изменили в ходе обновления до 2.0.

...