Я хочу получить собственный (x86) код функции debugee из отладчика с использованием ICorDebug API. Получив ICorDebugFunction, я могу вызвать GetNativeCode, но он возвращает собственный код, только если он был Jited. Так что мне нужно сделать это. RuntimeHelpers.PrepareMethod может это сделать, но ему нужен метод handle (не токен метода). Из отладчика у меня есть токен метода, но не дескриптор метода. Итак, можно ли получить реальный объект MethodInfo (который может получить мне дескриптор) функции debugee от отладчика? Другими словами, можно ли отвлечься от дебюганта от дебюта?Можем ли мы отразиться на debugee от отладчика в .Net
1
A
ответ
3
Не совсем.
Вы можете использовать IMetadataImport et. al., чтобы получить статическую информацию и некоторые динамическая информация доступна непосредственно через ICorDebug апи, но и любой другой вид отражения необходимо будет работать на отлаживаемом (которые обычно используют ICorDebugeEval).
Если вы не против использования ICorDebugEval для выполнения вашего отражения на debuggee, вы можете использовать следующую последовательность.
- ICorDebugAppDomain::GetObject, чтобы получить ICorDebugValue, представляющий объект AppDomain в отлаживаемом.
- AppDomain.GetAssemblies() и Assembly.Module, чтобы найти объект модуля.
- Передайте токен метаданных в Module.ResolveMember(int), чтобы получить MethodBase.
- Используйте MethodBase.MethodHandle, чтобы получить ручку времени выполнения.
В зависимости от вашего варианта использования, возможно, было бы полезно объединить последние 3 шага с вашим вызовом PrepareMethod в вспомогательный метод в отдельной сборке, в которой вы используете загрузку отладки.
Смежные вопросы
- 1. Можем ли мы запустить ASP.NET MVC 2.0 на .Net 2.0?
- 2. Можем ли мы интегрировать napster на веб-сайт .net?
- 3. Можем ли мы абстрагироваться от классов классов?
- 4. Можем ли мы добавить собственный баннер в .net Настроить проект?
- 5. Можем ли мы реализовать интерфейсы .NET в сценариях PowerShell?
- 6. Можем ли мы использовать TypeIdentifierAttribute в .NET без COM?
- 7. Подключение нескольких отладчиков к debugee (Java, JPDA)
- 8. Можем ли мы применять темы в приложении C# .net?
- 9. Можем ли мы установить xcode_3.2.5_and_ios_sdk_4.2_final на Lion
- 10. Можем ли мы запустить python на arduino?
- 11. Можем ли мы идентифицировать фотографию на фотографии?
- 12. Можем ли мы заменить изображения на srcset?
- 13. Можем ли мы поймать ошибку на Java?
- 14. Можем ли мы обнаружить экран урона от фона в андроиде?
- 15. Можем ли мы предотвратить пользователя от масштабирования в GoogleMaps
- 16. Можем ли мы отключить финализаторы?
- 17. Можем ли мы перегружать malloc()?
- 18. Можем ли мы клонировать WebView?
- 19. Можем ли мы настроить Deployer с помощью .NET?
- 20. Можем ли мы отключить «chatty» в logcat?
- 21. Можем ли мы использовать классификатор от быстрого шахтера в weka?
- 22. Можем ли мы интегрировать гидролокатор без maven?
- 23. можем ли мы перезагрузить UIView?
- 24. Можем ли мы использовать объекты, унаследованные от WinForms Control, в качестве ключей .NET Hashtable?
- 25. Можем ли мы повернуть страницу?
- 26. Можем ли мы поймать UnsupportedOperationException
- 27. Можем ли мы анимировать видимость?
- 28. Можем ли мы отключить MouseEvents?
- 29. Можем ли мы добавить Модели в Layout.cshtml?
- 30. Можем ли мы получить FileStream для принтера?