问题标签 [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.
linux - strace应该如何使用?
一位同事曾经告诉我,当在 Linux 上调试一切都失败时,最后一个选择是使用strace。
我试图学习这个奇怪工具背后的科学,但我不是系统管理员,我并没有真正得到结果。
所以,
- 它到底是什么,它有什么作用?
- 应该如何以及在哪些情况下使用它?
- 应该如何理解和处理输出?
简而言之,简单来说,这些东西是如何工作的?
asp.net - 检查生产 ASP.NET 进程的状态
有没有办法检查生产环境中的 asp.net 进程在做什么?在 Linux 中,可以在进程 id 上运行 strace 并确切知道进程在做什么。可以在 asp.net 进程上做类似的事情吗?谷歌搜索告诉我你需要创建转储文件然后在那里分析问题,但如果我只想检查进程的当前状态怎么办?(如缓存大小、运行时间最长的线程、特定对象的#...等)。
任何帮助都会很棒。
谢谢
php - APC 已启用但 Apache 仍在打开文件?
我正在开发一个提供动态 PHP 代码的高流量网络服务器场,其中包含大多数请求的大约 100 个文件。APC 操作码缓存已启用,include_once_override 已启用,并且我已经为缓存分配了 64MB 内存,但是当我 strace 一个 apache 进程时,我仍然看到它 open()ing 和 stat()ing 所有这些包括每个请求应该是从缓存中提取。我可以在缓存统计信息中看到缓存正在被填充并以 100% 的命中率使用。任何人都可以提供任何见解吗?
java - strace java小程序
我正在尝试 strace 一个 java 小程序,并且 strace 似乎没有工作。我正在调用以下函数。
在调用上述消息之前,我从 strace 获得以下输出,然后从 strace 中没有任何输出:
一旦我开始从该方法获取日志输出,我就不再从 strace 中得到什么了。我对 strace 很陌生。关于发生了什么的任何线索?可以跟踪小程序吗?
linux - osx 的 ltrace 等价物?
osx 有非常强大的 dtrace/ktrace/dtruss 工具——但是我现在不愿意花必要的时间来学习如何处理它们。
在 OSX 上获得 linux ltrace(可能还有 strace)的等效功能的最简单方法是什么?
linux - 将自定义结构类型添加到 strace
我正在尝试对通过 ioctl 系统调用与内核驱动程序交互的用户模式共享对象进行反向工程。我有一个包含内核驱动程序ioctl 接口定义的头文件(即#defines 用于ioctl 命令号,以及用于发送到ioctl 的各种数据的结构定义)。
我看到 strace 能够取消引用传递给系统调用的用户指针,但它显然不能取消引用传递给 ioctl 的自定义结构。有没有一种简单的方法可以将我的定义添加到 strace 中,以便我可以将有意义的数据传递给 ioctl,而不仅仅是一个指针地址?
我有 strace 的源代码并已成功编译/安装它,但我所有尝试包含自己的标头都没有效果。
macos - mac os X 上的 strace -feopen <command> 等价物
这对于调试很有用(因此与编程相关)。在linux上,我们可以使用命令
找出加载了哪些 python 模块和共享对象。macOS X 上是否有等效的单行代码?
c - 如何拦截linux信号?(在 C 中)
我需要拦截和跟踪来自任何二进制文件的信号,就像 strace 在 linux 下一样。我不需要像真正的 strace 那样冗长的输出。我只想知道它是如何工作的,如何截获信号以及如何跟踪它们。提前致谢 :)
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”运行它,但输出似乎没有任何洞察力,至少对我来说:
linux - 我应该监控哪些进程间锁定调用?
我正在使用strace
/监视一个进程,ltrace
希望找到并拦截一个检查并可能激活某种全局共享锁的调用。
虽然我之前已经处理并阅读了 Linux 上几种形式的进程间锁定,但我对调用要查找的内容一无所知。
目前我唯一的怀疑是futex()
在流程执行的早期出现。
更新0
我对自己的追求有些困惑。我正在监视现有进程以调用持久进程间内存或等效的 . 我想知道要查找的系统和库调用。我无意自己调用这些,所以自然futex()
会出现,我相信很多库都会在这方面实现它们的锁定调用,等等。
更新1
我想要一个函数名称列表或文档链接,我应该在ltrace
andstrace
级别监视(并指定哪个)。任何其他关于如何跟踪和定位全局锁的好建议都会很棒。