On 08/11, Tom Tromey wrote: > > >>>>> "Oleg" == Oleg Nesterov <o...@redhat.com> writes: > > Oleg> So, the patch below fixes the problem, and gdb + /proc/ugdb seems > Oleg> to work. > > Oleg> Indeed, gdb sees that this fd is not pipe/tcp and uses the "hardwire" > Oleg> serial_ops, but hardwire_readchar() doesn't play well with select(). > > Oleg> Please teach gdb to use poll/select ? > > I looked at this a little bit. It seems to me that the "hardwire" stuff > is for talking to ttys, and we instead want gdb to be using the pipe code.
I didn't verify this, but I don't think so. Please look at pipe_open(). Perhaps it makes sense to serial_add_interface("ugdb"), I dunno. OK. I was going to add some cleanups and send the new version today. But after some testing (without gdb) I hit the kernel crashes. This makes me think that probably something is wrong ;) As usual, I can't blame my code. I am still investigating, the crash is not easy to reproduce, but so far I _suspect_ the problems in utrace code. At least utrace_barrier()->signal_pending() is definitely not right. Will continue tomorrow. Oleg.