【发布时间】:2013-08-18 12:46:54
【问题描述】:
C++ 应用程序崩溃,核心文件显示错误
警告:在 0x7fff79e54000 添加的符号文件系统提供的 DSO 中找不到可加载的部分 核心是由“./server”生成的。 程序以信号 6 终止,Aborted。 #0 0x0000003b67230265 in raise () from /lib64/libc.so.6 (gdb) BT #0 0x0000003b67230265 in raise () from /lib64/libc.so.6 #1 0x0000003b67231d10 in abort () from /lib64/libc.so.6 #2 0x0000003b6726a9bb in __libc_message () from /lib64/libc.so.6 #3 0x0000003b6727247f in _int_free () from /lib64/libc.so.6 #4 0x0000003b672728db in free () from /lib64/libc.so.6 #5 0x00000000004060df 在 ../lib/m_string.cpp:43 的运算符删除 (p=0x20030190) #6 0x0000000000403892 in TStr::~TStr (this=0x2102c980, __in_chrg=能够理解这个问题。这是我验证过的链接https://bugzilla.redhat.com/show_bug.cgi?id=959013
说明vdso文件大小不够。它位于路径 /proc/self/maps 中。
请告诉我这是什么类型的问题,并建议解决此问题。
【问题讨论】:
-
您能否编辑问题以实际包含回溯?
-
这里是问题的回溯。 (gdb) bt #0 0x0000003b67230265 in raise () from /lib64/libc.so.6 #1 0x0000003b67231d10 in abort () from /lib64/libc.so.6 #2 0x0000003b6726a9bb in __libc_message () from /lib64/libc.so .6 #3 0x0000003b6727247f in _int_free () from /lib64/libc.so.6 #4 0x0000003b672728db in free () from /lib64/libc.so.6 #5 0x00000000004060df in operator delete (p=0x20030190) at ../lib /m_string.cpp:43 #6 0x0000000000403892 in TStr::~TStr (this=0x2102c980, __in_chrg=
) at ../lib/m_string.cpp:175 Regards,Ragu. -
现在你应该在文件
m_string.cpp的第43行显示你在做什么(请显示whole函数),并请编辑问题 去做。 -
m-string.cpp 是一个库文件,我们在其中做了一个 memcpy,操作员的废话……废话。主要是我们只想知道这个“警告”是什么样的错误:在 0x7fff79e54000 添加的符号文件系统提供的 DSO 中找不到可加载的部分 核心是由 `./server' 生成的。程序以信号 6 终止,已中止。”当文件'vdso'或类似文件的核心大小增加时会发生这种情况吗?
-
您遇到崩溃是因为您在内存分配/解除分配方面做错了事(可能在分配内存之前或之后写入)。 DSO 的事情与(IMO)应该赌的主要问题几乎无关:崩溃。如果您不向我们展示您所做的工作,我们将无法帮助您解决崩溃问题。