Intel IGP, OpenCL, and GDB

So nice!

Just discovered that Intel provides a special version of GDB for debugging OpenCL kernels on their GPU [1]. What a great move!

Knowing Intel, I was already imagining that they would have a fully proprietary solution like the Intel debugger [2]. Fortunately, they deprecated it in 2013 in favor of the mighty GNU gdb.

What?! Intel has an open-source debugger?

Wait! No, no, no... the smallest possible changes were made to GNU gdb itself, as the GPL3 license forces them to released those development under the same license (and worse, give up patent claims). They developped a closed source gdbserver-igfx, to which open-source gdb can connect for remote debugging, using gdb's Remote Serial Protocol (aka, Stub protocol). A good presentation of this protocol is found at [3].

References

[1]Intel, "Getting Started with Debugging with IntelĀ® Parallel Studio XE 2016", https://software.intel.com/en-us/get-started-with-debugger-extension-for-linux
[2]Wikipedia article, "Intel Debugger", https://en.wikipedia.org/wiki/Intel_Debugger
[3]Embecosm, "Howto: GDB Remote Serial Protocol", http://www.embecosm.com/appnotes/ean4/embecosm-howto-rsp-server-ean4-issue-2.html