Skip to content

experiment: gcdump reading #4265

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Conversation

bruno-garcia
Copy link
Member

@bruno-garcia bruno-garcia commented Jun 7, 2025

What if we read the gcdump, then augment the low memory event with the top offending types

Not sure how much memory would take to do this in-memory in a process that just triggered a memory dump for being out of memory
It probably needs to be done on a separate process. Or only on restart?

Or on the server, at ingestion time. Considering the mess it would be to get this into the SDK (I had to hack a lot to get it to run) it might be better doing this as a stand alone library, and load it during ingestion time in Sentry when processing gcdump files.

image

Required hacks on perfview too:

Copy link
Contributor

github-actions bot commented Jun 7, 2025

Fails
🚫 Please consider adding a changelog entry for the next release.

Instructions and example for changelog

Please add an entry to CHANGELOG.md to the "Unreleased" section. Make sure the entry includes this PR's number.

Example:

## Unreleased

- gcdump reading ([#4265](https://github.com/getsentry/sentry-dotnet/pull/4265))

If none of the above apply, you can opt out of this check by adding #skip-changelog to the PR description.

Generated by 🚫 dangerJS against b5b7146

@jamescrosswell
Copy link
Collaborator

Looks like you can get at some quite cool functionality via the vendored in code 👍🏻

If you wanted something quick and dirty, out of process, this might also work:

dotnet-gcdump report dump.gcdump | head -n 20

That avoids the complexity of vendoring in the code.

On the other hand, if we did vendor in that code above, we might avoid the dependency that we currently have on needing dotnet-gcdump installed... might make it easier to use.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants