gpt4 book ai didi

c++ - 两个线程中的同时 abort()

转载 作者:IT王子 更新时间:2023-10-29 00:25:59 26 4
gpt4 key购买 nike

我有一个以前从未见过的东西的回溯。请参阅这些线程中的框架 2:

Thread 31 (process 8752):
#0 0x00faa410 in __kernel_vsyscall ()
#1 0x00b0b139 in sigprocmask () from /lib/libc.so.6
#2 0x00b0c7a2 in abort () from /lib/libc.so.6
#3 0x00752aa0 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/libstdc++.so.6
#4 0x00750505 in ?? () from /usr/lib/libstdc++.so.6
#5 0x00750542 in std::terminate () from /usr/lib/libstdc++.so.6
#6 0x00750c65 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.6
#7 0x00299c63 in ApplicationFunction()

Thread 1 (process 8749):
#0 0x00faa410 in __kernel_vsyscall ()
#1 0x00b0ad80 in raise () from /lib/libc.so.6
#2 0x00b0c691 in abort () from /lib/libc.so.6
#3 0x00b4324b in __libc_message () from /lib/libc.so.6
#4 0x00b495b6 in malloc_consolidate () from /lib/libc.so.6
#5 0x00b4b3bd in _int_malloc () from /lib/libc.so.6
#6 0x00b4d3ab in malloc () from /lib/libc.so.6
#7 0x08147f03 in AnotherApplicationFunction ()

当用 gdb 打开它并获得回溯时,它给了我线程 1。后来我看到线程 31 所处的奇怪状态。这个线程来 self 们遇到问题的库,所以我相信崩溃是由

那么这是什么意思呢?两个线程同时做一些非法的事情?或者它是其中之一,以某种方式导致另一个中的 abort()?

操作系统是 Linux Red Hat Enterprise 5.3,它是一个多处理器服务器。

最佳答案

很难确定,但看到这些堆栈跟踪后我首先怀疑是内存损坏(可能是堆上的缓冲区溢出)。如果是这种情况,那么损坏可能是两个线程都以 abort 结束的根本原因。

你能valgrind你的应用程序?

关于c++ - 两个线程中的同时 abort(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com