I'm getting started with ispc (Intel SPMD Program Compiler), and I'm able to compile and run the examples provided with the distribution. What I'd like to do next is to be able to step through an .ispc
file inside the Visual Studio (or CLion) debugger.
According to the documentation, the ispc
compiler can be instructed to emit debugging symbols with the -g
option. I've added that to the provided CMakeLists.txt
, but I can't seem to get Visual Studio to actually step into an ispc function.
For example, I set a breakpoint in the simple
example here: https://github.com/ispc/ispc/blob/master/examples/simple/simple.cpp#L49
When clicking "step into", I'd expect Visual Studio to step into the definition of that function, here: https://github.com/ispc/ispc/blob/master/examples/simple/simple.ispc#L35. Instead, Visual Studio steps over and continues on with simple.cpp
.
I suspect that Visual Studio either can't locate the debugging symbols generated by the ispc
compiler, and/or doesn't know that those symbols are associated with the simple.ispc
file.
I found this blog post from last year which says, among other things:
The latest version of ispc (1.9.2) supports limited debugging with Visual Studio. Examining struct's with bool's doesn't seem to work, the locals window is very iffy but more or less works. Single stepping works. Profiling works but seems a little iffy.
So it seems clear that this is possible; I just don't know enough about how compilers, debuggers, and IDEs interact to make this happen. Does anyone know how to accomplish this?
Running Windows 10 (v1903) with Visual Studio 2017 (v15.9.17)
$ ispc --version
Intel(r) SPMD Program Compiler (ispc), 1.12.0 (build date Aug 15 2019, LLVM 8.0.0)
Supported Visual Studio versions: Visual Studio 2015 and later.