动态跟踪工具
2009-09-06 00:00:00 来源:WEB开发网核心提示:简介如果在非生产环境中无法重现问题,就必须在生产环境中应用各种问题判断技术,动态跟踪工具,以寻找问题的根源,同时不能影响生产系统的性能和稳定性,比如 integer、char、short、long 等等,它还提供 ANSI-C 操作符的子集,在不同的 UNIX® 平台上有不同的工具和技术,但是这些并不都能够用来
简介
如果在非生产环境中无法重现问题,就必须在生产环境中应用各种问题判断技术,以寻找问题的根源,同时不能影响生产系统的性能和稳定性。
在不同的 UNIX® 平台上有不同的工具和技术,但是这些并不都能够用来诊断生产系统中的问题,因为其中一些会造成性能和稳定性问题。
Solaris 和 AIX 平台都提供用于诊断生产系统问题的动态跟踪工具。
Solaris 上的 Dtrace 动态跟踪工具
Dtrace 是在 Solaris 10 中引入的动态跟踪工具,这种调试工具可以调试用传统的问题判断机制难以诊断的问题。
Dtrace 让用户能够动态地修改操作系统内核和用户进程,从而记录额外数据。管理员和开发人员可以使用记录的数据研究应用程序和操作系统,寻找正在运行的系统的异常行为的原因。
术语
探测(Probe):内核或应用程序中用户感兴趣的位置,需要记录来自这些地方的数据。
提供者(Provider):执行创建探测所需的操作的内核模块。
断言(Predicate):修改控制流的逻辑表达式,可以有条件地跟踪数据。
D 语言
Dtrace 动态跟踪工具使用 D 语言,用户可以使用 D 语言把动作与探测点关联起来,以及指定什么时候触发探测和在触发时记录哪些数据。dtrace 命令解释使用 D 语言编写的脚本。
这种语言支持与 C 语言相似的数据对象,比如 integer、char、short、long 等等。它还提供 ANSI-C 操作符的子集,可以用来操作数据对象。
D 语言结构
下面的示例说明 D 语言的结构:
probe1
/ predicate /
{
action
}
probe2
/ predicate /
{
action
}
[]
赞助商链接