正确使用dotnet-*工具的方法

2022-04-16 10:43:54
目录
安装验证dotnet-dumpcreatedump分析coredump文件et/shared/Microsoft.NETCore.App/3.1.10/createdump -u 1 (1是我容器中程序的进程id)

正确使用dotnet-*工具的方法

他会将coredump文件生成到容器的tmp目录下,至此没报错的话,说明成功 如果报权限相关错误,可以在你的yaml文件里加上:

正确使用dotnet-*工具的方法

分析coredump文件

先将上面生成在tmp下的coredump文件copy到可以调试的地方

kubectl cp bookstore/demo-7b6d9f6d4f-2t8hl:/tmp/coredump.1 /root/mydump/coredump.1 -c app-k8s

正确使用dotnet-*工具的方法

然后为我们的coredump.1文件下载关联的symbol:

如果你准备分析dump的机器没有dotnet sdk的话,先装一个把
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm sudo yum install dotnet-sdk-3.1
如果dotnet-symbol没有安装的话,安装一个
dotnet tool install --global dotnet-symbol 然后关闭当前终端,再打开一个新的
然后执行dotnet-symbol --host-only --debugging coredump.1

正确使用dotnet-*工具的方法

看到dac,dbi文件写入就代表成功了,这时候你的文件夹应该长这样

正确使用dotnet-*工具的方法

然后我们使用lldb进行调试
如果你机器里没装的话,先装一个吧 安装sos插件: dotnet tool install --global dotnet-sos dotnet-sos install lldb-8 --core coredump.1 然后就可以用lldb来分析dump文件了

相关资料:

https://docs.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-symbol https://github.com/dotnet/diagnostics/blob/master/documentation/debugging-coredump.md https://devblogs.microsoft.com/devops/understanding-symbol-files-and-visual-studios-symbol-settings/ https://github.com/dotnet/diagnostics/blob/master/documentation/FAQ.md https://github.com/dotnet/runtime/issues/11012 关于大对象使用的注意点以及官方blob gc的实现描述

以上所述是小编给大家介绍的正确使用dotnet-*工具的方法,希望对大家有所帮助。在此也非常感谢大家对我们网站的支持!