zoukankan      html  css  js  c++  java
  • 银河麒麟安装LLDB的方法以及调试 dump 文件 (未完成)

    今天同事要进行 lldb进行调试dotnet的bug 

    本来在x86 上面进行相应的处理 但是发现报错. 没办法 正好有一台借来的arm服务器就搞了一下. 

    简单记录一下安装方法

    1. 安装 apt的source.list

    增加一行  银河麒麟的 官方源

    deb http://archive.kylinos.cn/kylin/KYLIN-ALL 4.0.2sp2-server-ft2000 main restricted universe multiverse

    2. 安装lldb 之前百度了下 发现  apt-get install lldb 是找不到的 必须要带版本号

    安装命令为

    apt-get install lldb-3.9

    大概有 200M的安装文件.

    注意一下版本号的问题

    dotnet :2.1.1。查看官方文档2.0.0只能使用lldb 3.62.1以上必须是3.9.0;所以特别要注意版本问题,一个是createdump 2.0的有bug会失败。二个是dotnet版本和lldb版本要匹配
    被调试分析的应用也是用2.1跑起来的。

    安装完之后可以简单使用了 注意一点的是 使用命令为

    lldb-3.9

    注意 如果调试 dotnet 的时候 需要安装 dotnet-sos 的部分

    安装命令为 
    1. 安装dotnet tools
    
    dotnet tool install -g dotnet-sos
    
    2. 安装 sos 相关内容
    这个命令默认将dotnet-sos 放到了 用户的家目录下面 比如我的是root用户就放到了
    /root/.dotnet/tools 目录下面 cd 到这个目录 并且执行命令
    ./dotnet-sos install
    
    注意 我这边可能环境变量少一个内容 所以一开始报错了 如:
    
    root@inspur:~/.dotnet/tools# ./dotnet-sos install
    A fatal error occurred, the required library libhostfxr.so could not be found.
    If this is a self-contained application, that library should exist in [/root/.dotnet/tools/.store/dotnet-sos/3.1.137102/dotnet-sos/3.1.137102/tools/netcoreapp2.1/any/].
    If this is a framework-dependent application, install the runtime in the default location [/usr/share/dotnet] or use the DOTNET_ROOT environment variable to specify the runtime location.
    
    需要执行一个命令 
    export DOTNET_ROOT=/dotnet
    
    然后在安装就可以了:
    root@inspur:~/.dotnet/tools# ./dotnet-sos install
    Installing SOS to /root/.dotnet/sos from /root/.dotnet/tools/.store/dotnet-sos/3.1.137102/dotnet-sos/3.1.137102/tools/netcoreapp2.1/any/linux-arm64
    Creating installation directory...
    Copying files...
    Creating new /root/.lldbinit file - LLDB will load SOS automatically at startup
    SOS install succeeded

     3. 好像直接 lldb yourdumpfile 就可以 打开了 

    但是 问题出现了 会报错..

    root@inspur:~# lldb-3.9 dotnet_time_2020-08-04_16:52:18.24453 
    (lldb) target create "dotnet_time_2020-08-04_16:52:18.24453"
    Current executable set to 'dotnet_time_2020-08-04_16:52:18.24453' (aarch64).
    (lldb) plugin load /dotnet/shared/Microsoft.NETCore.App/2.1.3/libsos.so
    error: plug-in is missing the required initialization: lldb::PluginInitialize(lldb::SBDebugger)
    


    这一块需要专家给处理一下了 我搞不定了.

    这个错误需要专家指导..

    不过如果安装了 dotnet-sos 那么可以使用 soshelp 的命令

    如下:

  • 相关阅读:
    四层、七层负载均衡的区别
    confd+etcd实现高可用自动发现
    从零开始搭建etcd分布式存储系统+web管理界面
    从零开始搭建Prometheus自动监控报警系统
    tcpdump工具使用说明
    Nginx的负载均衡
    Nginx的正向代理与反向代理详解
    linux集群自动化搭建(生成密钥对+分发公钥+远程批量执行脚本)
    linux文件权限总结(创建root不可以删除文件、只可追加的日志文件等)
    前端技巧备忘
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/13441015.html
Copyright © 2011-2022 走看看