• 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

  • 相关阅读:
    【2017-06-20】Linux应用开发工程师C/C++面试问题记录之一:Linux多线程程序的同步问题
    April 14 2017 Week 15 Friday
    April 13 2017 Week 15 Thursday
    April 12 2017 Week 15 Wednesday
    【2017-06-17】QtGui基础控件:QSpinBox及QDoubleSpinBox
    April 11 2017 Week 15 Tuesday
    April 10 2017 Week 15 Monday
    April 9 2017 Week 15 Sunday
    April 8 2017 Week 14 Saturday
    April 7 2017 Week 14 Friday
  • 原文地址:https://www.cnblogs.com/mydomain/p/3036894.html
Copyright © 2020-2023  润新知