Что такое команда memmove_overlay в AIX? - PullRequest
0 голосов
/ 04 апреля 2011

Я отлаживаю проблему динамического выделения памяти в некотором C-коде в AIX 6.1, и в своей трассировке стека я получаю команду memmove_overlay перед сбоем.

До сбоя программы я вызвал функцию memcpy.

Что делает эта команда?

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Проверьте параметры для вашего memmove() вызова.Функция внутреннего звучания memmove_overlay() является частью реализации memmove(), поэтому она делает то же самое, что и memmove(), вероятно.

Конечно, вы могли бы создать фиктивный тестовый пример, используяизвестный безопасный набор параметров, например, так:

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

memmove(test2, test1, sizeof test2);

А затем используйте ваш отладчик, чтобы перейти к memmove(), чтобы увидеть, как он заканчивается в memmove_overlay().

Но, шансыв том, что сбой просто из-за неправильного ввода в memmove(), и, следовательно, не имеет ничего общего с тем, что функция memmove_overlay() работает.

1 голос
/ 04 апреля 2011

memcpy копирует область памяти из * src в * dest. Это может привести к сбою вашей программы, если области памяти перекрываются. Попробуйте memmove вместо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...