如何在Linux中检索指定线程的寄存器信息?

时间:2013-07-04 03:50:09

标签: c linux unix cpu-registers

看看这个:

(gdb) info reg
rax            0x7ffff00008c0   140737219922112
rbx            0x7ffff7fe9700   140737354045184
rcx            0x33d9e182a0 222698767008
rdx            0x7ffff7fe9a10   140737354045968
rsi            0x7ffff00008c0   140737219922112
rdi            0x0  0
rbp            0x7ffff7fe8e50   0x7ffff7fe8e50
rsp            0x7ffff7fe8e30   0x7ffff7fe8e30
r8             0x400afb 4197115
r9             0x0  0
r10            0x7ffff7fe8bb0   140737354042288
r11            0x33d9c0c480 222696621184
r12            0x33d9c11200 222696641024
r13            0x7ffff7fe99c0   140737354045888
r14            0x0  0
r15            0x3  3
rip            0x4008c1 0x4008c1 <write_to_thread_log(char const*)+29>
eflags         0x246    [ PF ZF IF ]
cs             0x33 51
ss             0x2b 43
ds             0x0  0
es             0x0  0
fs             0x0  0
gs             0x0  0

我的问题是: 哪个接口可以在Linux中实现这个功能? 我的平台:Linux 2.6.32-279.el6.x86_64 x86_64 GNU / Linux 非常感谢你的帮助。

1 个答案:

答案 0 :(得分:4)

ptrace系统调用是Linux中的标准调试工具,GDB使用它来与正在调试的其他进程进行交互。 GDB可能会通过PTRACE_GETREGSPTRACE_GETREGSET请求获取此信息。