linux - 在 Linux 上的 lldb 中打开 .NET Core 2.0 转储 - 哪个 lldb 版本?

标签 linux ubuntu .net-core lldb

我正在尝试按照 http://blogs.microsoft.co.il/sasha/2017/02/26/analyzing-a-net-core-core-dump-on-linux/ 中的说明在 Ubuntu 16.04 上打开 .NET Core 2.0 转储。

转储是从正在运行的进程创建的 createdump PID .

我无法确定 lldb 的正确版本。ldd $(find /usr/share/dotnet -name libsosplugin.so) | grep lldb不返回任何内容(输出中没有 lldb)。

我尝试了最新的 3.5 和 3.6,但无济于事:Can not load or initialize libmscordaccore.so. The target runtime may not be initialized.
如何为 .NET Core 2.0 转储找到正确的 lldb 版本?

更新:输出命令
$ find /usr/share/dotnet -name libsosplugin.so /usr/share/dotnet/shared/Microsoft.NETCore.App/2.0.5/libsosplugin.so$ ldd $(find /usr/share/dotnet -name libsosplugin.so) linux-vdso.so.1 => (0x00007ffca344f000) libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3d7eecc000) libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3d7ebc3000) libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3d7e9ad000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3d7e5e3000)

最佳答案

很老的问题,但也许这对某人有帮助:
例如。 Dockerfile 包括 lldb 并进入 asp dotnet 3.1

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1

WORKDIR /vsdbg
RUN apt-get update \
    && apt-get install -y --no-install-recommends \
        unzip \
        procps \
        lldb-3.9 \
    && rm -rf /var/lib/apt/lists/* \
    && curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v vs2019 -l /vsdbg
WORKDIR /app
也看看这个网站:https://www.aaron-powell.com/posts/2019-04-04-debugging-dotnet-in-docker-with-vscode/
如果要附加到容器内正在运行的进程,请在 docker run 添加 CAP_SYS_PTRACE。

关于linux - 在 Linux 上的 lldb 中打开 .NET Core 2.0 转储 - 哪个 lldb 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50016949/

相关文章:

python - 使用 pip 与 apt-get 安装软件包有什么区别?

r - 生存包错误R

windows - dotnet 未被识别为 cmdlet 的名称

asp.net - .Net Core App - 命令行格式异常

linux - 使用 shell 脚本检查文件是否为 jpeg 格式

python - 在 GNU/Linux 中安装 python 模块

c - 应该如何使用c中的字符串数组

linux - 恢复了 .ssh/authorized_keys 文件,但仍然收到权限被拒绝(公钥)消息

linux - 不支持 mkvmerge linux 命令向后拆分

asp.net-core - EF Core 没有 DBset 上的 .Include() 方法