英文:
Valgrind: The Impossible Happened IA-64 cached detected
问题
我在一个C程序上运行了Valgrind,并得到了以下错误:
valgrind: 发生了“不可能的”情况:
检测到IA-64高速缓存?!
valgrind: m_threadstate.c:100 (vgPlain_get_ThreadState): 断言 'tid >= 0 && tid < VG_N_THREADS' 失败。
在修复了一些内存泄漏并重新构建我的程序之后,这个错误神奇地消失了。但是我在网上搜索了一下,没有找到关于IA-64高速缓存检测错误的信息。IA-64是什么意思?另外,我在虚拟机上运行了这个程序,如果有关系的话。
英文:
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.
答案1
得分: 1
如先前在评论中提到的,IA-64 是英特尔架构的Itanium(实际上是与惠普的合资企业)。它可以追溯到2000年初。由于它从未取得巨大成功,Valgrind从未为IA-64架构提供支持。
早期的Itanium芯片确实具有一种双模式,允许它们运行32位x86代码。
Valgrind中的错误消息来自于Intel_cache_info
函数。这个函数使用cpuid
指令来查询缓存信息。这个函数处理了10个用于IA-64的代码。正如我所说,这从未得到支持,因此Valgrind终止并显示了一个现在相对陈旧的消息。
您还会收到一个TID无效的断言。因此,出现了严重问题。
如果您能够使用一个小示例重现这个问题,请在https://bugs.kde.org上报告它。
英文:
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
答案2
得分: 0
我之前在一个有5个核心的虚拟机上运行我的程序。我切换到另一个有12个核心的虚拟机上,程序可以正常运行。不过,我仍然不清楚IA-64缓存是什么意思。
英文:
I was running my program on a 5 core VM. I switched to another VM that has 12 cores, and it worked. I still don't know what IA-64 cache means though.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论