在gdb中的errno上设置观察点

时间:2012-05-18 18:30:56

标签: debugging gdb libc errno watchpoint

我试图找出errno何时发生变化。

首先,我在gdb中尝试了“watch errno”,这导致了错误

Cannot find thread-local variables on this target

我能够通过编译“-pthread”来解决这个问题。但是,它仍然无效,我现在得到错误

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

当我输入“watch errno”时。我需要做什么才能在errno上设置观察点?

1 个答案:

答案 0 :(得分:5)

errno不再仅仅是一个静态变量了。以下是Linux上用户态应用程序(来自我的本地/usr/include/x86_64-linux-gnu/bits/errno.h)的显示方式:

#   define errno (*__errno_location ())

这是为每个线程获取错误状态。