windbg的.loadby sos clr第一次总不成功,必须在加载clrjit以后才能运行,为何?

iuikjasd 2014-06-24 04:19:58
我用vs2012写了一个很简单的C#程序(创建控制台程序,所有选项默认),debug版,源代码如下:

class Program
{
static void Main(string[] args)
{
int a;
string str;
a = 5;
str = a.ToString();
Console.WriteLine(str);
}
}

编译得到debug版的可执行程序。启动windbg(windbg:6.11.0001.404 x86),Ctl+E加载这个程序,然后
0:000> .loadby sos clr
Unable to find module 'clr'
奇怪了,为什么说找不到clr这个模块呢?明明就是在sos.dll里面的一个模块对吧?
-----------------------------------------------------------------------------------
然后我发现这样就可以:
(1).restart
(2)sxe ld:clrjit
(3)g 中断在加载clrjit的场景中
(4).loadby sos 没有问题。
windbg的屏幕输出如下:
------------------------------------------------------------------------------------

0:000> .restart
CommandLine: "D:\Documents\Visual Studio 2012\Projects\ConsoleApplication1\ConsoleApplication2\bin\Debug\ConsoleApplication2.exe"
Symbol search path is: srv*d:\symbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
(7c0.31ec): Break instruction exception - code 80000003 (first chance)
eax=00000000 ebx=00000000 ecx=d14b0000 edx=0027e358 esi=fffffffe edi=00000000
eip=7701103b esp=003cfaf4 ebp=003cfb20 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!LdrpDoDebuggerBreak+0x2c:
7701103b cc int 3
0:000> sxe ld:clrjit
0:000> g
(7c0.31ec): Unknown exception - code 04242420 (first chance)
ModLoad: 5f070000 5f0de000 C:\Windows\Microsoft.NET\Framework\v4.0.30319\clrjit.dll
eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=7efdd000 edi=003ceb10
eip=76f8fc62 esp=003ce9e4 ebp=003cea38 iopl=0 nv up ei pl zr na pe nc
cs=0023 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00000246
ntdll!NtMapViewOfSection+0x12:
76f8fc62 83c404 add esp,4
0:000> .loadby sos clr

------------------------------------------------------------------------------------

我的问题是:难道我要每次都输这么一大堆命令才能成功的.loadby sos clr吗? 为什么直接运行会失败呢? 网上搜了一下,好多人也遇到这样的问题,但是没看到彻底的解决方案。这个是windbg版本的问题,还是某个bug?

谢谢。
...全文
776 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
饕餮123 2014-11-08
  • 打赏
  • 举报
回复
一开始的时候,console程序宿主还没有加载clr呢 你loadby当然不会成功了,骚年

24,856

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧