Closed gbooker closed 5 years ago
@gbooker Hi,
I don't have a Mac so I cannot replicate. Does the debugger work with such a string?
Can you try surrounding the path by quotes something like
"program": "'${workspaceFolder}/build/My Program Tests.app/Contents/MacOS/My Program Tests'"
?
Glad you like the extension
I don't have a Mac so I cannot replicate
Other platforms support spaces in their binary executables. Does this work on your platform?
Does the debugger work with such a string?
Yes. In fact every single launch I have in this project has a space in it and the debugger has never once had any kind of issue.
Can you try surrounding the path by quotes something
No change; still doesn't work. I have previously tried escaping the spaces with \
s, but that doesn't work either.
@gbooker I will look into it over the weekend hopefully, and get back to you. Thanks for your feedback
@gbooker This should be fixed in version 1.8.2. Can you confirm,and I will close this issue? Thanks
At first it didn't; I confirmed that my extension version was 1.8.2 and I was getting the same error but after restarting VSC it succeeded. Thanks.
In case it is relevant, I'm doing this on MacOS.
I have a
launch.json
setup like the following:When I set
"gtest-adapter.debugConfig": ["Test"]
in mysettings.json
, I get an error that it fails to execute "{pathToMyWorkspace}/build/My". If I add symlinks fromMy_Program_Tests
->My Program Tests
in both locations, and update mylaunch.json
appropriately, then this extensions works.Usually this occurs when the string is not escaped before being passed into a shell for execution. If this is the root cause, then there are a whole set of other valid characters to have in a path which will cause issues. So escaping would be crucial for general-purpose use of this extension. The better way is to run the executable with an array of arguments (similar to
execv
instead of through a shell but I'm not sure if you have the ability to do this in your extension.Aside from the above, this brings nice access to gtests. Keep up the good work.