mer*_*011 5 c linux multithreading
假设我有一个没有源的通用二进制文件,我想确定它是串行运行还是生成多个线程.
有没有办法可以从linux命令行执行此操作?
首先安装strace.
$ yum install strace
Run Code Online (Sandbox Code Playgroud)
使用 strace 运行程序,并查找clone或fork系统调用。这是一个我编写的程序的简单示例,该程序仅调用fork并返回。
$ strace ./a.out
execve("./a.out", ["./a.out"], [/* 43 vars */]) = 0
brk(0) = 0x74f000
...
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7fb22b16da10) = 6567
exit_group(1) = ?
+++ exited with 1 +++
Run Code Online (Sandbox Code Playgroud)