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

Watson support for single-file apps #2438

Closed
Tracked by #45382
agocke opened this issue Jun 7, 2021 · 9 comments
Closed
Tracked by #45382

Watson support for single-file apps #2438

agocke opened this issue Jun 7, 2021 · 9 comments
Assignees
Milestone

Comments

@agocke
Copy link
Member

agocke commented Jun 7, 2021

We should support automatically creating dumps from single-file apps, and automatically analyzing the dumps created from those crashes.

@ghost
Copy link

ghost commented Jun 7, 2021

Tagging subscribers to this area: @agocke, @vitek-karas, @VSadov
See info in area-owners.md if you want to be subscribed.

Issue Details

We should support automatically creating dumps from single-file apps, and automatically analyzing the dumps created from those crashes.

Author: agocke
Assignees: -
Labels:

area-Single-File, untriaged

Milestone: -

@ghost
Copy link

ghost commented Jun 7, 2021

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

Issue Details

We should support automatically creating dumps from single-file apps, and automatically analyzing the dumps created from those crashes.

Author: agocke
Assignees: -
Labels:

area-Diagnostics-coreclr

Milestone: -

@hoyosjs
Copy link
Member

hoyosjs commented Jun 7, 2021

This should work with Windows Watson right now, provided that they configure collecting dumps on crash. Createdump on both platforms (and therefore environment variables) won't work as the binary won't be present.

@tommcdon
Copy link
Member

tommcdon commented Jun 8, 2021

I believe SOS work is completed for Windows single file dumps. Adding @mikem8361.

@mikem8361
Copy link
Member

We still have work in the CLRMD PE reader and runtime enumeration to look up exports because the current runtime enumeration is too slow for even regular non-single apps so it is enabled under an env var called DOTNET_ENABLE_SOS_SINGLEFILE=1

@mikem8361
Copy link
Member

But that is all out of band and in the clrmd/diagnostics repos.

@noahfalk noahfalk transferred this issue from dotnet/runtime Jul 15, 2021
@mikem8361 mikem8361 self-assigned this Jul 15, 2021
@mikem8361 mikem8361 added this to the 6.0.0 milestone Jul 15, 2021
mikem8361 added a commit to mikem8361/diagnostics that referenced this issue Oct 13, 2021
Add single file app testing support.

Disable bpmd testing for single-file on Linux/MacOS

Issues: dotnet#2515 and dotnet#2438
@hoyosjs hoyosjs modified the milestones: 6.0.0, 7.0.0 Oct 14, 2021
@hoyosjs
Copy link
Member

hoyosjs commented Oct 14, 2021

Other than ingestion from the Watson folks, and your PR, is there anything missing here @mikem8361?

@mikem8361
Copy link
Member

To be complete, there will be one more item to do (it is part of #2515:

Add Windows single-file support to the fallback runtime enumeration in platform/targetimpl.cpp. Need C++ to lookup PE exports.

I'm really not sure how important the C++ fallback is other than perf since we support using the desktop framework to host.

hoyosjs pushed a commit that referenced this issue Oct 18, 2021
* Use PEImage API get export symbols for single file apps

Add single file app testing support.

Disable bpmd testing for single-file on Linux/MacOS

Issues: #2515 and #2438

* Support Windows/MacOS single-file in the C++ runtime enum fallback

IDebuggerServices::GetOffsetBySymbol is used to get the runtime info export and so most
of the changes are making the interface available on the libsos "side" under Linux/MacOS
since there is a Extensions instance both in libsosplugin and libsos. The libsos side
Extensions::GetDebuggerServices always returned null before this change. Now it only
returns null if hosted under a managed host like dotnet-dump.

* Disable test single-file live apps on Alpine

* Enable single-file tests when no host runtime (C++ fallback)

* Fix initialize bpmd problems on Main

* Fix clrstack -i/ICorDebug C++ fallback code for single-file

Simplify to what the managed Runtime code does without the debugshim
and library provider. SOS no longer needs debugshim, but left it for
the future dbgshim out-of-band work.
@mikem8361
Copy link
Member

The C++ runtime enumeration fallback code will work for Windows single-file because it uses GetOffsetBySymbol to find export.

@ghost ghost locked as resolved and limited conversation to collaborators Jun 27, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants