The only change is hardware watchpoints. Well. I can't say this change is good. Because ugdb uses (unexported) arch_ptrace() to set debugregs in a very much x86-specific way. However, I do not see what else can I do. 2.6.32 doesn't have the generic hardware breakpoint handler interface. And I can't play with thread.debugregX by hand, otherwise ugdb can't be compiled with the fresh kernels. arch_ptrace() method should work (I hope) with any kernel. But, this obviously means more multitracing problems. Perhaps ugdb needs the "can_use_hw_watchpoints" parameter. Also, currently the usage of debugregs is far from optimal, hopefully it is simple to improve. And. I think it makes sense to change gdb somehow. Even if it works with gdbserver, it falls back to stepping if the size of wp is too big for hw (default_region_ok_for_hw_watchpoint). This means that ugdb can't be faster in this case although it obviously could. What should I do next? (apart from internal changes, of course) Say, should I implement vRun? From the very beginnig, I hate the idea to exec the target from kernel space, but otoh I'm afraid this is important for gdb users. Oleg.