This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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;
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]