Отладка без Visual Studio, но доступны исходные файлы и файлы pdb - PullRequest
0 голосов
/ 14 июля 2020

Ситуация следующая:

У меня есть компьютер Windows 10 с Visual Studio 2019, и там в режиме отладки был создан проект c#. NET, и он работает.

Программа генерирует необработанное исключение с бессмысленным / неоднозначным сообщением на другом Windows 7 компьютере. На этом компьютере установлена ​​Visual Studio 2008. Меня спрашивают, использовать ли его для отладки, и я бы хотел это сделать, чтобы получить код, вызвавший исключение. После копирования всех исходных файлов на компьютер Windows 7 я обнаружил, что не могу загрузить проект с помощью Visual Studio 2008, поскольку VS 2008 отказывается загружать файлы проекта, созданные в более новых версиях Visual Studio.

I Тем не менее, я получаю предложение использовать отладчик Visual Studio 2008 на cra sh, но если я использую его, все, что я получаю, это бесполезный код ассемблера и бессмысленный адрес местоположения cra sh, поскольку отладчик не связан с исходным кодом, а Visual Studio, AFAIK, не может связать этот адрес с исходным кодом. Итак, ситуация такова, что у меня есть все исходные файлы и файлы символов, доступные на целевой машине, но отладчик не загружает их, я не знаю, могу ли я как-то показать их отладчику вне Visual Studio и запустить проект. из Visual Studio 2008 невозможно, потому что он не загружает исходные файлы проекта.

Есть ли способ получить значимую отладку, я имею в виду, что со всеми файлами на месте должна быть возможность отладки с исходным кодом отображать, даже если версии Visual Studio не совпадают.

Версия Framework - 4.x (самая последняя, ​​думаю, 4.7). В сообщении говорится, что служба не была запущена или отсутствует на машине W7, к сожалению, нет намека на то, какая из 1000 возможных служб имеется в виду. Если я загружаю отладчик VS 2008, я получаю довольно бесполезный намек на то, что cra sh произошла по адресу $ ..... (очень, очень длинный шестнадцатеричный адрес). Если бы я знал, какая часть программы вызывает исключение, я мог бы легко узнать. Вопрос не в том, чтобы разрешить исключение, а исключительно в том, как использовать отладчик, чтобы выяснить, откуда исходит исключение, при описанных обстоятельствах.

Ответы [ 2 ]

1 голос
/ 15 июля 2020

Вы можете использовать такие инструменты, как dnSpy и мой Runtime Flow для облегченной отладки, чтобы определить, какая часть программы вызвала исключение.

0 голосов
/ 15 июля 2020

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

Я думаю, вы могли бы использовать Remote Debugger , как сказал Павел. Он будет использовать локальный VS2019 для отладки исходных файлов на удаленном компьютере без VS2008.

Сначала , вам следует установить удаленный инструмент или просто скопировать папку Remote Debugger на удаленный компьютер и затем настройте как в этом документе указано , запустите его как Администратор на удаленном компьютере.

Затем , используйте IIS для запуска asp net исходных файлов (у вас есть все исходные файлы проекта и файлы вывода) на удаленном компьютере

и на локальном компьютере, откройте VS2019, используйте Присоединитесь к процессу , чтобы поймать процесс вашего проекта с удаленного компьютера.

Подробнее см. этот официальный документ об этом .

Помимо , вы также можете использовать Инструменты отладки для Windows ----- WinDbg.

...