dotnet / dotnet/diagnostics

CLRMD don't provide StackBase and StackLimit for full memory dumps

Open
#4,198 1 comment 0 reactions 2 assignees Claimed by @leculver View on GitHub
enhancement
Dominant language
C++
Stars
1.3k
Forks
404
Avg merge
2d 5h
Merged PRs (30d)
35

Description

### Description

I have an application running in a linux container (debian-slim base image) and create a full memory dump of the process using either dotnet dump or procdump for linux. The application is running on .net 7.0.

This dump is downloaded to windows and analyzed with CLRMD (Microsoft.Diagnostics.Runtime) following the sample [clrmd/clrstack](https://github.com/microsoft/clrmd/blob/main/src/Samples/ClrStack/ClrStack.cs).

For all threads the properties `StackBase` and `StackLimit` are always `0`. So it is not possible to determine the size and stack objects.

I would expect that StackBase and StackLimit are available for all living threads, even if the dump from linux is analyzed under windows.

### Configuration

What OS and version, and what distro if applicable?
* Container: mcr.microsoft.com/dotnet/runtime:7.0-bullseye-slim
* Windows PC: Win11 23H2 (OS Build 22631.2262)

What is the architecture (x64, x86, ARM, ARM64)?
* Container: x64
* Windows PC: x64

NuGet Package Version:
* 3.0.0-beta.23214.4

### Regression?

I don't know

### Other information

If I open the dump on windows in dotnet dump, I can switch to all living thread and run dump stack objects `dso` successfully.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.