I ran valgrind on a c program and got the following error:
valgrind: the 'impossible' happened:
IA-64 cache detected?!
valgrind: m_threadstate.c:100 (vgPlain_get_ThreadState): Assertion 'tid >= 0 && tid < VG_N_THREADS' failed.
After fixing some memory leaks and restructure my program, the error mysteriously went away. But I searched online and find nothing about the IA-64 cache detected error. What does IA-64 means? Also, I ran the program on a virtual machine if that matters.
As already mentioned in the comments, IA-64 is the Intel Architecture Itanium (actually a joint venture with HP). It dates back to the early 2000s. Support for the IA-64 architecture was never added to Valgrind since it was never a great success.
Earlier Itanium chips did have a kind of dual-mode which allowed them to run 32bit x86 code.
The error message in Valgrind comes from the Intel_cache_info
function. This queries the cpuid
instruction to find out about the cache. 10 of the codes handled by this function are for IA-64. As I said, this was never supported, so Valgrind terminates with a now rather dated message.
You are also getting an assert that the TID is not valid. So something is going seriously wrong.
If you can reproduce the problem with a small example then please report it on https://bugs.kde.org