首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sysdig不显示写syscall的退出事件。

Sysdig不显示写syscall的退出事件。
EN

Unix & Linux用户
提问于 2021-05-09 17:34:20
回答 1查看 71关注 0票数 0

我试图捕获对stdout (或stderr)的写入,但显然实际数据与退出事件有关。我编写了一个简单的C程序,它可以写入stdout和stderr。

代码语言:javascript
复制
#include <stdio.h>
int
main()
{
    printf("Standard output\n");
    fprintf(stderr, "Standard error\n");
    return 0;
}

我用“gcc示例”编写了它。c -o示例。如果我现在开始做系统

代码语言:javascript
复制
sudo sysdig --unbuffered -X syscall.type=write and proc.name=example

并运行./示例,我将得到以下输出

代码语言:javascript
复制
91612 20:12:09.273696708 2 example (12909) > write fd=1(<f>/dev/pts/1) size=16 
91613 20:12:09.273726879 2 example (12909) > write fd=2(<f>/dev/pts/1) size=15 

没有显示数据,只显示enter事件(>)。而且,标准凿子不会产生任何输出

代码语言:javascript
复制
sudo sysdig --unbuffered -X -c stdout syscall.type=write and proc.name=example

问题在我的示例程序中还是在哪里?如果我在没有任何参数的情况下运行sysdig,它有时也会显示某些进程的退出事件。

我正在运行Ubuntu20.04发行版,系统开发的版本是0.26.4。有关系统的更多信息,请参见系统的GitHub库

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2021-05-20 17:00:19

显然,Ubuntu附带的版本有一些问题。我从sysdig网站下载了最新版本(0.27.1),现在的结果是正确的:

代码语言:javascript
复制
65099 19:55:54.695520567 7 example (10805) > write fd=1(<f>/dev/pts/0) size=16 
65102 19:55:54.695526434 7 example (10805) < write res=16 data=
    0x0000: 5374 616e 6461 7264 206f 7574 7075 740a  Standard output.
 
65103 19:55:54.695528110 7 example (10805) > write fd=2(<f>/dev/pts/0) size=15 
65104 19:55:54.695529507 7 example (10805) < write res=15 data=
    0x0000: 5374 616e 6461 7264 2065 7272 6f72 0a  Standard error.
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/648943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档