为什么当地人和参数显示在通过StackFrame没有数据使用sos.dll调试.NET应用程序时?应用程序、当地、参数、数据

2023-09-06 11:07:26 作者:无人及你

我的.NET 4 asp.net应用程序正在处理的请求,但请求超时,所以我得到的转储,并尝试现场应用程序在线(修订调试:刚才分析转储文件,而不是attatch到现场处理该应用程序的)。我发现一个线程消耗请求费1分5秒。 我去通过线程的堆栈。我想尝试找出参数和局部变量,但命令输出显示没有数据,只有一些局部变量的才有价值。我想知道为什么会这样?该方法FilterEntity来电Concat的中,Concat的'不返回。所以,我认为FilterEntity当地人必须在那里。我在哪里错了?

我源$ C ​​$ C。我知道这片code是很慢的,因为有一个非常大的字符串,如... AEc3988sfdfJDelxn ......与被concated,反复循环过程。

我想找到真正的大串的根本原因的证据。

  clrstack -a!

00000000741ebe10 000007feeffa1ff0 System.String.Concat(System.String,System.String,System.String)
    参数:
        STR0 =<没有数据>
        STR1 =<没有数据>
        STR2赛车=<没有数据>
    LOCALS:
        <没有数据>
        <没有数据>

00000000741ebed0 000007ff0080e918 Business.FilterDataProcess.FilterEntity(请求,实体)
    参数:
        请求=<没有数据>
        实体=<没有数据>
    LOCALS:
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        <没有数据>
        0x00000000741ec160 = 0x000000078b27a018
        <没有数据>
 

解决方案

现在的问题是,你正在调试优化code。在这种情况下,不是由抖动生成参数和当地人跟踪信息。要禁用优化,使调试更加容易,请参阅以下内容:使图像更容易要调试

My .net 4 asp.net application is processing a request, but the request is timeout, so I get a dump and try to debug the live app online( revised: just analyse the dump file, not attatch to the live process of the app.). I find a thread that consumes the request costs 1 min 5 sec. I go through the stack of that thread. I want to try to find out the parameters and local variables, but the command output shows no data, only some of the local variables have value. May I know why this happened? the method 'FilterEntity' calls 'Concat', the 'Concat' is not returned. So I assume that the locals of 'FilterEntity' must be there. Where am I wrong?

python Pandas数据统计分析 连接数据库操作 DataFrame操作

I have the source code. I know this piece of code is very slow is because there is a very big string like '...AEc3988sfdfJDelxn...' to be concated with ',' repeatly in a loop.

I want to find the real big string, the evidence of the root cause.

!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>

解决方案

The problem is that you're debugging optimized code. In this case, tracking info for parameters and locals is not generated by the jitter. To disable optimization to make debugging easier, see the following: Making an Image Easier to Debug