From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12954 invoked by alias); 4 May 2005 18:39:02 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 12837 invoked from network); 4 May 2005 18:38:54 -0000 Received: from unknown (HELO e34.co.us.ibm.com) (32.97.110.132) by sourceware.org with SMTP; 4 May 2005 18:38:54 -0000 Received: from westrelay02.boulder.ibm.com (westrelay02.boulder.ibm.com [9.17.195.11]) by e34.co.us.ibm.com (8.12.10/8.12.9) with ESMTP id j44IcreE372618 for ; Wed, 4 May 2005 14:38:54 -0400 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by westrelay02.boulder.ibm.com (8.12.10/NCO/VER6.6) with ESMTP id j44Icrmf344102 for ; Wed, 4 May 2005 12:38:53 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.12.11/8.13.3) with ESMTP id j44IcrGa009996 for ; Wed, 4 May 2005 12:38:53 -0600 Received: from austin.ibm.com (netmail2.austin.ibm.com [9.41.248.176]) by d03av02.boulder.ibm.com (8.12.11/8.12.11) with ESMTP id j44IcrbZ009976 for ; Wed, 4 May 2005 12:38:53 -0600 Received: from lazy.austin.ibm.com (lazy.austin.ibm.com [9.53.94.97]) by austin.ibm.com (8.12.10/8.12.10) with ESMTP id j44IcqVi067210 for ; Wed, 4 May 2005 13:38:53 -0500 Date: Wed, 04 May 2005 18:39:00 -0000 From: Manoj Iyer X-X-Sender: manjo@lazy To: gdb-patches@sources.redhat.com Subject: Re: [RFC] new GDB server testcase In-Reply-To: <20050504144044.GA14120@nevyn.them.org> Message-ID: References: <20050504144044.GA14120@nevyn.them.org> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-SW-Source: 2005-05/txt/msg00131.txt.bz2 Daniel, I added the testcases to server-run.exp and extended server.c to include a nested function call so that I can test backtrace. Here is a patch. Please review and comment. Following the patch is the results of the testcase execution on x86. 2005-05-02 Manoj Iyer * gdb.server/server-run.exp: Added new testcases * gdb.server/server.c: Added nested function call for backtrace testing. =========Start Patch =========================================== diff -Naurp old/src/gdb/testsuite/gdb.server/server-run.exp new/src/gdb/testsuite/gdb.server/server-run.exp --- old/src/gdb/testsuite/gdb.server/server-run.exp 2005-05-04 10:34:16.000000000 -0500 +++ new/src/gdb/testsuite/gdb.server/server-run.exp 2005-05-04 13:26:09.000000000 -0500 @@ -38,5 +38,34 @@ gdb_start gdbserver_load $binfile "" gdb_reinitialize_dir $srcdir/$subdir -gdb_breakpoint main -gdb_test "continue" "Breakpoint.* main .*" "continue to main" +gdb_test "br main" "Breakpoint 1.*at.* file .*$srcfile, line \[0-9\]+.*" + +gdb_test "continue" ".*Continuing\\..*Breakpoint \[0-9\]+, main.*at .*$srcfile:\[0-9\].*" + +send_gdb "list \n" +gdb_expect { + -re ".*main.*\{.*$gdb_prompt $" { + pass "list commands can display source code" } + timeout { fail "list command failed to display source code" } +} + + +gdb_test "br function3" "Breakpoint 2.*at.* file .*$srcfile, line \[0-9\]+.*" + +gdb_test "continue" ".*Continuing\\..*Breakpoint \[0-9\]+, function3.*at .*$srcfile:\[0-9\].*" + +send_gdb "backtrace\n" +gdb_expect_list "backtrace" ".*$gdb_prompt $" { + "#0.*function3.*at.*server.c:\[0-9\]+" + "#1.*function2.*at.*server.c:\[0-9\]+" + "#2.*function1.*at.*server.c:\[0-9\]+" + "#3.*main.*at.*server.c:\[0-9\]+" +} + +gdb_test "step" "function4.*at .*$srcfile:\[0-9\]+.*" + +gdb_test "step 3" ".*${decimal}.*y = x.* y;.*" + +gdb_test "print x" ".*3.*" + +gdb_exit diff -Naurp old/src/gdb/testsuite/gdb.server/server.c new/src/gdb/testsuite/gdb.server/server.c --- old/src/gdb/testsuite/gdb.server/server.c 2005-05-04 10:34:16.000000000 -0500 +++ new/src/gdb/testsuite/gdb.server/server.c 2005-05-04 13:26:11.000000000 -0500 @@ -17,8 +17,42 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +static void +function4() +{ + + int x = 1; + int y = 2; + + x = x + y; + y = x * y; + return; +} + + +static void +function3() +{ + function4(); +} + + +static void +function2() +{ + function3(); +} + + +static void +function1() +{ + function2(); +} + int main (int argc, char **argv) { - return 0; + function1(); + return 0; } ================= End Patch ====================================== ============= Test Result ============================================= Test Run By manjo on Wed May 4 13:23:25 2005 Native configuration is i686-pc-linux-gnu === gdb tests === Schedule of variations: unix Running target unix Using ./../../dejagnu/baseboards/unix.exp as board description file for target. Using ./../../dejagnu/config/unix.exp as generic interface file for target. Using ./config/unix.exp as tool-and-target-specific interface file. Running ./gdb.server/server-run.exp ... Executing on host: gcc ./gdb.server/server.c -g -lm -o /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.server/server (timeout = 300) spawn gcc ./gdb.server/server.c -g -lm -o /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.server/server spawn /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/../../gdb/gdb -nw -nx GNU gdb 6.3.50.20050421-cvs Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". (gdb) set height 0 (gdb) set width 0 (gdb) spawn /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/../../gdb/gdbserver/gdbserver :2346 /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.server/server Process /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.server/server created; pid = 18079 Listening on port 2346 file /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.se rver/server Reading symbols from /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/gdb.server/server...done. Using host libthread_db library "/lib/libthread_db.so.1". (gdb) target remote localhost:2346 Remote debugging using localhost:2346 Remote debugging from host 127.0.0.1 0x40000c20 in ?? () (gdb) dir Reinitialize source path to empty? (y or n) y Source directories searched: $cdir:$cwd (gdb) dir ./gdb.server Source directories searched: /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/./gdb.server:$cdir:$cwd (gdb) br main Breakpoint 1 at 0x80483af: file gdb.server/server.c, line 56. (gdb) PASS: gdb.server/server-run.exp: br main continue Continuing. Breakpoint 1, main (argc=1, argv=0xbffff7f4) at gdb.server/server.c:56 56 function1(); (gdb) PASS: gdb.server/server-run.exp: continue list 51 } 52 53 int 54 main (int argc, char **argv) 55 { 56 function1(); 57 return 0; 58 } (gdb) PASS: gdb.server/server-run.exp: list commands can display source code br function3 Breakpoint 2 at 0x804837e: file gdb.server/server.c, line 36. (gdb) PASS: gdb.server/server-run.exp: br function3 continue Continuing. Breakpoint 2, function3 () at gdb.server/server.c:36 36 function4(); (gdb) PASS: gdb.server/server-run.exp: continue backtrace #0 function3 () at gdb.server/server.c:36 #1 0x08048390 in function2 () at gdb.server/server.c:43 #2 0x0804839d in function1 () at gdb.server/server.c:50 #3 0x080483b4 in main (argc=1, argv=0xbffff7f4) at gdb.server/server.c:56 (gdb) PASS: gdb.server/server-run.exp: backtrace step function4 () at gdb.server/server.c:24 24 int x = 1; (gdb) PASS: gdb.server/server-run.exp: step step 3 28 y = x * y; (gdb) PASS: gdb.server/server-run.exp: step 3 print x $1 = 3 (gdb) PASS: gdb.server/server-run.exp: print x testcase ./gdb.server/server-run.exp completed in 1 seconds === gdb Summary === # of expected passes 9 Executing on host: /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/../../gdb/gdb -nw --command gdb_cmd (timeout = 300) spawn /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/../../gdb/gdb -nw --command gdb_cmd GNU gdb 6.3.50.20050421-cvs Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". /home/manjo/projects/gdb/mainline/2005-04-21/src/gdb/testsuite/../../gdb/gdb version 6.3.50.20050421-cvs -nx runtest completed at Wed May 4 13:23:27 2005 ====================== End Test Result ======================= Thanks ----- manjo +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + Cogito ergo sum + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ On Wed, 4 May 2005, Daniel Jacobowitz wrote: > On Wed, May 04, 2005 at 09:24:20AM -0500, Manoj Iyer wrote: > > > > I wrote a testcase for testing basic gdbserver functionality over TCP > > connection. I will add more cases like step, print, etc once the testcase > > is approved. > > Thanks for doing this. > > Can you find a better name than "basictest.exp"? Is there a reason not > to add these basic tests to server-run.exp? > > > /* File: test basic remote debug functionality through TCP connection. */ > > /* Author: Manoj Iyer */ > > This needs a copyright notice. > > > #include > > #include > > Why are you using stdio? We have no easy way to get at the program's > output. > > > > > main() > > { > > printf("hello gdb\n"); > > function1(); > > } > > That's not valid C, though many compilers will accept it. "int main" > and "return 0" please. > > > > > ====================================================================== > > > > ======================= basictest.exp =============================== > > Please use server-run.exp as a template instead of whatever you were > using. For instance, use skip_gdbserver_tests, and don't use > gdb_suppress_entire_file. > > > gdb_exit > > global gdbport > > > > set ret [gdbserver_spawn $binfile ""] > > set gdbport [lindex $ret 1] > > > > gdb_start > > > > send_gdb "file $binfile \n " > > > > gdb_target_cmd "remote" $gdbport > > ... and don't duplicate any of that. gdbserver_load. I went to a lot > of trouble to write the infrastructure, so please use it :-) > > -- > Daniel Jacobowitz > CodeSourcery, LLC >