SIGSEGV crash during dumpobj on Alpine/musl

未关闭
#5,840 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
48/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
冷清
技术栈
cpp, linux

调研方向

从 SOSDumpTests.ConcurrentDictionaries 和 src/tests/SOS.UnitTests/Scripts/ConcurrentDictionaries.script:57 开始,在 Alpine3_23_x64_Release 上重现 dumpobj 命令。在生成匹配的输出后跟踪崩溃;完成的标准是测试在没有 SIGSEGV 的情况下完成,并且预期输出仍然匹配。

由索引模型根据 Issue 内容生成。

描述

disabled-test

Test: SOSDumpTests.ConcurrentDictionaries
Platform: Alpine3_23_x64_Release
Script: src/tests/SOS.UnitTests/Scripts/ConcurrentDictionaries.script:57

Expected
VERIFY: Name:\s+DotnetDumpCommands\.Program\+DumpSampleClass
Actual output

The dumpobj command did produce matching output before the crash:

> sos dcd 74eac2c0e230
System.Collections.Concurrent.ConcurrentDictionary<DotnetDumpCommands.Program+DumpSampleStruct, DotnetDumpCommands.Program+DumpSampleClass>
    -----
      Key: dumpvc 000074f290c3a788 000074eac2c0f298
    Value: null
    -----
      Key: dumpvc 000074f290c3a788 000074eac2c0f230
    Value: dumpobj 000074eac2c0f1c0

> dumpobj 000074eac2c0f1c0
Name:        DotnetDumpCommands.Program+DumpSampleClass
MethodTable: 000074f290c3fbd0
Size:        40(0x28) bytes
File:        /__w/1/s/artifacts/bin/DotnetDumpCommands/Release/net11.0/DotnetDumpCommands.dll
Fields:
              MT    Field   Offset                 Type   VT     Attr            Value Name
000074f2909535c8 04000003       10       System.Boolean  Yes instance                0 <Value1>k__BackingField
000074f29097ea70 04000004        8        System.String   No instance 0000000000000000 <Value2>k__BackingField
000074f290c3a540 04000005       18      System.DateTime  Yes instance 000074eac2c0f1d8 <Date>k__BackingField

Then the process crashed.

主要语言
C++
星标
1.3k
派生
407
平均合并
21 小时 5 分钟
30 天内合并 PR
78

环境准备

在 Codespaces 中打开

在浏览器里用你自己的 GitHub 账号启动这个项目的开发容器。

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 没有贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

dotnet/diagnostics 的其他 Issue

查看 dotnet/diagnostics 的全部 Issue

相似的 Issue

更多 C++ Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。