gdb wont break on "futex"

370 views Asked by At

I'm running strace on my process to monitor performance and I see a lot of calls like so:

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

I'm trying to catch where this call is being done in gdb ( just like I do for other system calls ). However when I try to break on futex gdb doesnt recognize the symbol:

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

Is there some special way to break on futex calls?

1

There are 1 answers

3
Mark Plotnick On BEST ANSWER

According to the futex syscall manual page:

glibc provides no wrapper for futex()

So instead of break, you’ll need to use the GDB command catch syscall futex to suspend the program when it starts that syscall.