Windbg и просмотр контента AppDomain

Я знаю, что мы можем использовать команду !dumpdomain в winbbg для просмотра различных доменов приложений, присутствующих в данном управляемом процессе (например, w3wp).

Я написал небольшую программу (Рецепт 3-1 из Visual C# 2010 Рецепты Подход к решению проблемы) в LinqPad, чтобы создать собственный AppDomain. Здесь я сталкиваюсь с проблемами. Я не могу просмотреть этот домен приложения с помощью windbg. Другими словами, где создается этот домен приложения? Он размещен внутри процесса LinqPad? Если нет, то в каком процессе размещается этот пользовательский домен приложения?

Я попытался подключить LinqPad.exe к windbg и выдал команду !dumpdomain, но получил следующую ошибку:

Не удалось найти DLL среды выполнения (clr.dll), 0x80004005 Команды расширения нуждаются в clr.dll, чтобы что-то делать.

Код :

void Main()
{
    AppDomainSetup setUpInfo = new AppDomainSetup();

    setUpInfo.ApplicationBase = @"C:\MyRootDirectory";
    setUpInfo.ConfigurationFile = "MyApp.config";
    setUpInfo.PrivateBinPath = "bin;plugins;external";

    AppDomain newDomain = AppDomain.CreateDomain("My New Domain",null,setUpInfo);

    Console.WriteLine("Main method complete.Press Enter");
    Console.ReadLine();
}

Выполненные шаги:

  • Запустите программу. Он ждет, пока пользователь нажмет Enter.
  • Запустите виндбг. Прикрепите LinqPad.exe.
  • команды выпуска: .load sos.dll и .load sosex.dll
  • Выдать команду .reload
  • Наконец, вызовите !dumpdomain. В этот момент LinqPad зависает. Если закрываю виндбг, то и LinqPad закрывается.

person Pawan Mishra    schedule 15.11.2011    source источник


Ответы (1)


Он создается внутри процесса LINQPad. Сам ваш запрос выполняется в отдельном AppDomain, созданном LINQPad. Может ли сообщение об ошибке быть связано с несоответствием версии CLR? Вы используете LINQPad 2.x или 4.x?

person Joe Albahari    schedule 15.11.2011
comment
Я использую LinqPad версии 4.31. Загруженная SOS.dll соответствует версии .Net 4.0. Я обновил вопрос с помощью кода, который я использую для создания домена приложения. - person Pawan Mishra; 15.11.2011