Действительно ли возможно отладить системный DLL.NET, как не оптимизировано?

Я пытаюсь отладить некоторый код в Платформе.NET. К сожалению, многие переменные оптимизированы далеко, и я не могу надежно установить указатель команд, должный течь оптимизация.

Действительно ли возможно вынудить время выполнения НЕ использовать ngen'd версии системного DLL.NET, но вместо этого использовать MSIL, вызывая оптимизацию к 'прочь'?

Примечание: Я попытался использовать прием INI для установки AllowOptimize=false, но это не имело никакого значения.

9
задан scobi 20 February 2010 в 02:46
поделиться

2 ответа

Получил ответ от Джона Роббинса. По сути, вставьте COMPLUS_ZapDisable = 1 в свои env vars (оберните летучей мышью, чтобы избежать неоптимизированной работы всей системы) и отключите процесс хостинга VS.

http://blogs.msdn.com/sburke/archive/2008/01/29/how-to-disable-optimizations-when-debugging-reference-source.aspx

Другой вариант - новый .NET. Reflector Pro, который позволяет выборочно декомпилировать / перекомпилировать сборки без оптимизации. Не обязательно со справочным источником, но с хорошей резервной копией.

http://www.red-gate.com/products/reflector/features_pro.htm

9
ответ дан 4 December 2019 в 09:36
поделиться

Лучше всего не писать планировщик, а использовать встроенный планировщик Windows для запуска кода.

Дополнительные сведения:

http://support.microsoft.com/kb/308569

Примечание: при планировании выполнения задачи под учетной записью, отличной от вашей, приложение может не иметь доступа к сетевым дискам или каким-либо другим ресурсам. Другими словами, могут возникнуть некоторые проблемы с безопасностью, особенно для приложений резервного копирования.

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

-121--4434960-

Попросите разработчика включить приложение SQL Profiler, пока этот человек будет выполнять свой запрос (если вы используете SQL Server). Зафиксируйте запрос и используйте его как собственный.

То, что вы бросили комментарий к вашему запросу (который может не быть передан в SQL), который утверждает авторское право, не означает, что это так. Если вы владеете базой данных и данными в ней, то у вас есть полномочия на просмотр каждого запроса, который идет к ней. Помните, помимо всех остальных, не быть адвоката, мы предполагаем, что вы также не адвокат и вы можете легко играть тупо на этом. Я бы позволил местонахождению 9/10 закона, запечатлеть запрос, и если этот парень хочет подать в суд, скажи ему сделать твой день.

Другим ключевым элементом здесь является то, что нет намерения перераспределить код этого парня. Вы делаете производную работу для собственного внутреннего использования.

-121--603049-

Почему вы не видите код самой рамки .NET с помощью Reflector ? Reflector позволяет просматривать код любой сборки .NET [включая саму рамку .NET!] и даже перекомпилировать его! -- Конечно, это относится к сборкам, которые не являются запутанными!

1
ответ дан 4 December 2019 в 09:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: