EDA - Xcelium报错ERROR:DBOPEN Can't open database *.shm. File format not supported.
问题描述
Xcelium在打开*shm
文件夹时,偶发报错
$ simvision *.shm #弹出GUI后,再弹一个报错窗口,信息如下
ERROR: DBOPEN
Can't open database "*.shm". File format not supported.
将数据拷贝到另一个文件系统下, 又可能能打开。
问题分析
资料查看:
从cadence社区、Xcelium工具目录下的doc递归查找,均未找到类似的报错信息。
使用strace,对比成功与失败的日志:
从日志,过滤关键字format
或者not supported
,没有找到有价值的上下文。
其它尝试
先打开simvision,然后再点击Open选择文件夹,浏览需要打开的*.shm文件。此时发现,报错的文件夹,在这里被打开后,无法显示*.shm
文件。说明这里有问题。
问题再次分析
先打开simvision,然后使用strace,然后点击Open选择文件夹,然后停止strace。仔细分析日志,发现以下两行
openat(AT_FDCWD, "/path/to/thesre", O_READONLY|...)=5
getdents(5</path/to/thesre>,0x1846b4c4, 32768)=-1 EOVERFLOW (Value too large for defined data type)
好家伙,Value too large for defined data type
不就是之前定位过的32位程序操作超出寻址能力范围的inode号嘛!结合自己之前写的文章The 64 bit inode problem,确定是该原因引起。
确认步骤,
- 被操作的文件(夹)的inode号未超过临界值(4294967295)的不报错
- 被操作的文件(夹)的inode号超过临界值(4294967295)的报错
- 程序simvision.exe是32bit的。
解决方法
除了The 64 bit inode problem介绍的方法,本案例中涉及的程序同时提供了32bit与64bit的启动模式。使用方法,请执行simvision -h
查看。
延伸
Cadence家的工具,大都提供了32bit与64bit两种程序。遇到需要单独使用64bit程序时,可以查看以下其帮助命令看看。
总结
。