Skip to content

Conversation

@DefaultRyan
Copy link
Member

… and should fail more gracefully when not found.

Currently, if the visualizer only tries to load up new winmds for missing runtimeclasses in the case of top-level types and their bases. It then assumes the type graph should be fully resolvable, even for interfaces and properties, and throws an exception if they aren't found at this point.

There are two problems with this approach:

  1. Just because a runtimeclass has its winmd loaded, this doesn't guarantee that its interfaces and property types have had their winmds loaded. Like runtimeclass MyApp.Foo { Component.Widget MyProperty; } - we may have loaded MyApp.winmd, but that doesn't mean Component.winmd has been loaded, so we should extend the metadata loading courtesy to interface and property lookups.
  2. Following from 1. if we then try to load a missing winmd, and still can't find the type, we shouldn't throw an exception and take down the debugger process. We should fail gracefully and skip those interfaces and/or properties that we couldn't resolve.

… and should fail more gracefully when not found.
@DefaultRyan DefaultRyan merged commit 2e3d3a9 into master Feb 27, 2021
@DefaultRyan DefaultRyan deleted the defaultryan/visualizer_exception branch February 27, 2021 22:15
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.

3 participants