首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STLport崩溃(种族条件,仅达尔文?)

STLport崩溃(种族条件,仅达尔文?)
EN

Stack Overflow用户
提问于 2010-03-05 14:32:06
回答 2查看 376关注 0票数 1

当我在达尔文上运行STLport时,我会遇到一次奇怪的崩溃。(除了在Mac上,其他地方都没见过,但在i686和PowerPC上都发生了同样的事情。)这就是在gdb中的样子:

代码语言:javascript
复制
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: 13 at address: 0x0000000000000000
[Switching to process 21097]
0x000000010120f47c in stlp_std::__node_alloc_impl::_M_allocate ()

这可能是STLport的一些背景,我注意到Mac.h和MacOSX.h似乎远远落后于特性。我还知道,它必须是某种类型的竞赛条件,因为它并不是通过调用此方法来实现的(隐式调用)。崩溃主要发生在我推送系统时,运行10个同时执行字符串处理的线程。

我想出的其他理论与编译器标志(配置脚本)和g++ 4.2 bug有关(似乎4.4.3还没有出现在Mac上,需要链接到Objective支持)。

救命! :)

编辑:我运行单元测试,它做各种事情。当我启动10个推动系统的线程时,就会出现这个问题;问题总是归结为std::string::append,它最终归结为_M_allocate。由于我甚至无法得到导致问题的代码的下降转储,我想我正在做一些坏事。既然它试图在指令指针0x000.000处执行,它会是这样吗?在带有跳转表的Windows中,动态库是否构建为DLL?也许是因为某种原因,这样的跳台被覆盖了吗?这很可能解释了这种行为。(代码很大,如果我没有其他想法,我会在这里发布一个最小的崩溃示例。)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-29 08:21:56

这个问题是由unrelated crash bug引起的,在我的例子中,这会导致内存覆盖导致STLport崩溃。

票数 0
EN

Stack Overflow用户

发布于 2010-03-09 07:44:37

嗯..。STLPort使用分配程序,在需要时将平台内存在内部集中到数据结构。

只要检查崩溃发生的时间,分配给正在执行的线程的堆就足以发生分配。即使失败了,这种崩溃也有可能发生。

我不确定您正在处理的当前配置中STL分配程序的粒度。请查看stl_config.h的相关信息。

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

https://stackoverflow.com/questions/2387403

复制
相关文章

相似问题

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