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

  • 相关阅读:
    [译文] 实体与值对象到底是不是一回事?
    实现 WebApi 自托管服务宿主于 WinForms 及其交互
    [译文] C# 8 已成旧闻, 向前, 抵达 C# 9!
    [译文] 为什么你在 C# 里总是应该使用 "var" 关键字
    通过设置iis在局域网中访问网页
    windows 10 安装使用kafka
    ASP.NET Core 2.1 中的 HttpClientFactory (Part 4) 整合Polly实现瞬时故障处理
    ASP.NET Core 2.1 中的 HttpClientFactory (Part 3) 使用Handler实现传出请求中间件
    ASP.NET Core 2.1 中的 HttpClientFactory (Part 2) 定义命名化和类型化的客户端
    Asp.net Core 2.0 OpenId Connect Handler缺失Claims?
  • 原文地址:https://www.cnblogs.com/mydomain/p/3036894.html
Copyright © 2011-2022 走看看