0

我在我的进程上运行 strace 来监控性能,我看到很多这样的调用:

futex(0x3d89d68, FUTEX_WAKE_PRIVATE, 1) = 0
...

我试图捕捉在 gdb 中执行此调用的位置(就像我对其他系统调用所做的那样)。但是,当我尝试打破 futex gdb 无法识别该符号时:

(gdb) b futex
Function "futex" not defined.
Make breakpoint pending on future shared library load? (y or [n])

是否有一些特殊的方法可以中断 futex 调用?

4

1 回答 1

1

根据futex 系统调用手册页

glibc 没有为 futex() 提供包装器

因此break,您需要catch syscall futex在启动该系统调用时使用 GDB 命令来暂停程序,而不是 。

于 2021-09-09T23:16:50.130 回答