Loadrunner Winsock协议lrs_get_static_buffer()函数调用导致内存冲突

时间:2017-08-22 07:29:29

标签: c memory winsock access-violation loadrunner

美好的一天!

我在使用HP ALM Performance Center在远程Load Generator(Performance Center主机)上运行Vugen Winsock脚本时遇到问题。

在远程Load Generator上,它在第一次lrs_get_static_buffer()呼叫时失败并出现运行时错误。

VUser日志出错:

Action.c(138):  lrs_get_static_buffer(socket0, buf0, 0, -1, null)
Action.c(138): Error: С interpreter run time error: Action.c (138): Error -- memory violation : Exception ACCESS_VIOLATION received.

在本地计算机上使用VuGen启动脚本时工作正常。

脚本在远程Load Generator上工作正常,而脚本从记录中发送未修改的数据(所有replace_data()函数调用都被注释)。

静态缓冲区" buf0"我试图获得的只有61个字节。

send buf0 61

"\n"

"\x00"

...

"R\b"


recv buf1 32
...

" data.ws"文件内容在录制阶段完好无损。

代码:

char * buffer;


...


int replace_data (char * buffer_desc)

{

long size;

...

buffer = lrs_get_static_buffer("socket0", buffer_desc, 0, -1, NULL); // here is the problem

size = lrs_get_user_buffer_size("socket0");

...

// replacing some bytes

...

lrs_set_send_buffer("socket0", buffer, size);

}


Action()

{

int rc;
buffer = (char *) malloc (4096 * sizeof(char));

...

rc = lrs_create_socket("socket0", "TCP", "RemoteHost={hostname}:{port}", LrsLastArg);

...

replace_data("buf0");

rc = lrs_length_send("socket0", "buf0", 0, LrsLastArg);

...

rc = lrs_close_socket("socket0");

}

请帮助我。

我在HPE Loadrunner Practitioners论坛上提出already asked这个问题,但仍然没有得到答案。

0 个答案:

没有答案