microsoft / MIEngine

The Visual Studio MI Debug Engine ("MIEngine") provides an open-source Visual Studio Debugger extension that works with MI-enabled debuggers such as gdb and lldb.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Lacking VSCode natvis constructs

OfekShilon opened this issue · comments

commented

I'm going by the docs, submitting an issue where VSCode functionality is missing.
We (and probably many, many others) wish to use visualizers to debug hash maps and other standard data structures. Following the documented example, a few natvis constructs are needed for this:

  1. CustomListItems,
  2. Variable,
  3. Exec,
  4. Loop,
  5. If

It seems at least the first item isn't implemented, I suspect the rest too. It would be very valuable to be able to watch various hash maps, sets and dictionaries.

commented

Looking at ExpandVisualzied I see it doesn't implement CustomListItemsType

I don't see any way to upvote on Github, but this is highly desirable. Also, the <Intrinsic> type as well.

Ping. Any chance of doing something with this?

commented

@gregg-miskelly Perhaps you can help prioritize this? This would make a world of difference in native debugging on VSCode.

@OfekShilon I can't promise when we will be able to close more natvis gaps -- supporting natvis is difficult in MIEngine, as we need to do it on top of GDB commands instead of something built into the expression evaluator. But it would be useful if you could give us a prioritized list of the gaps (maybe the list at the top of this is already in your priority order)?

commented

@gregg-miskelly I'd say:

  1. Loop,
  2. CustomListItems,
  3. Exec,
  4. Variable,
  5. If
commented

Is there any alternative? Can gdb pretty-printers be used to populate variable watch?

Yes, if your launch options are configured to use pretty printing, then pretty printers can change the values seen in the variables window.