首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Solaris 8上的SIGBUS崩溃

Solaris 8上的SIGBUS崩溃
EN

Stack Overflow用户
提问于 2015-10-15 23:53:05
回答 1查看 53关注 0票数 0

在Solaris8.32位应用程序上用g++ 4.7.4编译。堆栈跟踪是

代码语言:javascript
复制
Core was generated by `./z3'.
Program terminated with signal 10, Bus error.
\#0  0x012656ec in vector<unsigned long long, false, unsigned int>::push_back (this=0x2336ef4 <g_prime_generator>, elem=@0xffbff1f0: 2) at ../src/util/vector.h:284
284             new (m_data + reinterpret_cast<SZ *>(m_data)[SIZE_IDX]) T(elem);
(gdb) bt
\#0  0x012656ec in vector<unsigned long long, false, unsigned int>::push_back (this=0x2336ef4 &lt;g_prime_generator&gt;, elem=@0xffbff1f0: 2) at ../src/util/vector.h:284
\#1  0x00ae66d4 in prime_generator::prime_generator (this=0x2336ef4 <g_prime_generator>) at ../src/util/prime_generator.cpp:24
\#2  0x00ae714c in __static_initialization_and_destruction_0 (__initialize_p=1, __priority=65535) at ../src/util/prime_generator.cpp:99
\#3  0x00ae71c4 in _GLOBAL__sub_I_prime_generator.cpp(void) () at ../src/util/prime_generator.cpp:130
\#4  0x00b16a68 in __do_global_ctors_aux ()
\#5  0x00b16aa0 in _init ()
\#6  0x00640b10 in _start ()
(gdb) list
279
280         void push_back(T const & elem) {
281             if (m_data == 0 || reinterpret_cast&lt;SZ *&gt;(m_data)[SIZE_IDX] == reinterpret_cast&lt;SZ *&gt;(m_data)[CAPACITY_IDX]) {
282                 expand_vector();
283             }
284             new (m_data + reinterpret_cast\&lt;Z *&gt;(m_data)[SIZE_IDX]) T(elem);
285             reinterpret_cast&lt;SZ *&gt;(m_data)[SIZE_IDX]++;
286         }
287
288         void insert(T const & elem) {
(gdb) ptype SZ
type = unsigned int
(gdb) ptype m_data
type = unsigned long long *

Solaris上的SIGBUS通常表示未对齐的访问,但我不确定这是否是由于字符顺序问题上的强制转换所致

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 00:52:55

最有可能出现问题的是SPARC数据对齐要求。向量类中的m_data字段由用于存储向量的大小和容量的两个字段表示。您可以通过显示(打印或使用调试器)指针m_data及其对齐来对其进行调试。

一种选择是提供单独的向量实现,其中大小和容量字段直接存储在向量中的字段中,以便移植此库实用程序。

Z3与内存对齐在其他一些地方交互(但并不是太多)。其他主要的潜在位置是监视列表(sat_solver和smt_context)、区域内存分配器(region.h)以及可能的哈希表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33153105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档