[patch] failed to attach to the same process after detaching in gdbserver multiprocess mode

Liang Cheng liang.cheng555@gmail.com
Fri Jun 24 22:21:00 GMT 2011


Reproduce step:
1. compile and link the test app (which contains an infinite loop)
2. run the app
3. start gdbserver in multiprocess mode (e.g. gdbserver --multi :5040)
3. attach the running process in gdb (e.g. target extended-remote
:5040; attach pid)
4. continue to run the app in gdb, pressing "c"
5. stop the execution of the app by pressing ctrl-c in gdb
4. detach
5. quit
7. attach the same process in gdb (e.g. target extended-remote :5040;
attach pid)

User would get something like below error in gdb
(gdb) attach 19372
Ignoring packet error, continuing...
Attached to process 19372
Ignoring packet error, continuing...
Ignoring packet error, continuing...
Ignoring packet error, continuing...
warning: Invalid remote reply: timeout

This issue does not happen in gdb-7.1.0.20100706.tar, but it happens
sometime after wards. The fix would reset cont_thread at detach.

Is the below patch OK? If it is, can anyone help to submit it as I
don't have account with write-access to the cvs?

Thanks,
Liang

licheng@licheng-linux:~/gdb-7.3/gdb-7.3.50.20110622/gdb/gdbserver$
diff -Naur linux-low.c.orig linux-low.c
--- linux-low.c.orig    2011-05-04 15:20:12.000000000 -0500
+++ linux-low.c 2011-06-23 15:05:26.633193953 -0500
@@ -837,6 +837,9 @@
   /* Since we presently can only stop all lwps of all processes, we
      need to unstop lwps of other processes.  */
   unstop_all_lwps (0, NULL);
+
+  /* reset cont_thread */
+  cont_thread = null_ptid;
   return 0;
 }



More information about the Gdb-patches mailing list