问题标签 [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.
strace - strace 输出中的数字是什么意思?
这里是什么6331
意思?
system-calls - strace 是如何工作的?
它可以跟踪所有使用的系统调用。
但是 sys_call 与普通调用有什么不同呢?
strace - strace 究竟输出了什么?
正是我在这里关注的...
所有人都在说 strace 返回所有使用的系统调用,但我grep entry.S
和那里只是sys_mmap
不简单mmap
,这意味着mmap
不是系统调用,应该是sys_mmap
。
那么strace究竟输出了什么?
另一个问题是我认为= 0x37aa74d000
意味着返回值,对吗?但是如果函数没有返回类型怎么办?(void
)?
system-calls - 哪个是 syscall、sys_open 或 open?
我认为sys_open
是规范的系统调用,
也就是说,那些以 . 为前缀的sys_
。
但strace
它应该记录所有系统调用,输出open
为系统调用(非前缀版本),我很困惑......
哪个是系统调用?
unix - 试图理解 strace 输出
我试图了解strace。
所以我认为一个非常实用的方法是执行以下操作:
然后:
然后从那里走。这个想法是,如果我能看到输出的差异,我可以推断出很多 strace 告诉我的内容。
不幸的是,echo1.txt 和 echo2.txt 只包含 echo 的输出,而不是 strace。我可以手动复制/粘贴输出,然后运行差异,但现在我只是好奇我做错了什么。
有人可以帮忙吗?
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,
谢谢!
c - strace 中的 set_thread_area
在程序上使用 strace:strace 在 Debian 和 CentOS 中输出相同的提取输出,但 set_thread_area 除外。(该程序的版本在两个 Linux 上完全相同。)
为什么它们不同?有什么方法可以使两个 Linux 上的输出相同?这种差异可以用 C 编程吗?Debian/CentOS 中是否缺少某些软件包?
编辑
第一:CentOS i686
第二:Debian x64,但用 -m32 编译
c - strace 输出问题
我在 CentOS 和 Debian 上运行一个程序。输出完全相同,但在 Centos 中我得到了 3 行粗体,而在 Debian 中我没有。这 3 行是关于什么的,我怎样才能在 Debian 中获得它们?
linux - 程序打开特定文件时 gdb 中断
背景故事:在运行程序时,strace
我注意到“/dev/urandom”正在被open
“编辑”。我想知道这个调用来自哪里(它不是程序本身的一部分,它是系统的一部分)。
因此,使用 gdb,我试图在发出调用catch syscall open
时中断(使用)程序执行open
,因此我可以看到回溯。问题是它open
被调用了很多次,比如几百次,所以我无法缩小打开 /dev/urandom 的具体调用范围。我应该如何缩小特定呼叫的范围?有没有办法按参数过滤,如果是这样,我该如何为系统调用进行过滤?
任何建议都会有所帮助——也许我做错了。