问题描述
使用dotnet core 3.1在Cent OS 7上进行核心转储测试。
这是完整的源代码。
using System;
using System.Threading;
namespace Test_NetCoreCrash
{
class Program
{
static void Test1()
{
throw new Exception( "Test" );
}
static void Test2()
{
Test1();
}
static void Main( string[] args )
{
Test2();
}
}
}
通过dotnet-dump打开核心转储。这是clrstack的结果。
$dotnet-dump analyze core.1800
...
> clrstack
OS Thread Id: 0x708 (0)
Child SP IP Call Site
00007FFFD14749B0 00007fa00291c387 [HelperMethodFrame: 00007fffd14749b0]
00007FFFD1474B30 00007F9F88AF0C32 /home/test/Test_Crash_Mine/Test_NetCoreCrash.dll!Unknown
00007FFFD1474B70 00007F9F88AF087F /home/test/Test_Crash_Mine/Test_NetCoreCrash.dll!Unknown
00007FFFD1474B80 00007F9F88AF0838 /home/test/Test_Crash_Mine/Test_NetCoreCrash.dll!Unknown
00007FFFD1474E98 00007fa001ef25ff [GCFrame: 00007fffd1474e98]
00007FFFD1475380 00007fa001ef25ff [GCFrame: 00007fffd1475380]
>
如何获取正确的呼叫站点信息?
预期结果
$dotnet-dump analyze core.1800
...
> clrstack
OS Thread Id: 0x708 (0)
Child SP IP Call Site
00007FFFD14749B0 00007fa00291c387 [HelperMethodFrame: 00007fffd14749b0]
00007FFFD1474B30 00007F9F88AF0C32 Test_NetCoreCrash.Program.Test1() [E:\MySolution\MyMSSolution\Test_NetCoreCrash\Program.cs:line 18]
00007FFFD1474B70 00007F9F88AF087F Test_NetCoreCrash.Program.Test2() [E:\MySolution\MyMSSolution\Test_NetCoreCrash\Program.cs:line 23]
00007FFFD1474B80 00007F9F88AF0838 Test_NetCoreCrash.Program.Main(String[] args) [E:\MySolution\MyMSSolution\Test_NetCoreCrash\Program.cs:line 28]
00007FFFD1474E98 00007fa001ef25ff [GCFrame: 00007fffd1474e98]
00007FFFD1475380 00007fa001ef25ff [GCFrame: 00007fffd1475380]
>
(对不起,我不是英语母语人士)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)