非x86体系结构上的Z3

非x86体系结构上的Z3,z3,bus-error,Z3,Bus Error,我正在使用Z3(2012-12-21 git版本,最新的“主”版本)检查工具的可移植性,因此尝试在Sparc64上编译Z3。我不得不摆弄src/util/hwf.cpp,这样它就可以将Sparc64而不仅仅是IA64视为缺少SIMD内部函数和emmintrin.h。汇编成功了 不幸的是,由于prime\u generator::prime\u generator()。我不知道为什么 Program received signal SIGBUS, Bus error. 0x009b1dac in

我正在使用Z3(2012-12-21 git版本,最新的“主”版本)检查工具的可移植性,因此尝试在Sparc64上编译Z3。我不得不摆弄
src/util/hwf.cpp
,这样它就可以将Sparc64而不仅仅是IA64视为缺少SIMD内部函数和
emmintrin.h
。汇编成功了

不幸的是,由于
prime\u generator::prime\u generator()。我不知道为什么

Program received signal SIGBUS, Bus error.
0x009b1dac in global constructors keyed to _ZN15prime_generatorC2Ev ()
(gdb) bt
#0  0x009b1dac in global constructors keyed to _ZN15prime_generatorC2Ev ()

这对我来说不是很重要(我们的机器是x86或x86-64),但可能与某些嵌入式应用程序相关。

我认为在非x86机器上运行Z3没有任何兴趣,因此您很可能会发现一些问题

特别是SPARC,不允许像x86那样进行未点亮的内存访问。 通过快速查看,我可以看到未对齐的部分可能来自几个方面。 例如,memory::allocate()将malloc返回的指针按sizeof(size\u t)释放。如果不是64位,那么它将崩溃(因为svector数据)。 然后,svector分配也会在数据之前保留2*sizeof(未签名)。如果2*sizeof(unsigned)不是sizeof(uint64)的倍数,则会发生崩溃

等等。关键是,没有更多的信息,就不可能帮助你。您需要使用-g进行编译,如果需要,可以在程序崩溃的地方打印程序集代码,以帮助确定确切的位置


另外,请不要使用主分支。那很老了。请考虑使用不稳定的分支(它并不像名字听起来那么糟糕)

这对于堆栈溢出似乎不是一个问题。你是不是想把这个贴在那个项目的问题页面上?这个问题似乎离题了,因为它不是一个问题,而是一个bug报告。