microsoft / ConcordExtensibilitySamples

Visual Studio Debug Engine Extensibility Samples
Other
122 stars 50 forks source link

Debugging CppCustomVisualizer doesn't work in VS2019 #54

Closed pps83 closed 4 years ago

pps83 commented 4 years ago

If I try to debug (F5) CppCustomVisualizer project new VS2019 instance starts but doesn't load TargetApp.sln. Even if I load it manually from started VS2019 instance, FILETIME in debugger doesn't doesn't get displayed as intended by CppCustomVisualizer. This is how debugging page of Debug configuration of vsix project looks like: image

Note, that Release config is identical to the screenshot in Greg's comment. I use pretty much barebones latest VS2019 with little no none extensions installed. If I build CppCustomVisualizer and manually install the resulting extension, then yes, FILETIME visualizer works in TargetApp. I do not have any local changes in the ConcordExtensibilitySamples clone and the path doesn't have any spaces.

Originally requested by @gregg-miskelly in https://github.com/microsoft/ConcordExtensibilitySamples/issues/52#issuecomment-572173848

gregg-miskelly commented 4 years ago

Thanks for opening this. I enhanced the documentation by adding this section: https://github.com/microsoft/ConcordExtensibilitySamples/wiki/Cpp-Custom-Visualizer-Sample#if-debug-launch-doesnt-start-visual-studio-correctly

pps83 commented 4 years ago

When I open clean checkout debug of vsix looks like on your screenshot. After running it once, it changes to what I have. Regardless, if I start it for the first time, or if I force /rootsuffix Exp $(SolutionDir)\TargetApp\TargetApp.sln (or /rootsuffix Exp $(SolutionDir)TargetApp\TargetApp.sln) I get identical behavior: new instance of VS starts and shows dialog to load project/solution and even if I load TargetApp manually in that new VS instance I don't get visualizer working.

pps83 commented 4 years ago

I figured it out why it didn't work for me. I use awesome Smart Command Line Arguments extension by @MBulli and this extension clears/resets default Command Arguments string with an empty string. That's clearly a bug in SmartCommandlineArgs. When I set /rootsuffix Exp $(SolutionDir)\TargetApp\TargetApp.sln in command args windows (part of Smart Command Line Arguments extension) for vsix project, then everything work. Thanks for your help and sorry for taking your time!

I filled an issue in SmartCommandlineArgs instead