问题标签 [strace]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
291766 浏览

linux - strace应该如何使用?

一位同事曾经告诉我,当在 Linux 上调试一切都失败时,最后一个选择是使用strace

我试图学习这个奇怪工具背后的科学,但我不是系统管理员,我并没有真正得到结果。

所以,

  • 它到底是什么,它有什么作用?
  • 应该如何以及在哪些情况下使用它?
  • 应该如何理解和处理输出?

简而言之,简单来说,这些东西是如何工作的?

0 投票
2 回答
267 浏览

asp.net - 检查生产 ASP.NET 进程的状态

有没有办法检查生产环境中的 asp.net 进程在做什么?在 Linux 中,可以在进程 id 上运行 strace 并确切知道进程在做什么。可以在 asp.net 进程上做类似的事情吗?谷歌搜索告诉我你需要创建转储文件然后在那里分析问题,但如果我只想检查进程的当前状态怎么办?(如缓存大小、运行时间最长的线程、特定对象的#...等)。

任何帮助都会很棒。

谢谢

0 投票
1 回答
1053 浏览

php - APC 已启用但 Apache 仍在打开文件?

我正在开发一个提供动态 PHP 代码的高流量网络服务器场,其中包含大多数请求的大约 100 个文件。APC 操作码缓存已启用,include_once_override 已启用,并且我已经为缓存分配了 64MB 内存,但是当我 strace 一个 apache 进程时,我仍然看到它 open()ing 和 stat()ing 所有这些包括每个请求应该是从缓存中提取。我可以在缓存统计信息中看到缓存正在被填充并以 100% 的命中率使用。任何人都可以提供任何见解吗?

0 投票
2 回答
1261 浏览

java - strace java小程序

我正在尝试 strace 一个 java 小程序,并且 strace 似乎没有工作。我正在调用以下函数。

在调用上述消息之前,我从 strace 获得以下输出,然后从 strace 中没有任何输出:

一旦我开始从该方法获取日志输出,我就不再从 strace 中得到什么了。我对 strace 很陌生。关于发生了什么的任何线索?可以跟踪小程序吗?

0 投票
3 回答
13551 浏览

linux - osx 的 ltrace 等价物?

osx 有非常强大的 dtrace/ktrace/dtruss 工具——但是我现在不愿意花必要的时间来学习如何处理它们。

在 OSX 上获得 linux ltrace(可能还有 strace)的等效功能的最简单方法是什么?

0 投票
2 回答
999 浏览

linux - 将自定义结构类型添加到 strace

我正在尝试对通过 ioctl 系统调用与内核驱动程序交互的用户模式共享对象进行反向工程。我有一个包含内核驱动程序ioctl 接口定义的头文件(即#defines 用于ioctl 命令号,以及用于发送到ioctl 的各种数据的结构定义)。

我看到 strace 能够取消引用传递给系统调用的用户指针,但它显然不能取消引用传递给 ioctl 的自定义结构。有没有一种简单的方法可以将我的定义添加到 strace 中,以便我可以将有意义的数据传递给 ioctl,而不仅仅是一个指针地址?

我有 strace 的源代码并已成功编译/安装它,但我所有尝试包含自己的标头都没有效果。

0 投票
1 回答
56051 浏览

macos - mac os X 上的 strace -feopen <command> 等价物

这对于调试很有用(因此与编程相关)。在linux上,我们可以使用命令

找出加载了哪些 python 模块和共享对象。macOS X 上是否有等效的单行代码?

0 投票
3 回答
6641 浏览

c - 如何拦截linux信号?(在 C 中)

我需要拦截和跟踪来自任何二进制文件的信号,就像 strace 在 linux 下一样。我不需要像真正的 strace 那样冗长的输出。我只想知道它是如何工作的,如何截获信号以及如何跟踪它们。提前致谢 :)

0 投票
3 回答
13641 浏览

linux - 无法对正在运行的 JBoss 进程执行“strace -p”

我正在尝试使用“strace -p”附加到已经运行的 JBoss 进程。JBoss 使用 1.5.0_15 Java JDK。不幸的是,这不起作用 - 我只得到一个 futex() 结果:

Strace 适用于所有其他程序,但不适用于 JBoss。当我通过 strace 启动该过程时,它似乎工作正常。当我尝试附加到已经运行的进程时,它只是不起作用。

我正在使用 64 位 Linux 2.6.18 和 32 位 Java JDK(如果重要的话,是 RedHat Enterprise Linux 5.3)。

更新#1:

我确实尝试使用“-d”运行它,但输出似乎没有任何洞察力,至少对我来说:

0 投票
4 回答
1343 浏览

linux - 我应该监控哪些进程间锁定调用?

我正在使用strace/监视一个进程,ltrace希望找到并拦截一个检查并可能激活某种全局共享锁的调用。

虽然我之前已经处理并阅读了 Linux 上几种形式的进程间锁定,但我对调用要查找的内容一无所知。

目前我唯一的怀疑是futex()在流程执行的早期出现。

更新0

我对自己的追求有些困惑。我正在监视现有进程以调用持久进程间内存或等效的 . 我想知道要查找的系统和库调用。我无意自己调用这些,所以自然futex()会出现,我相信很多库都会在这方面实现它们的锁定调用,等等。

更新1

我想要一个函数名称列表或文档链接,我应该在ltraceandstrace级别监视(并指定哪个)。任何其他关于如何跟踪和定位全局锁的好建议都会很棒。