AIX中的memmove_overlay命令是什么?

时间:2011-04-04 12:41:49

标签: c unix aix

我正在调试AIX 6.1中某些C代码中的动态内存分配问题,在我的堆栈跟踪中,我在崩溃之前得到命令memmove_overlay。

在程序崩溃之前,我调用了memcpy函数。

这个命令在做什么?

2 个答案:

答案 0 :(得分:1)

memcpy将内存区域从* src复制到* dest。如果内存区域重叠,它可能会使程序崩溃。请改为memmove

答案 1 :(得分:1)

验证memmove()电话的参数。内部探测memmove_overlay()函数是memmove()实现的一部分,因此它可能与memmove()正在做的事情相同。

您当然可以使用已知的安全参数集来设置虚拟测试用例,如下所示:

char test1[2], test2[2] = { 47, 11 };

memmove(test2, test1, sizeof test2);

然后使用您的调试器进入memmove(),看看它是如何在memmove_overlay()中结束的。

但是,崩溃的可能性仅仅是由于memmove()的输入错误,因此与memmove_overlay()函数正在运行的事实无关。