c# - 我无法理解 clrstack 结果
问题描述
Cent OS 7 上的核心转储测试,使用 dotnet core 3.1。
这是完整的源代码。
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]
>
(对不起,我不是英语母语)
解决方案
推荐阅读
- swift - 如何避免重复功能
- google-bigquery - 如何在 Datagrip 中的两个不同数据源之间运行查询?
- c# - 如何将数据传递给 ASP.NET MVC 中的模式视图
- javascript - Javascript石头剪刀布游戏的问题
- python - DjangoCMS 插件列出 apphook 模型中的特定人员
- node.js - 在 Node.js/Electron 应用程序中使用 iTunes 库框架?
- java - 如何在电子邮件中附加图像?我正在使用 AWS SES 服务使用 JAVA 发送电子邮件 - Spring Boot
- c++ - 赋值文法与 λ-演算应用文法冲突
- python - 如何在 GoCV 中提取信心
- javascript - EJS如何在变量内渲染变量