PTT
Submit
Submit
选择语言
正體中文
简体中文
PTT
EE_DSnP
[问题] HW4 ***glibc detected***
楼主:
fatandy567
(Technofreak)
2012-11-22 23:29:25
我的程式跑do4 的测资,跑到"mtn 1 -a 0"这行,程式会在 MTNew 指令中的
if(CmdExec::lexOptions(option,options)==false) crash
错误讯息是:
***glibc detected*** malloc() memory corruption ......
然号跑出trace back之类的一大多位址
这是什么问题??
作者:
ric2k1
(Ric)
2011-01-22 23:41:00
建议用一个最小而会造成 crash 的 dofile,跑 debugger慢慢trace 你的 code. 应该是不知道在什么地方你把 memorycorrupt 掉了... 可能也没有比用 debugger 更好的办法...
楼主: fatandy567 (Technofreak)
2011-01-22 23:50:00
可是我do1~3都正确耶??
作者:
ric2k1
(Ric)
2011-01-23 00:04:00
可是 do4 会 crash 还是表示你的程式有 bug...要相信 crash 事出必有因然后想: 还好不是等到助教那边才被发现 crash...
作者:
ypf791
(路人1号)
2011-01-23 00:18:00
面对这种 bug 只能把自己的程式逻辑重想一遍又一遍....
作者:
ric2k1
(Ric)
2011-01-23 00:31:00
恩,用 debugger 把变量 print 出来绝对会有帮助的另外,这种 memory corruption 通常是某个变量的值在莫名奇妙的地方被改掉了。由于变量不在它的 domain 就无法print可以把 "绝对内存位置" 的内容 display 出来.像是 display *((MemTestObj *) 0x7f00b8c) 之类的
作者: gamerred (game859)
2011-01-23 00:38:00
感觉像是double delete的问题 然后回报的位置通常很奇怪
作者:
ric2k1
(Ric)
2011-01-23 00:45:00
double delete 应该会说 "doubly freed error..." 之类的
楼主: fatandy567 (Technofreak)
2011-01-24 00:24:00
果然是自己耍蠢了,memblock的getmem应该是先return再移动指标,结果果先移动再输出,难怪会crash....谢谢老师和大家
作者:
ric2k1
(Ric)
2011-01-24 00:57:00
Great!
作者:
stanleysu
(士唐)
2011-01-24 01:45:00
我也跟你有同样的crash耶,不过我是错在rn在remainsize太小的时候会变成奇怪的值
楼主: fatandy567 (Technofreak)
2011-01-24 11:19:00
楼上会不会是size_t不含负的关系,要不要转成int试试?
继续阅读
Re: [情报] -g 与 -O3
yuting1105
[情报] HW#5
ric2k1
[心得] vim真是神物!(replace/regex)
yan12125
[问题] 请问随机delete -Random
andy13579372
Re: [情报] gdb/ddd quick reference
ric2k1
Re: [闲聊] 关于今天想不起来的关于 debugger 的笑话
ric2k1
Re: [情报] Lecture notes #3 & 8
ric2k1
[问题] vim (跟hw无关)
XDucka
[心得] 无聊自己写的测资 大家可以跑跑看
XDucka
[问题] 有关freearray
xxxseanxxx
Links
booklink
Contact Us: admin [ a t ] ucptt.com