Skip to content
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

Fix various dump generation issues for VS4Mac #60995

Merged
merged 7 commits into from
Nov 1, 2021

Conversation

mikem8361
Copy link
Member

The createdump crash report can have multiple threads indicated as crashed. Fixes issue: #60932

Add new generate core dump IPC command that allows the generate crash report flag to be passed through to createdump for VS4Mac. Issue: #60775

VS4Mac needs to distinguish between WriteDump/no signal and unknown signal ExceptionType.

Fix how the load bias is calculate for shared modules.

@ghost
Copy link

ghost commented Oct 28, 2021

Tagging subscribers to this area: @tommcdon
See info in area-owners.md if you want to be subscribed.

Issue Details

The createdump crash report can have multiple threads indicated as crashed. Fixes issue: #60932

Add new generate core dump IPC command that allows the generate crash report flag to be passed through to createdump for VS4Mac. Issue: #60775

VS4Mac needs to distinguish between WriteDump/no signal and unknown signal ExceptionType.

Fix how the load bias is calculate for shared modules.

Author: mikem8361
Assignees: mikem8361
Labels:

area-Diagnostics-coreclr

Milestone: -

@mikem8361 mikem8361 requested review from hoyosjs, kdubau and josalem and removed request for marek-safar October 28, 2021 23:35
@mikem8361
Copy link
Member Author

diagnostics repo PR: dotnet/diagnostics#2715

src/coreclr/debug/dbgutil/machoreader.cpp Show resolved Hide resolved
src/coreclr/pal/src/thread/process.cpp Show resolved Hide resolved
src/coreclr/vm/eventing/eventpipe/ds-rt-coreclr.h Outdated Show resolved Hide resolved
src/coreclr/vm/eventing/eventpipe/ds-rt-coreclr.h Outdated Show resolved Hide resolved
else
{
if (thread->Tid() == m_crashInfo.CrashThread())
if (thread->ManagedExceptionObject() != 0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing that I was thinking here: In the unwindThread paths we check for LastThrown and request flags on the ExceptionState and do (flags & Ex_IsUnhandled)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So only use LastThrown if Ex_IsUnhandled is set?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes

Copy link
Member Author

@mikem8361 mikem8361 Oct 29, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But how do I get this flag in createdump? It looks like an internal vm flag

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The DAC has an API to get the flags on an ExceptionState I thought.

Copy link
Member

@hoyosjs hoyosjs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be good to do the flags bit, but this is enough to unblock the crash report analysis.

@mikem8361 mikem8361 merged commit c4d5f6d into dotnet:main Nov 1, 2021
@mikem8361 mikem8361 deleted the vs4macfixes branch November 1, 2021 16:11
@ghost ghost locked as resolved and limited conversation to collaborators Dec 1, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants