问题标签 [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 投票
1 回答
1148 浏览

strace - strace 输出中的数字是什么意思?

这里是什么6331意思?

0 投票
3 回答
15704 浏览

strace - 附加到进程时如何退出strace?

有谁知道?

0 投票
3 回答
12862 浏览

system-calls - strace 是如何工作的?

它可以跟踪所有使用的系统调用。

但是 sys_call 与普通调用有什么不同呢?

0 投票
4 回答
5566 浏览

strace - strace 究竟输出了什么?

正是我在这里关注的...

所有人都在说 strace 返回所有使用的系统调用,但我grep entry.S和那里只是sys_mmap不简单mmap,这意味着mmap不是系统调用,应该是sys_mmap

那么strace究竟输出了什么?

另一个问题是我认为= 0x37aa74d000意味着返回值,对吗?但是如果函数没有返回类型怎么办?(void)?

0 投票
2 回答
2122 浏览

system-calls - 哪个是 syscall、sys_open 或 open?

我认为sys_open是规范的系统调用,

也就是说,那些以 . 为前缀的sys_

strace它应该记录所有系统调用,输出open为系统调用(非前缀版本),我很困惑......

哪个是系统调用?

0 投票
1 回答
722 浏览

unix - 试图理解 strace 输出

我试图了解strace。

所以我认为一个非常实用的方法是执行以下操作:

然后:

然后从那里走。这个想法是,如果我能看到输出的差异,我可以推断出很多 strace 告诉我的内容。

不幸的是,echo1.txt 和 echo2.txt 只包含 echo 的输出,而不是 strace。我可以手动复制/粘贴输出,然后运行差异,但现在我只是好奇我做错了什么。

有人可以帮忙吗?

0 投票
3 回答
3007 浏览

linux-kernel - 为什么许多系统调用(getpid)使用 strace 只捕获一次?

我在一个程序中多次调用getpid()strace (测试系统调用的效率),但是当我用来获取跟踪时,只捕获了一个getpid()调用。

代码很简单:

我使用gdb并得到了这个:

我不太明白汇编代码。如果有人可以对此进行详细解释,那也会很有帮助。根据我的观察,“call *%gs:0x10”(跳转到vdso)没有被执行,除了第一个getpid()调用,这可能是后续getpid()调用没有被捕获的原因。但我不知道为什么。

linux内核:2.6.24-29 gcc (GCC) 4.2.4 libc 2.7,

谢谢!

0 投票
1 回答
674 浏览

c - strace 中的 set_thread_area

在程序上使用 strace:strace 在 Debian 和 CentOS 中输出相同的提取输出,但 set_thread_area 除外。(该程序的版本在两个 Linux 上完全相同。)

为什么它们不同?有什么方法可以使两个 Linux 上的输出相同?这种差异可以用 C 编程吗?Debian/CentOS 中是否缺少某些软件包?

编辑
第一:CentOS i686
第二:Debian x64,但用 -m32 编译

0 投票
1 回答
643 浏览

c - strace 输出问题

我在 CentOS 和 Debian 上运行一个程序。输出完全相同,但在 Centos 中我得到了 3 行粗体,而在 Debian 中我没有。这 3 行是关于什么的,我怎样才能在 Debian 中获得它们?

0 投票
3 回答
6041 浏览

linux - 程序打开特定文件时 gdb 中断

背景故事:在运行程序时,strace我注意到“/dev/urandom”正在被open“编辑”。我想知道这个调用来自哪里(它不是程序本身的一部分,它是系统的一部分)。

因此,使用 gdb,我试图在发出调用catch syscall open时中断(使用)程序执行open,因此我可以看到回溯。问题是它open被调用了很多次,比如几百次,所以我无法缩小打开 /dev/urandom 的具体调用范围。我应该如何缩小特定呼叫的范围?有没有办法按参数过滤,如果是这样,我该如何为系统调用进行过滤?

任何建议都会有所帮助——也许我做错了。