ProbeVue简介

即使对于老练的程序员和系统管理员,应用程序开发和故障排除也是艰难的任务。即使有了最好的调试器,程序员有时候仍然希望用简单的打印语句检查应用程序正在执行的操作。IBM AIX V6 增加了一种新的调试工具,ProbeVue。本文简要介绍 ProbeVue的用法以及相关联的编程和脚本语言,并通过一个简单的示例程序演示 ProbeVue的用途和潜在价值。

简介

ProbeVue这种跟踪工具使用户可以动态地跟踪正在运行的程序。ProbeVue的主要接口是 VUE 语言。VUE 既是编程语言,也是脚本语言。VUE 语言与 C 语言和AIX 可用的脚本语言相似。

VUE 语法

ProbeVue脚本的基本形式与结构良好的C程序和awk 脚本相似。Vue脚本文件的一般形式如下:

Variable definitions
Begin {
}
Probe clauses
End {
}

变量部分

在变量部分中定义全局变量。与 C 语言一样,可以在文件中的其它地方指定临时变量。VUE 支持以下变量类型:

C-89数据类型(包括有符号和无符号)short、int、long、long long、float 和double。对于浮点变量的操作只限于简单的赋值表达式和作为 VUE 函数的变量。

String数据类型代表字符串字面值。例如,String fooString[20] 声明一个长度为 20的字符串字面值。只需用fooString = “My String” 初始化 fooString。可以使用+ 操作符连接多个字符串字面值。

List数据类型表示一组整数类型的值。例如,fooList = list() 创建 List fooList。使用append 函数在 fooList 中添加值:append( fooList, value ),其中的value 可以是另一个列表或整数变量。除了append 函数之外,List数据类型还支持 avg() 函数(计算列表的平均值)、min() 函数(判断列表中的最小值)、max() 函数(判断列表中的最大值)和count() 函数(返回列表的大小,即列表中的条目数量)。

probev_timestamp_t是一种特殊的数据类型,用来从 VUE 时间戳函数返回值。返回的值采用AIX 内部格式。

环境变量

在环境变量名称前面加上 $(美元)符号,就可以在 Vue脚本中使用环境变量。在默认情况下,环境变量存储整数值。要想保证传递字符串,环境变量必须用双引号定义变量:export MYENV=\”123\” 传递字符串 123,而 export MYENV=123 传递整数值一百二十三。

除了传递环境变量之外,VUE 还支持几个内置的环境变量:

__CPID是 ProbeVue命令创建的子进程的进程 ID。

__CPTID是线程 ID。

时间: 2024-12-28 04:45:16

ProbeVue简介的相关文章

AIX 6.1的动态跟踪工具:ProbeVue

VUE语言简介 VUE语言是用来编写 ProbeVue 动态跟踪程序的语言.VUE脚本是指用 VUE语言编写的程序.VUE脚本可 以用来确定动态探针所在的探针点,指定动态探针触发条件和探针的行为(例如捕获哪些跟踪数据).简 单来说,VUE脚本就是告诉 probevue 那里跟踪,什么时候跟踪,以及跟踪什么数据. 一个典型的VUE程序包含几个子句,每个子句包含一个或多个调查规范以及相应的具有可选谓词的用户 操作.VUE脚本提供了声明.操作和输出数据的工具以及某些对执行的控制.VUE脚本的子句有三种

Python中title()方法的使用简介

  这篇文章主要介绍了Python中title()方法的使用简介,是Python入门中的基础知识,需要的朋友可以参考下 title()方法返回所有单词的第一个字符大写的字符串的一个副本. 语法 以下是title()方法的语法: ? 1 str.title(); 参数 NA 返回值 此方法返回其中所有单词的前几个字符都是大写的字符串的一个副本. 例子 下面的例子显示了title()方法的使用. ? 1 2 3 4 #!/usr/bin/python   str = "this is string

shiro(1)-简介

简介 apache shiro 是一个功能强大和易于使用的Java安全框架,为开发人员提供一个直观而全面的的解决方案的认证,授权,加密,会话管理. 在实际应用中,它实现了应用程序的安全管理的各个方面. shiro的功能 apache shiro能做什么? 支持认证跨一个或多个数据源(LDAP,JDBC,kerberos身份等) 执行授权,基于角色的细粒度的权限控制. 增强的缓存的支持. 支持web或者非web环境,可以在任何单点登录(SSO)或集群分布式会话中使用. 主要功能是:认证,授权,会话

Tutum公司简介

2015年10月21日,由Tutum公司的CEO Borja Burgos对外宣布,Tutum与Docker公司正式合作,大家对Tutum和Docker的合作还是很期待的.下面我简单介绍一下Tutum公司. Tutum的历史 Tutum创立的时间很难确定.Tutum(拉丁语里安全的意思)的最初构思是在2012年秋季,它是作为Borja Burgos在卡内基梅隆大学(匹兹堡)的研究生课程和在日本兵库县大学的硕士论文,Tutum是一个可以帮助企业过渡到云的安全支持系统. 在2013年初,Tutum有

在应用中加入全文检索功能——基于Java的全文索引引擎Lucene简介

全文检索|索引 内容摘要: Lucene是一个基于Java的全文索引工具包. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的历史 全文检索的实现:Luene全文索引和数据库索引的比较 中文切分词机制简介:基于词库和自动切分词算法的比较 具体的安装和使用简介:系统结构介绍和演示 Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的扩展 从Lucene我们还可以学到什么 基于Java的全文索引/检索引擎--Lucene Lucene不是一个完整的全

Linux Namespace机制简介

最近Docker技术越来越受到关注,作为Docker中很重要的一项技术,Namespace也就经常在Docker的简介里面看到. 在这里总结一下它的内部机制.也解决一下自己原来的一些疑惑. Namespace是什么: C++中的Namespace: 首先,先提一下Namespace是什么.最早知道这个名词是在学习C++语言的时候.由于现在的系统越来越复杂,代码中不同的模块就可能使用相同变量,于是就出现了Namespace,来对全局作用域进行划分. 比如C++的标注库都定义在STD Namespa

ENode 2.6 架构与设计简介以及全新案例分享

前言 ENode是一个应用开发框架,为开发人员提供了一整套基于DDD+CQRS+ES+EDA架构风格的解决方案.ENode从发布1.0开始到现在的差不多两年时间,我几乎每周都在更新设计或实现代码.以至于从来没有一个稳定的版本可以提供给大家,非常惭愧.但我相信,随着时间的推移和我的努力的积累,ENode一定会越来越稳定和成熟的.我觉得我此刻很幸福,因为我有自己的兴趣且有机会在业余时间为了自己的兴趣而奋斗. ENode开源地址:https://github.com/tangxuehua/enode

linux内核符号表kallsyms简介

在使用perf排查问题时,我们经常会发现[kernel.kallsyms]这个模块.这到底是个什么东西呢? 简介: 在2.6版的内核中,为了更方便的调试内核代码,开发者考虑将内核代码中所有函数以及所有非栈变量的地址抽取出来,形成是一个简单的数据块(data blob:符号和地址对应),并将此链接进 vmlinux 中去. 在需要的时候,内核就可以将符号地址信息以及符号名称都显示出来,方便开发者对内核代码的调试.完成这一地址抽取+数据快组织封装功能的相关子系统就称之为 kallsyms. 反之,如

Python中Django框架下的staticfiles使用简介

  这篇文章主要介绍了Python中Django框架下的staticfiles使用简介,staticfiles是一个帮助Django管理静态资源的工具,需要的朋友可以参考下 django1.3新加入了一个静态资源管理的app,django.contrib.staticfiles.在以往的django版本中,静态资源的管理一向都是个问题.部分app发布的时候会带上静态资源文件,在部署的时候你必须手动从各个app中将这些静态资源文件复制到同一个static目录.在引入staticfiles后,你只需