我的.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>
答案 0 :(得分:5)
问题在于您正在调试优化代码。在这种情况下,抖动不会生成参数和本地的跟踪信息。要禁用优化以简化调试,请参阅以下内容:Making an Image Easier to Debug