zoukankan      html  css  js  c++  java
  • truss命令

    truss 命令

    用途

    跟踪进程的系统调用、动态装入的用户级函数调用、接收的信号和造成的机器故障。

    truss 命令执行指定命令或附加在列出进程标识上,并产生对系统调用、接收的信号和进程造成的机器故障的跟踪。每行跟踪输出报告 Fault Signal 名称或 Syscall 名称和参数及返回值。系统库定义的子例程对于内核的严格系统调用并不是必要的。truss 命令不报告这些子例程,而是报告子例程的基本系统调用。可能的话,系统调用参数使用有关系统头文件定义符号显示。对于路径名指针参数,truss 显示指向的字符串。未定义的系统调用缺省显示系统名称、所有八个可能的变量及十六进制格式的返回值。

    -o 标志和 truss 一起使用,或标准错误改指向非终端文件时,truss 忽略挂断、中断和信号进程。他促进跟踪交互式程式从终端获得 interrupt quit 信号。

    若跟踪输出保持指向终端或跟踪现存过程(使用 -p 标志),truss hangupinterrupt quit 信号做出反应,释放所有跟踪进程并退出。他使用户可终止过多的跟踪输出并释放前现存进程。释放进程继续到功能恢复正常。

    示例

    1. 在终端上跟踪 find 命令,输入:

    truss find . -print >find.out

    2. 跟踪 lseekclosestatx 和开放系统调用,输入:

    truss -t lseek,close,statx,open find . -print > find.out

    3. 显示 find 命令的线程标识和常规输出,输入:

    truss -l find . -print >find.out

    4. 显示 find 命令的时间戳记和常规输出,输入:

    truss -d find . -print >find.out

    5. 显示 find 命令的增量时间和常规输出,输入:

    truss -D find . -print >find.out

    6. 运行 ls 命令时,在 libc.a 库中跟踪 malloc() 函数调用及除去 strlen() 函数调用,输入:

    truss -u libc.a::malloc,!strlen ls

    7. 运行 ls 命令时,跟踪 libc.a 库中名称以“m”开头的所有函数调用,输入:

    truss -u libc.a::m*,!strlen ls

    8. 运行可执行 foo 时,跟踪来自 libcurses.a 库的所有函数调用及除去来自 libc.a 的调用,输入:

    truss -u libcurses.a,!libc.a::* foo

    9. 运行可执行 foo 时,跟踪来自 libcurses.a refresh() 函数调用和来自 libc.a malloc() 函数调用,输

    入:

    truss -u libc.a::malloc -u libcurses.a::refresh foo

    原文

    http://hi.baidu.com/lmcbbat/item/1e1022e4780af00b8c3ea868

  • 相关阅读:
    提升键盘可访问性和AT可访问性
    2个小技巧
    设计模式(6): 数据抽象与业务封装
    目录
    医疗经济学
    医疗场景下的行为经济学(三)
    抗体、免疫
    医疗场景下的行为经济学(二)
    医疗场景下的行为经济学(一)
    单身社会如何生活-日本纪录片ガイアの夜明け系列
  • 原文地址:https://www.cnblogs.com/mydomain/p/3036894.html
Copyright © 2011-2022 走看看