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 的命令

    如下:

  • 相关阅读:
    云原生学习笔记(4)——Pod和容器设计模式
    云原生学习笔记(3)——Kubernetes基本概念
    云原生学习笔记(2)——容器基本概念
    云原生学习笔记(1)——云原生
    JAVA基础系列:JDK目录结构
    Mac 接手步骤
    JAVA基础系列:运行环境
    软件测试系列——Web界面检查点和测试原则
    软件测试系列——白盒测试
    软件测试系列——性能指标
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/13441015.html
Copyright © 2011-2022 走看看