Перейти к содержимому

Фотография

Error 19890


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 SD_KOROLEV

SD_KOROLEV

    Активный участник

  • Members
  • PipPip
  • 111 сообщений
  • Город:Королев

Отправлено 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 нет

Как разрешить эту проблему ?
  • 0

#2 mangazey

mangazey

    Активный участник

  • Members
  • PipPip
  • 75 сообщений

Отправлено 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 проблема была решена.
  • 0

#3 Dmitry_NJ

Dmitry_NJ

    Консультант

  • Members
  • PipPipPipPipPipPip
  • 3 122 сообщений
  • ФИО:Дмитрий Шевченко
  • Город:New Jersey, USA

Отправлено 24 июня 2008 - 19:37

Action.c(263): Error: C interpreter run time error: Action.c (263): Error -- memory violation : Exception ACCESS_VIOLATION received. [MsgId: MERR-19890]
В HELP ошибки 19890 нет

19890 это код ошибки, текст которой вы и привели, так что Help никак бы не помог - вы и так знаете на что идет жалоба.
  • 0
Дмитрий Шевченко

HP Software

#4 SD_KOROLEV

SD_KOROLEV

    Активный участник

  • Members
  • PipPip
  • 111 сообщений
  • Город:Королев

Отправлено 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 не могу(по крайней мере сейчас)

Какое приложение в похожей ветке? (там сокращение - я не понял).
  • 0

#5 Jackie

Jackie

    Постоянный участник

  • Members
  • PipPipPip
  • 206 сообщений
  • Город:Москва

Отправлено 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,'\''');?
  • 0

#6 mangazey

mangazey

    Активный участник

  • Members
  • PipPip
  • 75 сообщений

Отправлено 25 июня 2008 - 13:15

pc_CustomButton = lr_eval_string("{prm_CustomButton}");
pc_pos1 = (char*)strchr(pc_CustomButton,'\'');

263 pc_pos2 = (char*)strchr(pc_pos1 + 1,'\'');

Есть догадка, почему на 263-й строке выдает Error -- memory violation : Exception ACCESS_VIOLATION received.

Итак, 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 гостей, 0 анонимных