全局类变量

全局类的变量具有全局作用域,并且在 Vue 脚本中随处可见。 可以在 Vue 脚本的一个或多个子句中使用全局变量。 为了清晰明了,也可在第一个子句之前的开始处以文本形式声明这些变量。 相应地将全局变量初始化为 0 或 NULL。

缺省情况下,会为 Vue 脚本中的所有变量分配全局类,除非将显式非全局类说明符作为声明的前缀。 在声明变量时,您还可以使用 __global 类说明符来显式声明全局变量。 根据定义,列表变量总是创建为全局类变量。

除非全局变量是列表类型,否则不会对它们的读取和更新进行序列化。 在同时发出调查时,不保证数据速度。 非列表类型的全局变量对于收集概要分析和其他统计信息很有用。

可以在 Vue 子句的谓词部分中使用全局变量。

以下脚本是初始化和使用全局变量的示例:

int wcount;			/* Global variable declared before first clause */

	@@BEGIN
	{
		int f_count;		/* Global variable declared inside @@BEGIN */
		__global int z_count;	/* Global variable declared with __global prefix */

		f_count = 12;
	}

	@@syscall:*:read:entry 
		when (z_count == 0)
	{
		int m_count;		/* Global variable declared inside a probe */
		m_count += f_count;	/* f_count already declared in earlier probe */
		printf("m_count = %d\n", m_count);
		if (wcount == 1)
			exit();
	}
	

	@@syscall:*:write:entry
	{
		m_count++;		/* m_count already declared in earlier probe */

	}

	@@syscall:*:write:exit
	{
		wcount = 1;		/* w_count declared globally */
	}