How to step through ispc source files in Visual Studio or CLion debugger?

135 views
Skip to first unread message

Daniel Thompson

unread,
Nov 14, 2019, 9:42:28 PM11/14/19
to Intel SPMD Program Compiler Users
(Cross-posted from my question on Stack Overflow):

I'm getting started with ispc 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.

Neshlyaeva, Arina

unread,
Nov 15, 2019, 3:07:37 PM11/15/19
to ispc-...@googlegroups.com

Hi Daniel,

 

I noticed that you’ve already found a solution and posted it to Stack Overflow.

This solution is right. Every sample has its own CMakeLists.txt. You need to add -g option to ISPC_FLAGS in corresponding CMakeLists.txt:

set (ISPC_FLAGS -O2 -g).

 

Best regards,

Arina

--
You received this message because you are subscribed to the Google Groups "Intel SPMD Program Compiler Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ispc-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ispc-users/28779dc6-37a0-40df-8705-5aecc53eed71%40googlegroups.com.

Reply all
Reply to author
Forward
0 new messages