dotnet lldb测试(总结中,有不对的请提醒,谢谢)

准备工作

  1. dotnet发布到linux-x64的程序,在*/shared/Microsoft.NETCore.App/2.1.3 文件夹中有libsosplugin.so 和libcoreclr.so ,这两个库是调试时使用的,在发布的时候,注意查看有没有这两个库,因为在arm平台上使用的时候发现没有libsosplugin.so,只有libsos.so,当然这个在linux-x64上发布的程序中也有。
  2. 安装SOS,这个要求是2.1或者.NET Core SDK 安装,如果现实dotnet-sos已经安装了,注意在使用的时候判断是否要卸载之后,重新安装。安装命令:dotnet tool install -g dotnet-sos.   更新命令:dotnet tool update -g dotnet-sos  卸载并且移除lldb配置命令:dotnet-sos uninstall   移除SOS安装工具:dotnet tool uninstall -g dotnet-sos
  3. 在安装的时候,可能需要安装.NET Core SDK ,使用的命令:sudo apt-get install dotnet-sdk-2.1,版本号自己定。

开始调试步骤

  1. dotnet netcore应用生成内存转储文件  */dotnet/shared/Microsoft.NETCore.App/2.1.1/createdump PID,这会生成core.PID
  2. lldb dotnet -c /tmp/coredump.PID  -o "plugin load */shared/Microsoft.NETCore.App/2.1.3/libsosplugin.so"  注意这里的so库的位置是你程序的位置,不要指错了位置,
  3. sos ClrStack 可以查看线程信息。之后的调试信息http://blogs.microsoft.co.il/sasha/2017/02/26/analyzing-a-net-core-core-dump-on-linux/,https://codeblog.dotsandbrackets.com/net-core-memory-linux/,https://www.cnblogs.com/calvinK/p/9263696.html  参照这些就好了。

你可能感兴趣的:(dotnet,lldb)