Setting a watchpoint on errno in gdb

2.6k Views Asked by At

I'm trying to find out when errno changes.

At first, I tried "watch errno" in gdb, which led to the error

Cannot find thread-local variables on this target

I was able to fix this by compiling with "-pthread". However, it still doesn't work and I now get the error

Cannot find shared library `/usr/lib/debug/lib/x86_64-linux-gnu/libc-2.13.so' in dynamic linker's load module list

when I type "watch errno". What do I need to do such that setting a watchpoint on errno works?

1

There are 1 best solutions below

2
On BEST ANSWER

errno is not just a static variable anymore. Here's how it appears to userland apps on Linux (from my local /usr/include/x86_64-linux-gnu/bits/errno.h):

#   define errno (*__errno_location ())

This is to get error state per thread.