使用 Linux 的 strace 命令跟踪/调试程序的常用选项 在调试的时候,strace能帮助你追踪到一个程序所执行的系统调用。当你想知道程序和操作系统如何交互的时候,这是极其方便的,比如你想知道执行了哪些系统调用,并且以何种顺序执行。 这个简单而又强大的工具几乎在所有的Linux操作系统上可用,并且可被用来调试大量的程序。 命令用法 让我们看看strace命令如何追踪一个程序的执行情况。 最简单的形式,strace后面可以跟任何命令。它将列出许许多多的系统 linux中国 2024-07-20 大猫
系统之锹sysdig:Linux服务器监控和排障利器 当你需要追踪某个进程产生和接收的系统调用时,首先浮现在你脑海中的是什么?你可能会想到strace,那么你是对的。你会使用什么样的命令行工具来监控原始网络通信呢?如果你想到了tcpdump,你又作出了一个极佳的选择。而如果你碰到必须追踪打开的文件(在Unix意义上:一切皆文件)的需求,可能你会使用lsof。 strace、tcpdump以及lsof,确实是些伟大的工具,它们应该成为每个系统管理员工具 linux中国 2024-07-20 大猫
使用 strace 查找 Emacs 启动阻塞的原因 之前就觉得我的 Emacs 启动好慢,查看启动日志会发现启动到一般的时候会有一个比较长时间的卡顿。 之前一直没有理会它,今天花了点时间探索了一下,发现罪魁祸首居然是 exec-path-from-shell 这个包。 现将探索的过程记录如下: 由于使用了 spacemacs 的配置,配置上比较复杂,不太想通过实验缩减配置的方式来摸索出问题的地方。刚好最近在学习使用 strace 工具,因此决定使用 linux中国 2024-07-18 贤蛋大眼萌
在软件部署中使用 strace 进行调试 我的大部分工作都涉及到部署软件系统,这意味着我需要花费很多时间来解决以下问题: 这个软件可以在原开发者的机器上工作,但是为什么不能在我这里运行? 这个软件昨天可以在我的机器上工作,但是为什么今天就不行? 这是一种调试的类型,但是与一般的软件调试有所不同。一般的调试通常只关心代码的逻辑,但是在软件部署中的调试关注的是程序的代码和它所在的运行环境之间的相互影响。即便问题的根源是代码的逻辑错误,但软件显 linux中国 2024-07-18 泡泡
为什么 strace 在 Docker 中不起作用? 在编辑“容器如何工作”爱好者杂志的能力页面时,我想试着解释一下为什么 strace 在 Docker 容器中无法工作。 这里的问题是 —— 如果我在笔记本上的 Docker 容器中运行 strace,就会出现这种情况: $ docker run -it ubuntu:18.04 /bin/bash $ # ... install strace ... [email protected]:/# st linux中国 2024-07-17 爱可生开源社区
strace 可以解决什么问题? 昨天我 在 Twitter 上询问大家用 strace 解决了什么问题?,和往常一样,大家真的是给出了自己的答案! 我收到了大约 200 个答案,然后花了很多时间手动将它们归为 9 类。 这些解决的问题都是关于寻找程序依赖的文件、找出程序卡住或慢的原因、或者找出程序失败的原因。这些总体上与我自己使用 strace 的内容相吻合,但也有一些我没有想到的东西! 我不打算在这篇文章里解释什么是 stra linux中国 2024-07-17 剑圣无痕