重新整理 .net core 实践篇 ———— linux上排查问题 [外篇]( 二 )


那么生成了核心转储服务 , 有没有管理的 , 那肯定是有的 , 比如apport
捕获核心转储和调试器:
有多种工具可用于捕获核心转储文件 , 例如 gcore、gdb 和用于分析核心转储文件的多个工具 , 例如 objdump、 kdump、 gdb 和 lldb 。
但是 , 在使用这些工具尝试执行 .NET 调试时 , 你会遇到一些重大困难:
与在 Windows 上为 WinDbg 调试器设置符号的过程相比 , 配置可能很困难 。核心转储文件很大 , 因为这些工具不知道在 .NET Core 进程中使用了哪个内存区域 , 并且无法将内存信息剪裁为仅需要什么 。转储文件不可移植 。必须分析生成这些文件的 Linux 计算机上的转储文件 。如果要分析不同 Linux 计算机上的转储文件 , 则需要执行额外的步骤来为调试会话配置主机 。
微软官方推荐:
Lldb 是用于分析 .NET Core 转储的建议工具 。.NET SDK 包括用于正确配置 lldb 的有用工具 。但是 , 必须安装至少版本 3.9 才能对 .NET Core 执行此类调试分析 。
若要安装 lldb 3.9 或更高版本 , 请使用包管理器 ( , 例如: sudo apt install lldb)。
但是微软有自己的 , 比如:createdumpdotnet-dumpdotnet-gcdumpdotnet-symbolProcdump
这几个是需要掌握的 , 因为内容比较多 , 所以下一节吧 。
结下一节介绍:
Lldbcreatedumpdotnet-dumpdotnet-gcdumpdotnet-symbolProcdump

经验总结扩展阅读