print zmm register in debugger

print zmm register in debugger

Hi,

I get a curious crash on a vpgatherdd call and was trying to debug it. But I'm stuck because I can't figure out how idbc works. I'm used to gdb, so I thought this wouldn't be too hard. But:

  • disasm doesn't work
  • print %zmm0 (and all other zmm registers) doesn't work: prints "void"
  • there is no register view (like "layout regs" in gdb)
  • there is no asm view (like "layout asm" in gdb)

Is this a known limitation? How do you debug your MIC programs?

Cheers,

  Matthias

Vc: SIMD Vector Classes for C++
http://code.compeng.uni-frankfurt.de/projects/vc
4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

I am not sure if what you are seeing is a known limitation or not. Let me find out and get back to you. 

As for the debugging programs for the Intel MIC architecture, this article is a good place to start. You can also find the entire list of supported commands for the the Intel Debugger at this reference. To answer your specific questions: 

To view assembly: (idb) disassemble

To view register file: (idb) info registers [$register_name]. 

In IDB, the vector registers are named from $v0 to $v31 instead of $zmm0 to $zmm31 and hence the wierd output. I hope this helps for now. 

As it says in the article Sumedh pointed you to, gdb for the Intel(r) Xeon Phi(tm) coprocessor is now included with the MPSS. Unfortunately, the link in that article is to the previous release of the MPSS. The latest release, which you probably already have, is available on the http://software.intel.com/en-us/mic-developer under the Tools and Downloads tab.

In doing a search on "gdb phi" from the search window at the top of the software page, I found a couple interesting videos that I didn't know about before:

http://software.intel.com/en-us/videos/part-1-of-2-gnu-debugger-intel-xe... 

http://software.intel.com/en-us/videos/part-2-of-2-gnu-debugger-intel-xe...

Oh great, gdb on the MIC is all I needed! Somehow I missed this while searching the docs on debugging.

Regarding the idb disassemble call. This doesn't work unless I specify a start and end address (which is not according to docs):

(idb) disassemble
Unable to find function for 0x000000000040687e

Printing $v0 and info registers works fine. Thanks.

Vc: SIMD Vector Classes for C++
http://code.compeng.uni-frankfurt.de/projects/vc

Leave a Comment

Please sign in to add a comment. Not a member? Join today