我经常在windbg中调试.netframeworkv2.0/v 4.0代码。在v 2.0中,主clr dll称为“mscorwks.dll”,在v 4.0中称为“clr.dll”。很多人都知道,要在v 2.0中加载sos,我们必须输入“.loadby sos mscorwks”,在v 4.0中输入“.loadby sos clr”。这对我来说是一种痛苦。提出了一个基于clr版本自动加载sos的脚本

!for_each_module .if(($sicmp( “@#ModuleName” , “mscorwks”) = 0) ) {.loadby sos mscorwks} .elsif ($sicmp( “@#ModuleName” , “clr”) = 0) {.loadby sos clr}

您可以通过在clr中基于.NET Framework版本设置一个断点来提高它的性能

!for_each_module .if(($sicmp( “@#ModuleName” , “mscorwks”) = 0) ) 
{bp mscorwks!WKS::GCHeap::SuspendEE “
.if (dwo(mscorwks!WKS::GCHeap::GcCondemnedGeneration)==2)
{.echo start of gen 2}“}
.elsif ($sicmp( “@#ModuleName” , “clr”) = 0)
{bp clr!WKS::GCHeap::SuspendEE “
.if (dwo(clr!WKS::GCHeap::GcCondemnedGeneration)==2)
{.echo start of gen 2}“}

 

相关文章:

  • 2021-08-19
  • 2021-06-17
  • 2021-11-16
  • 2022-12-23
  • 2020-11-16
  • 2022-12-23
  • 2022-12-23
  • 2022-01-04
猜你喜欢
  • 2022-12-23
  • 2021-07-12
  • 2022-01-23
  • 2022-12-23
  • 2021-04-06
  • 2021-11-29
  • 2022-12-23
相关资源
相似解决方案