gdb: detection and/or fork+gethostbyname crash workaround?
Daniel Jacobowitz
dmj+@andrew.cmu.edu
Tue Jul 24 14:22:00 GMT 2001
On Tue, Jul 24, 2001 at 01:26:07PM -0700, Kevin Buettner wrote:
> [1] Actually, maybe there is. It may be possible to place a
> breakpoint libc's fork() entry point. When this breakpoint is hit,
> we call ptrace(PTRACE_SYSCALL,...) twice. From my reading of the
> documentation, the first PTRACE_SYSCALL call will stop at the fork
> syscall's entry point, the second will stop when the syscall is about
> to return. We could remove all breakpoints on the first stop (fork
> entry) and restore them on the second stop (fork exit).
Yeah, that's how PTRACE_SYSCALL works - see strace for the gory
details. It can even be used to stop in both the parent and the child.
I've wanted to be able to even access PTRACE_SYSCALL from gdb; it can
be convenient for getting to a particular point in execution. It would
require defining a new type of breakpoint, though.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer
More information about the Gdb
mailing list