进程调用ptrace(PTRACE_TRACEME,...)之后,tracee停止了吗?进程调用ptrace(PTRACE_TRACEME,...)后会发生什么?
是否在exec()
系统调用中停止了tracee? (似乎不是)
Tracee是否停留在动态链接器文本中?
...
如果我编译没有任何动态链接库和glibc C运行时一个可执行文件,并指定入口点, 的tracee会停在入口点。
但是当我用glibc编译一个可执行文件(gcc hello-world.c
)时,它会停止在/lib/ld-2.20.so offset + 0xfb0
。 (cat/proc/[pid]/maps)
希望了解更多细节。
man ptrace
似乎没有帮助。
thx。所以,当tracee停止时,CPU EIP寄存器指向哪条指令? – songhir
好吧,我会说它包含'execve()'系统调用号码,但我不确定,所以你可以用gdb自己检查它,有一个命令('info reg')会告诉你你的进程寄存器的值! – bumblebeez
抱歉,我的含糊不清的陈述。当tracee停止时,CPU EIP寄存器指向一条指令。这条指令是什么?它属于glibc,动态链接器或其他? – songhir