Какие инструменты доступны для обнаружения повреждения кучи в программе .NET/C#?

Я знаю, что могу использовать WinDbg+PageHeap+ApplicationVerifier - инструменты Microsoft.

Я читал, что для С++ доступно много инструментов, и мне интересно, существует ли что-то подобное для С#?


person net_prog    schedule 19.09.2011    source источник


Ответы (1)


Это те инструменты, которые вы используете для устранения неполадок с неправильным поведением родного кода. Нарушения прав доступа, повреждение кучи, утечки ресурсов и тому подобное. Этого просто не происходит в чистом управляемом коде благодаря концепции безопасного кода и сборщика мусора. Если у вас есть зависимость от нативного кода в управляемом проекте, который ведет себя неправильно (например, Fatal Execution Engine Error), вы по-прежнему используете те же инструменты. Диагностика никогда не бывает легкой.

person Hans Passant    schedule 19.09.2011
comment
В одиночестве? Нет. Гонки потоков не приводят к повреждению кучи в .NET. - person Hans Passant; 19.09.2011
comment
здесь люди говорят, что управляемый код может повредить кучу. - person net_prog; 27.09.2011
comment
Да, конечно, класс маршала позволяет нарушать правила. Вот для чего это нужно. Если вы еще не сканировали свой код на наличие ссылок Marshal, DllImport, unsafe и COM, обязательно обратитесь за помощью к члену команды, который лучше знает кодовую базу. - person Hans Passant; 27.09.2011