开发学院操作系统Linux/Unix 动态跟踪工具 阅读

动态跟踪工具

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 声明部分包含声明语句,它们声明后续子句中使用的局部和全局变量,动态跟踪工具(4),它可以包含:_ 类型、结构、联合体和枚举定义,_ 要探测的函数的函数原型声明,例如:-@@uft:34568:*:foo:entry这指定在进程 ID 为 34568 的进程中在进入任何名为 foo() 的函数时触

声明部分包含声明语句,它们声明后续子句中使用的局部和全局变量。

它可以包含:

_ 类型、结构、联合体和枚举定义。

_ 要探测的函数的函数原型声明。

_ 脚本中要访问的全局和内核变量的声明。

Vue 语言支持大多数 C 操作符和 C-89 数据类型,还有它自己的内置变量 (_pid, _tid) 和函数 (stacktrace, timestamp)。

例如:

int count;   /* user defined global counter variable */

每个探测子句由一个探测点指定语句、动作块和可选的断言组成。

探测点指定语句指定应该触发探测动作的代码位置或事件。

AIX 6.1.0 支持下面的探测类型:

用户函数进入探测(即 uft 探测)

系统调用进入/退出探测(即 syscall 探测)

以特定的时间间隔触发的探测(即 interval 探测)

探测点指定语句格式

   
  @@<probetype>:<一个或多个与探测类型相关的字段,由冒号分隔> 
  

每个探测点至少包含三个字段。

第一个字段总是指定探测类型,由此指定它的探测管理器。

对于支持与进程相关的跟踪的探测管理器,第二个字段必须是进程 ID。

对于支持函数进入或退出探测的探测管理器,位置字段(最后一个字段)必须使用 “entry” 或 “exit” 关键字。

字段由冒号(“:”)分隔。

探测点元组字段中的星号(“*”)表示与这个字段的任何可能值匹配。

例如:

- @@uft:34568:*:foo:entry

这指定在进程 ID 为 34568 的进程中在进入任何名为 foo() 的函数时触发探测。第三个字段中的星号表示,在这个进程的任何模块中找到的 foo() 函数都应该探测。

上一页  1 2 3 4 5 6 7  下一页

Tags:动态 跟踪 工具

编辑录入:爽爽 [复制链接] [打 印]
[]
  • 好
  • 好的评价 如果觉得好,就请您
      0%(0)
  • 差
  • 差的评价 如果觉得差,就请您
      0%(0)
赞助商链接