使用sos.dll调试.net应用程序时,为什么本地和参数在堆栈框架上没有显示数据?

gfa*_*fan 2 .net debugging windbg sos

我的.net 4 asp.net应用程序正在处理请求,但请求是超时,所以我得到一个转储并尝试在线调试实时应用程序(修订版:只分析转储文件,而不是附加到应用程序的实时进程) ).我发现消耗请求的线程花费1分5秒.我浏览了那个帖子的堆栈.我想尝试找出参数和局部变量,但是命令输出显示没有数据,只有一些局部变量有值.我可以知道为什么会这样吗?方法'FilterEntity'调用'Concat',不返回'Concat'.所以我假设'FilterEntity'的本地人必须在那里.我哪里错了?

我有源代码.我知道这段代码非常慢是因为有一个非常大的字符串,比如'... AEc3988sfdfJDelxn ...'与循环中的','重复一致.

我想找到真正的大字符串,根本原因的证据.

!clrstack -a:

00000000741ebe10 000007feeffa1ff0 System.String.Concat(System.String, System.String, System.String)
    PARAMETERS:
        str0 = <no data>
        str1 = <no data>
        str2 = <no data>
    LOCALS:
        <no data>
        <no data>

00000000741ebed0 000007ff0080e918 Business.FilterDataProcess.FilterEntity(Request, Entity)
    PARAMETERS:
        Request = <no data>
        Entity = <no data>
    LOCALS:
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        <no data>
        0x00000000741ec160 = 0x000000078b27a018
        <no data>
Run Code Online (Sandbox Code Playgroud)

Ste*_*son 5

问题是你正在调试优化的代码.在这种情况下,抖动不会生成参数和本地的跟踪信息.要禁用优化以使调试更容易,请参阅以下内容:使映像更易于调试