Debugging graphs with ease: experimental Visual Studio plugin

Revision en12, by yeputons, 2019-05-21 20:26:57

Hi everyone!

I'd like to present you a prototype of Visual Studio plugin which was developed by a student from my university as a coursework. Yielding floor to her:

GraphAlgorithmRenderer is an experimental Visual Studio extension for debugging and visualizing graph algorithms. It takes a description of graph nodes, edges and their properties, such as color and label, and renders a corresponding graph. The graph is refreshed automatically when you step in debugger. Graph config can be serialized to JSON and deserialized back.

More explanations and detailed example can be found here. Samples of the serialized config, C++ code, and the snapshots are here. Any feedback on this tool is welcome, please try it out!

Here is the list of known issues:

1. Sometimes text boxes in Graph Visualization settings seem to be blocked and a text cannot be entered or it appears somewhere else, for example in the file with the code. You can try to close all other windows including the source file (it doesn't mean closing the Solution or stopping the debugger). We would be grateful if you help us to find out how to reproduce this bug.
2. The UI is quite primitive and not very user-friendly at the moment That wasn’t our first priority, but we’d appreciate any simple-to-implement suggestions.
3. The Standard Template Library functions and class methods are not supported in the expressions (operator[] being notable exception). It means that you cannot render elements in std::unordered_set or use std::find. In our samples, std::vector and arrays are used, and elements are accessed by indices. We wonder how bad it is.
4. It usually takes from 0.5 to 2 seconds to redraw a graph, and this speed is far from perfect.

If you're interested in this tool, you can try it and leave any comments under this post. We would like to hear how useful this tool in general, and how we can improve it. If you found a bug, please report an issue on GitHub or here in the comments. If you would like to add your own config sample, please add it here and make a pull request or post your screenshots in the comment section below.

#### History

Revisions

Rev. Lang. By When Δ Comment
en12 yeputons 2019-05-21 20:26:57 159 Update order of pictures and add [cut]
en11 yeputons 2019-05-21 20:17:24 79 Change home page from GitHub to Visual Studio Marketplace
en10 yeputons 2019-05-21 10:52:31 4 Tiny change: 'as development by a stud' -> 'as developed by a stud'
en9 yeputons 2019-05-20 23:06:53 0 (published)
en8 yeputons 2019-05-19 23:05:12 2 Tiny change: 'dd3.png)\n\n![ ](/pr' -> 'dd3.png)\n![ ](/pr'
en7 yeputons 2019-05-19 23:03:42 150
en6 yeputons 2019-05-19 23:03:19 75
en5 yeputons 2019-05-19 23:03:03 75
en4 yeputons 2019-05-19 23:02:33 75
en3 yeputons 2019-05-19 22:58:45 39
en2 yeputons 2019-05-19 22:48:04 2 Tiny change: ' issues:\n1. Somet' -> ' issues:\n\n1. Somet'
en1 yeputons 2019-05-19 22:47:47 2561 Initial revision (saved to drafts)