strace ltrace记录

2023-11-01

strace - trace system calls and signals
ltrace - A library call tracer

安装

首次使用可能出现这个提示
命令未安装
就是没安装。

yum -y install strace
yum -y install ltrace

linux 安装jdk

yum search java|grep jdk
yum install -y java-1.8.0-openjdk

我写了一段简单的 java 代码,并将编译后的 class 文件上传 linux

import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;

public class Go {
    public static void main(String[] args) {
        while (true){
            RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
            String name = runtime.getName();
            System.out.println(name);
            System.out.println("good");
            try {

                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

[root@localhost ~]#java Go

启动另一个session

[root@localhost ~]# strace -qo java.1621.strace -p 1679 &
[1] 1696
[root@localhost ~]# tail -f java.1621.strace

运行效果如图:
java Go
strace
Ctrl+Z,
ctrl+z
使用fg回到程序
fg
使用Ctrl+C退出程序
Ctrl+c
这个过程中另一个 session 中查看strace输出,可以看到程序收到的信号等信息
strace

常用选项

-f : follow forks (除了跟踪当前进程外,还跟踪其子进程)
-o file :send trace output to FILE instead of stderr(将输出信息写到制定的文件file中,而不是显示到标准错误输出[stderr]中)
-p pid :trace process with process id PID, may be repeated(绑定到一个由pid制定的正在运行的进程)
-T : print time spent in each syscall(打印每个系统调用耗费的时间)
-t : print absolute timestamp

示例:
-t 选项

[root@localhost ~]# tail -f java.1621.strace
9154 — SIGTSTP (Stopped) —
9154 — SIGTSTP (Stopped) —
9163 — SIGTSTP (Stopped) —
9162 — SIGTSTP (Stopped) —
9161 — SIGTSTP (Stopped) —
9160 — SIGTSTP (Stopped) —
9159 — SIGTSTP (Stopped) —
9158 — SIGTSTP (Stopped) —
9157 — SIGTSTP (Stopped) —
9156 — SIGTSTP (Stopped) —
9155 — SIGTSTP (Stopped) —
9154 — SIGCONT (Continued) —
9154 — SIGTSTP (Stopped) —
9154 — SIGTSTP (Stopped) —
9163 — SIGTSTP (Stopped) —
9162 — SIGTSTP (Stopped) —
9161 — SIGTSTP (Stopped) —
9160 — SIGTSTP (Stopped) —
9159 — SIGTSTP (Stopped) —
9158 — SIGTSTP (Stopped) —
9157 — SIGTSTP (Stopped) —
9156 — SIGTSTP (Stopped) —
9155 — SIGTSTP (Stopped) —
9154 — SIGCONT (Continued) —
[root@localhost ~]# pstree -H 9154 -p

       ├─sshd(990)─┬─sshd(1431)───bash(1444)───java(9154)─┬─{java}(9155)
       │           │                                      ├─{java}(9156)
       │           │                                      ├─{java}(9157)
       │           │                                      ├─{java}(9158)
       │           │                                      ├─{java}(9159)
       │           │                                      ├─{java}(9160)
       │           │                                      ├─{java}(9161)
       │           │                                      ├─{java}(9162)
       │           │                                      └─{java}(9163)

报错

strace报错
这是因为已经有别的 strace attach 到此 pid 的进程(或者别的程序进行了 ptrace 调用)。查看对应的进程,找到其输出,查看对应输出即可
ps

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

strace ltrace记录 的相关文章

  • 为 Linux 编译 Objective-C 应用程序(API 覆盖范围)

    我可能在这里问一些奇怪的问题 但我不确定从哪里开始 问题是我正在考虑使用 Obj C 和 Foundation 类在 Mac 上编写一个命令行工具 但存在一个非常大的风险 那就是我希望能够为不同的 Linux 发行版编译它 以便将来作为服务
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • Linux 中 m 标志和 o 标志将存储在哪里

    我想知道最近收到的路由器通告的 m 标志和 o 标志的值 从内核源代码中我知道存储了 m 标志和 o 标志 Remember the managed otherconf flags from most recently received R
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • 如何在 Ubuntu 中创建公共 HTML 文件夹?

    简单的问题 但由于某种原因我无法在谷歌上找到确切的答案 我在 Slicehost 上安装了全新的 Ubuntu 并且想在我的主目录中为包含一堆静态 HTML 文件的简单网站创建一个公共目录 我该怎么做呢 只是打字的问题吗mkdir publ
  • 执行“minikube start”命令时出现问题

    malik malik minikube start minikube v1 12 0 on Ubuntu 18 04 Using the docker driver based on existing profile Starting c
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 为什么 fopen("any_path_name",'r') 不给出 NULL 作为返回值?

    在调试一些代码时 我得到如下内容 include
  • 如何让R使用所有处理器?

    我有一台运行 Windows XP 的四核笔记本电脑 但查看任务管理器 R 似乎一次只使用一个处理器 如何让 R 使用全部四个处理器并加速我的 R 程序 我有一个基本系统 我使用它在 for 循环上并行化我的程序 一旦您了解需要做什么 此方
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • Mac OS X 上的 /proc/self/cmdline / GetCommandLine 等效项是什么?

    如何在不使用 argc argv 的情况下访问 Mac OS X 上的命令行 在 Linux 上 我会简单地阅读 proc self cmdline or use GetCommandLine在 Windows 上 但我找不到 Mac OS
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它

随机推荐

  • hibernate框架入门

    1 在IDE中创建java项目 比较简单不再演示 2 创建source folder 命名为Hibernate3 在Hibernate下载文件中找到我们所需要的三个配置文件和所有jar包 拷贝所需jar文件 构建依赖包 3 提供hibern
  • 2207. 字符串中最多数目的子字符串

    leetcode力扣刷题打卡 题目 2207 字符串中最多数目的子字符串 描述 给你一个下标从 0 开始的字符串 text 和另一个下标从 0 开始且长度为 2 的字符串 pattern 两者都只包含小写英文字母 你可以在 text 中任意
  • 使用Java流进行输入和输出操作

    使用Java流进行输入和输出操作 Java流是一种用于在程序中进行输入和输出操作的重要工具 流可以将数据从一个地方传输到另一个地方 例如从文件读取数据或将数据写入文件 在Java中 流被广泛用于处理输入和输出 以及进行网络通信 文件操作等
  • Python副业兼职,月赚7800元,一天只要两小时 !

    现在学习python的人越来越多了 跟大家聊聊如何利用python搞副业赚钱 想要利用 Python 赚钱的方式还是比较多的 其中接单和投稿算是两种比较简单的方式了 如果你是业余学python爬虫 可以去淘宝上加了找了几个店铺直接问需要爬虫
  • 编译报错:TypeError: Cannot read property ‘styles‘ of undefined at Object.loader

    编译报错 TypeError Cannot read property styles of undefined at Object loader 如下图 因为我的vue loader的版本是17以上 太高了 需要降到15的版本 我重新下的版
  • vue 异步加载远程组件(支持编译less语法)

    本代码已组件化 可以直接使用 说明 本组件可以直接解析 vue文件 为了支持less语法解析 在组件中引入less js 可在less官网下载 组件代码
  • 戴尔r510服务器不显示,戴尔 服务器dell R510 与 dell R710 对比

    戴尔台式机DELL服务器R510与R710的区别 戴尔台式机DELL服务器R510和R710有好多相同之处 1 都是2U服务器 2 都是双CPU服务器 3 所用CPU都是INTEL5500系列CPU 4 所用内存也是同样型号 R410 R5
  • PTA(Basic Level) 1094 谷歌的招聘

    2004 年 7 月 谷歌在硅谷的 101 号公路边竖立了一块巨大的广告牌 如下图 用于招聘 内容超级简单 就是一个以 com 结尾的网址 而前面的网址是一个 10 位素数 这个素数是自然常数 e 中最早出现的 10 位连续数字 能找出这个
  • 【点云】Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs

    目录 1 摘要 2 介绍 3 方法 3 1 基于全局能量的集合分割 3 2 建立超点图 3 3 嵌入超点 3 4上下文分割 1 摘要 我们提出一个基于深度学习的框架 来解决大规模点云的语义分割问题 我们认为点云的组织形式可以被SPG Sup
  • 简单了解单点登录及实现方案

    代码演示基于springboot 一 单应用单节点登录认证 任何一个应用系统都离不开登录认证过程 实现登录认证主要目的是对系统的权限管理 在单应用单节点下常用做法通常采用session认证机制 其主要流程如下 客户端访问登录接口 传递用户名
  • i219-v不支持服务器,网络适配器中找不到Intel(R) Ethernet Connection I219-V该怎么解决?在虚拟机配...

    是因为网络适配器权限问题 1 打开网络连接 如下图 2 打开本地连接的属性 选择高级菜单 并将Internet连接共享的勾都打上 3 然后选择无线网卡进行专用网络连接 4 设置之后 您可以看到本地连接有一个手形图标 表明它是一个共版享状态
  • 三极管饱和及深度饱和状态的理解和判断!

    三极管饱和问题总结 1 在实际工作中 常用Ib V R作为判断临界饱和的条件 根据Ib V R算出的Ib值 只是使晶体管进入了初始饱和状态 实际上应该取该值的数倍以上 才能达到真正的饱和 倍数越大 饱和程度就越深 2 集电极电阻 越大越容易
  • 单选按钮input[type=radio],加上disabled后按钮颜色失效,始终默认为灰色

    在前端使用单选按钮input type radio 时 渲染后台数据时将单选按钮设为不可修改 给input加上disabled后 按钮颜色变灰 且通过css修改样式也无法改变 通过百度尝试了类似以下方式的几种修改css样式的常用办法解决 但
  • 【Android学习】导入别人的Android项目到AS中

    更新 最好直接导入 有错误再根据对应错误修改 学习阶段 下载学习他人的项目是必不可少的一步 但是新手又常常会遇到各种奇葩的问题 问题不可怕 可怕是自己退缩 总结下自己的一些经验 望对后来的你有所帮助 一 快速更改 在移植别人项目之前 最好先
  • 华为机试题69-矩阵乘法

    描述 如果A是个x行y列的矩阵 B是个y行z列的矩阵 把A和B相乘 其结果将是另一个x行z列的矩阵C 矩阵的大小不超过100 100 输入描述 第一行包含一个正整数x 代表第一个矩阵的行数 第二行包含一个正整数y 代表第一个矩阵的列数和第二
  • 20210220--CTF小笔记之常见的md5碰撞

    欢迎大家一起来Hacking水友攻防实验室学习 渗透测试 代码审计 免杀逆向 实战分享 靶场靶机 求关注 0e开头的md5和原值 QNKCDZO 0e830400451993494058024219903391 s878926199a 0e
  • 小程序内嵌webview实现支付

    点击上方 青年码农 关注 回复 特效源码 可获取各种资料 目前的一个小程序项目需要把客户之前的h5页面嵌入到现在的小程序中 并且之前的支付功能要正常 小程序提供了webview开放能力供我们使用 但是不允许在webview直接调起微信支付
  • 重载的分析

    前言 在c 中 出现重载的概念 其实就是一个高级语言的象征 他的出现就是机器语言更加的自然化 他其实可以理解位我们自然语言中的动词 它可以和不同的名词起到不同的功能 重载 定义 用一个相同的函数名来定义不同的函数 重载的条件 参数的个数不同
  • CMSIS-RTOS的信号量使用备忘

    说明 因为要使用CMSIS RTOS的信号量 所以需要了解以下几点功能 1 接收信号量时 返回值的意思 2 接收信号量时 如果信号量容器不只为一 那么是否可以再次接收到 3 发送信号量是否有限制 带着以上问题做了一个测试程序 例一 程序代码
  • strace ltrace记录

    strace 安装 常用选项 报错 strace trace system calls and signals ltrace A library call tracer 安装 首次使用可能出现这个提示 就是没安装 yum y install