Chinaunix
标题:
[求助]GDB调试出错:what(): std::bad_alloc
[打印本页]
作者:
ironside_zy
时间:
2009-12-30 18:05
标题:
[求助]GDB调试出错:what(): std::bad_alloc
调试程序到这里:
327 output.m_iBufSize = (size < 64000000) ? 64000000 : size;
(gdb)
328 output.m_pcResult = new char[output.m_iBufSize];
报错:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Program received signal SIGABRT, Aborted.
0x001c1422 in __kernel_vsyscall ()
自己去写了个测试小程序,能new char[64000000],不知是怎么回事,望前辈指点一下,谢谢!
作者:
phy0077
时间:
2009-12-30 19:41
作者:
tyc611
时间:
2009-12-30 21:14
output.m_iBufSize = (size
<
64000000) ? 64000000 : size; 难道是大于?
内存不够了,你调试时m_iBufSize为多少?
作者:
tianxiaogang12
时间:
2009-12-30 22:18
查看下m_iBufSize 大小
作者:
ironside_zy
时间:
2009-12-31 09:16
标题:
回复 #4 tianxiaogang12 的帖子
m_iBufSize=64000000 (64M)
这是一段运行在某个线程中的代码,我想可能是线程栈大小不够,但网上有人说LINUX中栈大小可自动调整。。。
作者:
weble
时间:
2010-01-01 09:26
标题:
回复 #5 ironside_zy 的帖子
64M=64*1024*1024
作者:
elvalanna
时间:
2010-11-09 09:13
new应在是在堆里分配空间的吧
作者:
pagx
时间:
2010-11-09 10:42
size , 这个是有符号整数?如果是的话,检查一下是否是正数。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2