This is the mail archive of the gdb-cvs@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]

src/gdb/gdbserver ChangeLog server.c target.c


CVSROOT:	/cvs/src
Module name:	src
Changes by:	palves@sourceware.org	2013-10-02 11:42:35

Modified files:
	gdb/gdbserver  : ChangeLog server.c target.c 

Log message:
	[GDBserver]: Silence exits if GDB is connected through stdio.
	
	If we make gdbserver gdb_continue_to_end actually expect a process
	exit with GDBserver, we get many testsuite failures with the remote
	stdio board:
	
	-PASS: gdb.arch/amd64-disp-step.exp: continue until exit at amd64-disp-step
	+FAIL: gdb.arch/amd64-disp-step.exp: continue until exit at amd64-disp-step (the program exited)
	-PASS: gdb.base/break.exp: continue until exit at recursive next test
	+FAIL: gdb.base/break.exp: continue until exit at recursive next test (the program exited)
	-PASS: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through
	+FAIL: gdb.base/chng-syms.exp: continue until exit at breakpoint first time through (the program exited)
	... etc. ...
	
	This is what the log shows for all of them:
	
	(gdb) continue
	Continuing.
	
	Child exited with status 0
	GDBserver exiting
	[Inferior 1 (process 22721) exited normally]
	(gdb) FAIL: gdb.arch/amd64-disp-step.exp: continue until exit (the program exited)
	
	The problem is the whole "Child exited ... GDBserver exiting" output,
	that comes out of GDBserver, and that the testsuite is not expecting.
	
	I pondered somehow making the testsuite adjust to this.  But,
	testsuite aside, I think GDBserver should not be outputting this at
	all when GDB is connected through stdio.  GDBserver will be printing
	this in GDB's console, but the user can already tell from the regular
	output that the inferior is gone.
	
	Again, manually:
	
	(gdb) tar remote | ./gdbserver/gdbserver - program
	Remote debugging using | ./gdbserver/gdbserver - program
	Process program created; pid = 22486
	stdin/stdout redirected
	Remote debugging using stdio
	done.
	Loaded symbols for /lib64/ld-linux-x86-64.so.2
	0x000000323d001530 in _start () from /lib64/ld-linux-x86-64.so.2
	(gdb) c
	Continuing.
	Child exited with status 1
	^^^^^^^^^^^^^^^^^^^^^^^^^^
	GDBserver exiting
	^^^^^^^^^^^^^^^^^
	[Inferior 1 (process 22486) exited with code 01]
	(gdb)
	
	Suppressing those two lines makes the output be exactly like when
	debugging against a remote tcp gdbserver:
	
	(gdb) c
	Continuing.
	[Inferior 1 (process 22914) exited with code 01]
	(gdb)
	
	2013-10-02  Pedro Alves  <palves@redhat.com>
	
	* server.c (process_serial_event): Don't output "GDBserver
	exiting" if GDB is connected through stdio.
	* target.c (mywait): Likewise, be silent if GDB is connected
	through stdio.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/gdbserver/ChangeLog.diff?cvsroot=src&r1=1.775&r2=1.776
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/gdbserver/server.c.diff?cvsroot=src&r1=1.201&r2=1.202
http://sourceware.org/cgi-bin/cvsweb.cgi/src/gdb/gdbserver/target.c.diff?cvsroot=src&r1=1.29&r2=1.30


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