前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在dockers中调试dump的dotnet程序

在dockers中调试dump的dotnet程序

作者头像
旺财的城堡
发布2019-10-24 10:28:04
1.2K0
发布2019-10-24 10:28:04
举报
文章被收录于专栏:calvincalvin

其他调试参考文章

centos7使用lldb调试netcore应用转储dump文件

centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

生成dump文件

如何在docker容器里面创建dump文件请参考:dotnet core调试docker下生成的dump文件

构建一个dotnet,lldb的docker image

dockerfile 文件,基于microsoft/dotnet:2.2-sdk安装lldb,docker builder -f dockerifle --pull -t dotnet-lldb build出来image

代码语言:javascript
复制
FROM microsoft/dotnet:2.2-sdk

RUN apt-get update && apt-get install -y \
    cmake llvm-3.9 \
    clang-3.9 \
    lldb-3.9 \
    liblldb-3.9-dev \
    libunwind8 \
    libunwind8-dev \
    gettext \
    libicu-dev \
    liblttng-ust-dev \
    libcurl4-openssl-dev \
    libssl-dev \
    uuid-dev \
    libnuma-dev \
    libkrb5-dev

安装dotnet-sos插件

dotnet-sos插件可以为我们的dump文件自动选择sos版本,可以有效避免因为dump程序所在机器和调试所有机器安装的dotnet sdk版本不一致带来的The libcoreclr.so module is not loaded yet in the target process错误问题。

代码语言:javascript
复制
dotnet tool install -g dotnet-sos
#插件安装完成后,运行
dotnet-sos install #如果找不到命令,可以到`~/.dotnet/tools`下面去。

安装dotnet-symbol插件

下载组件的符号文件。方便有效查看堆栈信息

代码语言:javascript
复制
dotnet tool install -g dotnet-symbol

插件安装后,针对要调试的dump文件下载对应的符号,实用程序dotnet-symbol将自动为我们的dump文件下载缺失的pdb文件。

代码语言:javascript
复制
#cd 到一个dump文件所在目录
dotnet-symbol <dump文件>

启动lldb进行调试

代码语言:javascript
复制
#在dump文件目录
lldb-3.9 dotnet -c <my dump file>

参考

https://github.com/dotnet/diagnostics

SOS实用工具:https://github.com/dotnet/diagnostics/blob/master/documentation/installing-sos-instructions.md

coredump调试参考:https://github.com/dotnet/diagnostics/blob/master/documentation/debugging-coredump.md

SOS命令参考:https://github.com/dotnet/diagnostics/blob/master/documentation/sos-debugging-extension.md

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-10-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 其他调试参考文章
  • 生成dump文件
  • 构建一个dotnet,lldb的docker image
  • 安装dotnet-sos插件
  • 安装dotnet-symbol插件
  • 启动lldb进行调试
  • 参考
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档