Error 19890
#1
Отправлено 24 июня 2008 - 13:58
Action.c(263): Error: C interpreter run time error: Action.c (263): Error -- memory violation : Exception ACCESS_VIOLATION received. [MsgId: MERR-19890]
LR 8.1
В HELP ошибки 19890 нет
Как разрешить эту проблему ?
#2
Отправлено 24 июня 2008 - 15:47
Получаю в тесте только под нагрузкой следующую ошибку
Action.c(263): Error: C interpreter run time error: Action.c (263): Error -- memory violation : Exception ACCESS_VIOLATION received. [MsgId: MERR-19890]
LR 8.1
В HELP ошибки 19890 нет
Как разрешить эту проблему ?
Что за приложение?
Какой протокол?
Что за функция на 263-й строке в скрипте и что там непосредственно перед этим?
Есть похожая ветка.
Автор пишет, что с обновлением до LR 9.1 проблема была решена.
#3
Отправлено 24 июня 2008 - 19:37
19890 это код ошибки, текст которой вы и привели, так что Help никак бы не помог - вы и так знаете на что идет жалоба.Action.c(263): Error: C interpreter run time error: Action.c (263): Error -- memory violation : Exception ACCESS_VIOLATION received. [MsgId: MERR-19890]
В HELP ошибки 19890 нет
#4
Отправлено 25 июня 2008 - 06:55
Что за приложение?
Какой протокол?
Что за функция на 263-й строке в скрипте и что там непосредственно перед этим?
Есть похожая ветка.
Автор пишет, что с обновлением до LR 9.1 проблема была решена.
----------------------------------------------------------
Что Вы понимаете под ПРИЛОЖЕНИЕМ ?
WAS 5.1
----------------------------------------------------------
Протокол HTTP
pc_CustomButton = lr_eval_string("{prm_CustomButton}");
pc_pos1 = (char*)strchr(pc_CustomButton,'\'');
263 pc_pos2 = (char*)strchr(pc_pos1 + 1,'\'');
strncpy(pc_CustomButton, pc_pos1 + 1, pc_pos2 - pc_pos1 - 1);
pc_CustomButton[pc_pos2 - pc_pos1 - 1] = 0;
lr_save_string(pc_CustomButton,"prm_CustomButton"); //
------------------------------------------------------------
Перед тем как создал тему, похожую ветку прочел.
Перейти на LR 9.1 не могу(по крайней мере сейчас)
Какое приложение в похожей ветке? (там сокращение - я не понял).
#5
Отправлено 25 июня 2008 - 12:33
----------------------------------------------------------
Протокол HTTP
pc_CustomButton = lr_eval_string("{prm_CustomButton}");
pc_pos1 = (char*)strchr(pc_CustomButton,'\'');
263 pc_pos2 = (char*)strchr(pc_pos1 + 1,'\'');
strncpy(pc_CustomButton, pc_pos1 + 1, pc_pos2 - pc_pos1 - 1);
pc_CustomButton[pc_pos2 - pc_pos1 - 1] = 0;
lr_save_string(pc_CustomButton,"prm_CustomButton"); //
------------------------------------------------------------
А вы уверены, что ошибка только под нагрузкой возникает? Здесь pc_pos1 = (char*)strchr(pc_CustomButton,'\'');
разве не отсутствует знак ' сразу после '\'' ? Т.е. не должно разве быть так: pc_pos1 = (char*)strchr(pc_CustomButton,'\''');?
#6
Отправлено 25 июня 2008 - 13:15
Есть догадка, почему на 263-й строке выдает Error -- memory violation : Exception ACCESS_VIOLATION received.pc_CustomButton = lr_eval_string("{prm_CustomButton}");
pc_pos1 = (char*)strchr(pc_CustomButton,'\'');
263 pc_pos2 = (char*)strchr(pc_pos1 + 1,'\'');
Итак, pc_CustomButton - указатель на строку символов.
pc_pos1 - указатель на первое вхождение апострофа (') в этой строке. Но если строка не содержит апострофа, то выдается NULL:
If the value is not found, the function returns a null pointer. Источник
Предположим, что апостроф не найден. Тогда pc_pos1 == NULL. И на следующей функции мы залезаем в "чужую" память: (pc_pos1 + 1)
Поэтому предлагаю:
- убедиться, что pc_pos1 содержит указатель, отличный от NULL.
- посмотреть - может вместо аапострофа надо искать двойную кавычку ("). Тогда вызов будет
pc_pos1 = (char*)strchr(pc_CustomButton,'\"');
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных