gpt4 book ai didi

c# - 从这个堆栈开始的地方获取方法名称

转载 作者:行者123 更新时间:2023-11-30 16:26:47 24 4
gpt4 key购买 nike

我在 windbg 命令提示符下运行 !dumpstack 时得到以下结果。

000000000a136510 000007fed86f404c (MethodDesc 000007fed85d7e60 +0x14c System.Data.SqlClient.SqlParameter.GetActualSize()), calling System_Data_ni+0x10f010
000000000a136530 000007fed86f483d (MethodDesc 000007fed85d7f18 +0x4d System.Data.SqlClient.SqlParameter.GetCoercedValue()), calling System_Data_ni+0x10efc0
000000000a136570 000007fed86f4ac8 (MethodDesc 000007fed85d7fc0 +0x58 System.Data.SqlClient.SqlParameter.ValidateTypeLengths(Boolean))
000000000a136650 000007fed870322d (MethodDesc 000007fed861d7a0 +0x1d Bid.Trace(System.String, Int32)), calling clr+0x2da0
000000000a1366a0 000007fed86f2a98 (MethodDesc 000007fed85c2240 +0x6a8 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, Boolean)), calling (MethodDesc 000007fed85dabe0 +0 System.Data.SqlClient.TdsParser.TdsExecuteRPC(System.Data.SqlClient._SqlRPC[], Int32, Boolean, System.Data.Sql.SqlNotificationRequest, System.Data.SqlClient.TdsParserStateObject, Boolean))
000000000a1366e0 000007fee2babf7d (MethodDesc 000007fee28bedf8 +0x7d System.WeakReference.set_Target(System.Object)), calling 000007fee4123f00 (stub for System.GC.KeepAlive(System.Object))
000000000a136770 000007fed86f23ca (MethodDesc 000007fed85c2230 +0x21a System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String, System.Data.Common.DbAsyncResult)), calling System_Data_ni+0x10ee58
000000000a1367a0 000007fed86fad47 (MethodDesc 000007fed85d9cb0 +0x797 System.Data.ProviderBase.DbConnectionPool.GetConnection(System.Data.Common.DbConnection)), calling (MethodDesc 000007fed85d9348 +0 System.Data.ProviderBase.DbConnectionInternal.ActivateConnection(System.Transactions.Transaction))
000000000a1367e0 000007fee2bdc66b (MethodDesc 000007fee299df68 +0x1b System.Security.CodeAccessSecurityEngine.Check(System.Security.CodeAccessPermission, System.Threading.StackCrawlMark ByRef)), calling clr+0x2da0
000000000a136820 000007fed86f219c (MethodDesc 000007fed85c2220 +0x1c System.Data.SqlClient.SqlCommand.RunExecuteReader(System.Data.CommandBehavior, System.Data.SqlClient.RunBehavior, Boolean, System.String)), calling System_Data_ni+0x10ef48
000000000a136830 000007fed86f1431 (MethodDesc 000007fed85c1d10 +0x21 System.Data.SqlClient.SqlCommand.get_Statistics()), calling System_Data_ni+0x10e8f8
000000000a136860 000007fed86f1fa0 (MethodDesc 000007fed85c20f8 +0x100 System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior, System.String)), calling System_Data_ni+0x10eec8
000000000a136890 000007fed86f9f99 (MethodDesc 000007fed85d9b90 +0x59 System.Data.ProviderBase.DbConnectionFactory.GetConnection(System.Data.Common.DbConnection)), calling (MethodDesc 000007fed85d9cb0 +0 System.Data.ProviderBase.DbConnectionPool.GetConnection(System.Data.Common.DbConnection))
000000000a136910 000007fed86f1e74 (MethodDesc 000007fed85c20b8 +0xe4 System.Data.SqlClient.SqlCommand.ExecuteReader(System.Data.CommandBehavior)), calling System_Data_ni+0x10ee68
000000000a136930 000007fed86f0b5d (MethodDesc 000007fed85d72e8 +0x23d System.Data.SqlClient.SqlConnection.Open()), calling (MethodDesc 000007fed861d3c0 +0 Bid.ScopeLeave(IntPtr ByRef))
000000000a136950 000007fed86f50b2 (MethodDesc 000007fed85d8e28 +0x92 System.Data.SqlClient.SqlParameterCollection.Add(System.Object))
000000000a1369c0 000007ff00c075d1 000007ff00c075d1, calling System_Data_ni+0x10ef30

我的问题是我无法从该堆栈开始的地方获取方法名称。你能告诉我一个跟踪它的命令吗?

前几行结果是:

    0:045>  !dumpstack
OS Thread Id: 0x2ecc (45)
TEB information is not available so a stack size of 0xFFFF is assumed
Current frame: clr!LogHelp_LogAssert+0x14e54
Child-SP RetAddr Caller, Callee
000000000a136100 000007fee4167ca9 clr!PreBindAssemblyEx+0x14c9d, calling clr+0x12e0
000000000a136130 000007fee446962e clr!CreateAssemblyConfigCookie+0x554de, calling clr+0x21a0
000000000a136140 000007fee40d2b44 clr!LogHelp_LogAssert+0x1efe4, calling clr!LogHelp_LogAssert+0xf80
000000000a136210 000007fed8716d76 (MethodDesc 000007fed85d67a0 +0x36 DomainNeutralILStubClass.IL_STUB_PInvoke(SNI_Conn*, SNI_Packet_IOType, SNI_Packet*, ConsumerNum)), calling 000007fee40c89a0 (stub for System.StubHelpers.StubHelpers.BeginStandalone(IntPtr, IntPtr, Int32))
000000000a1362b0 000007fee4167b5c clr!PreBindAssemblyEx+0x14b50, calling clr!LogHelp_LogAssert+0xf10

最佳答案

您尝试过“!CLRStack -p”吗?

此外,DumpMethodSig 将获得完整的方法签名。

以下是您可以使用的所有命令: http://msdn.microsoft.com/en-us/library/bb190764.aspx

关于c# - 从这个堆栈开始的地方获取方法名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8506126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com