From: Michael Chastain <mec.gnu@mindspring.com>
To: cagney@redhat.com, ezannoni@redhat.com
Cc: gdb-patches@sources.redhat.com
Subject: [rfc/testsuite/mi] use gdb_get_line_number
Date: Tue, 10 Aug 2004 08:45:00 -0000 [thread overview]
Message-ID: <41188B2A.nailK7Y1RD9SU@mindspring.com> (raw)
Here is a draft patch for gdb.mi/mi-break.exp to use
gdb_get_line_number.
It works, but that's beside the point. I'm looking for the right style.
So this is RFC, not RFA.
Some questions:
. there are a lot of line_* variables. how would you like me to name
them and manage them?
. some of the test names have line numbers embedded in them:
"insert temp breakpoint at basics.c:15 (callee3)"
this is now
"insert temp breakpoint at basics.c:$line_callee3 (callee3)"
so the name floats around as basics.c changes. That is, I just
did the simple stupid substitution. What would you really like for
test names like this?
. what units of patch submission would you like: one file at a time,
or pairs of files at a time, or all the files related to basics.c
at a time?
. anything else?
I can just do whatever I think best for some of these things, but I
thought it would be good to get style clues before I go write patches
for 20 or 30 files.
Tested on native i686-pc-linux-gnu, gcc 2.95.3 3.3.4 3.4.1, dwarf-2 and
stabs+. Also I threw a copyright header into basics.c and ran it again,
and the test script followed the line numbers like it should.
What do you think?
Michael C
2004-08-10 Michael Chastain <mec.gnu@mindspring.com>
* gdb.mi/mi-break.exp: Use gdb_get_line_number.
Index: mi-break.exp
===================================================================
RCS file: /cvs/src/src/gdb/testsuite/gdb.mi/mi-break.exp,v
retrieving revision 1.6
diff -c -3 -p -r1.6 mi-break.exp
*** mi-break.exp 9 Aug 2004 16:32:44 -0000 1.6
--- mi-break.exp 10 Aug 2004 08:26:31 -0000
***************
*** 1,4 ****
! # Copyright 1999, 2001 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
--- 1,4 ----
! # Copyright 1999, 2001, 2004 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
***************
*** 14,22 ****
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gdb@prep.ai.mit.edu
-
#
# Test essential Machine interface (MI) operations
#
--- 14,19 ----
*************** mi_delete_breakpoints
*** 47,85 ****
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
proc test_tbreak_creation_and_listing {} {
global mi_gdb_prompt
global srcfile
global hex
# Insert some breakpoints and list them
# Also, disable some so they do not interfere with other tests
# Tests:
# -break-insert -t main
# -break-insert -t basics.c:callee2
! # -break-insert -t basics.c:15
! # -break-insert -t srcfile:6
# -break-list
mi_gdb_test "222-break-insert -t main" \
! "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}" \
"break-insert -t operation"
mi_gdb_test "333-break-insert -t basics.c:callee2" \
! "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"22\",times=\"0\"\}" \
"insert temp breakpoint at basics.c:callee2"
! mi_gdb_test "444-break-insert -t basics.c:15" \
! "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"15\",times=\"0\"\}" \
! "insert temp breakpoint at basics.c:15 (callee3)"
!
! # Getting the quoting right is tricky. That is "\"<file>\":6"
! mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":6\"" \
! "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"6\",times=\"0\"\}" \
! "insert temp breakpoint at \"<fullfilename>\":6 (callee4)"
mi_gdb_test "666-break-list" \
! "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\}.*\\\]\}" \
"list of breakpoints"
mi_gdb_test "777-break-delete" \
--- 44,99 ----
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}
+ # Locate line numbers in basics.c.
+ set line_callee4 [expr [gdb_get_line_number "callee4 ("]]
+ set line_callee4_plus_2 [expr [gdb_get_line_number "callee4 ("] + 2]
+ set line_callee3 [expr [gdb_get_line_number "callee3 ("]]
+ set line_callee3_plus_2 [expr [gdb_get_line_number "callee3 ("] + 2]
+ set line_callee2 [expr [gdb_get_line_number "callee2 ("]]
+ set line_callee2_plus_2 [expr [gdb_get_line_number "callee2 ("] + 2]
+ set line_callee1 [expr [gdb_get_line_number "callee1 ("]]
+ set line_callee1_plus_2 [expr [gdb_get_line_number "callee1 ("] + 2]
+ set line_main [expr [gdb_get_line_number "main ("]]
+ set line_main_plus_2 [expr [gdb_get_line_number "main ("] + 2]
+
proc test_tbreak_creation_and_listing {} {
global mi_gdb_prompt
global srcfile
global hex
+ global line_callee4 line_callee4_plus_2
+ global line_callee3 line_callee3_plus_2
+ global line_callee2 line_callee2_plus_2
+ global line_callee1 line_callee1_plus_2
+ global line_main line_main_plus_2
# Insert some breakpoints and list them
# Also, disable some so they do not interfere with other tests
# Tests:
# -break-insert -t main
# -break-insert -t basics.c:callee2
! # -break-insert -t basics.c:$line_callee3
! # -break-insert -t srcfile:$line_callee4
# -break-list
mi_gdb_test "222-break-insert -t main" \
! "222\\^done,bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_plus_2\",times=\"0\"\}" \
"break-insert -t operation"
mi_gdb_test "333-break-insert -t basics.c:callee2" \
! "333\\^done,bkpt=\{number=\"2\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee2\",file=\".*basics.c\",line=\"$line_callee2_plus_2\",times=\"0\"\}" \
"insert temp breakpoint at basics.c:callee2"
! mi_gdb_test "444-break-insert -t basics.c:$line_callee3" \
! "444\\^done,bkpt=\{number=\"3\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee3\",file=\".*basics.c\",line=\"$line_callee3\",times=\"0\"\}" \
! "insert temp breakpoint at basics.c:$line_callee3 (callee3)"
!
! # Getting the quoting right is tricky. That is "\"<file>\":$line_callee4"
! mi_gdb_test "555-break-insert -t \"\\\"${srcfile}\\\":$line_callee4\"" \
! "555\\^done,bkpt=\{number=\"4\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"callee4\",file=\".*basics.c\",line=\"$line_callee4\",times=\"0\"\}" \
! "insert temp breakpoint at \"<fullfilename>\":$line_callee4 (callee4)"
mi_gdb_test "666-break-list" \
! "666\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"1\",type=\"breakpoint\",disp=\"del\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_plus_2\",times=\"0\"\}.*\\\]\}" \
"list of breakpoints"
mi_gdb_test "777-break-delete" \
*************** proc test_rbreak_creation_and_listing {}
*** 91,96 ****
--- 105,115 ----
global mi_gdb_prompt
global srcfile
global hex
+ global line_callee4 line_callee4_plus_2
+ global line_callee3 line_callee3_plus_2
+ global line_callee2 line_callee2_plus_2
+ global line_callee1 line_callee1_plus_2
+ global line_main line_main_plus_2
# Insert some breakpoints and list them
# Also, disable some so they do not interfere with other tests
*************** proc test_rbreak_creation_and_listing {}
*** 103,129 ****
setup_xfail "*-*-*"
mi_gdb_test "122-break-insert -r main" \
! "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"32\"\}" \
"break-insert -r operation"
setup_xfail "*-*-*"
mi_gdb_test "133-break-insert -r callee2" \
! "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"22\"\}" \
"insert breakpoint with regexp callee2"
setup_xfail "*-*-*"
mi_gdb_test "144-break-insert -r callee" \
! "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"27\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"22\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"17\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"8\"\}" \
"insert breakpoint with regexp callee"
setup_xfail "*-*-*"
mi_gdb_test "155-break-insert -r \.\*llee" \
! "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"27\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"22\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"17\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"8\"\}" \
"insert breakpoint with regexp .*llee"
setup_xfail "*-*-*"
mi_gdb_test "166-break-list" \
! "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"32\",times=\"0\"\},.*\}\\\]\}" \
"list of breakpoints"
mi_gdb_test "177-break-delete" \
--- 122,148 ----
setup_xfail "*-*-*"
mi_gdb_test "122-break-insert -r main" \
! "122\\^done,bkpt=\{number=\"5\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_main_plus_2\"\}" \
"break-insert -r operation"
setup_xfail "*-*-*"
mi_gdb_test "133-break-insert -r callee2" \
! "133\\^done,bkpt=\{number=\"6\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_plus_2\"\}" \
"insert breakpoint with regexp callee2"
setup_xfail "*-*-*"
mi_gdb_test "144-break-insert -r callee" \
! "144\\^done,bkpt=\{number=\"7\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_plus_2\"\},bkpt=\{number=\"8\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_plus_2\"\},bkpt=\{number=\"9\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_plus_2\"\},bkpt=\{number=\"10\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_plus_2\"\}" \
"insert breakpoint with regexp callee"
setup_xfail "*-*-*"
mi_gdb_test "155-break-insert -r \.\*llee" \
! "155\\^done,bkpt=\{number=\"11\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee1_plus_2\"\},bkpt=\{number=\"12\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee2_plus_2\"\},bkpt=\{number=\"13\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee3_plus_2\"\},bkpt=\{number=\"14\",addr=\"$hex\",file=\".*basics.c\",line=\"$line_callee4_plus_2\"\}" \
"insert breakpoint with regexp .*llee"
setup_xfail "*-*-*"
mi_gdb_test "166-break-list" \
! "1\\\^done,BreakpointTable=\{nr_rows=\".\",nr_cols=\".\",hdr=\\\[\{width=\".*\",alignment=\".*\",col_name=\"number\",colhdr=\"Num\"\}.*colhdr=\"Type\".*colhdr=\"Disp\".*colhdr=\"Enb\".*colhdr=\"Address\".*colhdr=\"What\".*\\\],body=\\\[bkpt=\{number=\"5\",type=\"breakpoint\",disp=\"keep\",enabled=\"y\",addr=\"$hex\",func=\"main\",file=\".*basics.c\",line=\"$line_main_plus_2\",times=\"0\"\},.*\}\\\]\}" \
"list of breakpoints"
mi_gdb_test "177-break-delete" \
next reply other threads:[~2004-08-10 8:45 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-08-10 8:45 Michael Chastain [this message]
2004-08-11 18:08 ` Andrew Cagney
2004-08-11 18:53 ` Michael Chastain
2004-08-11 20:14 ` Andrew Cagney
2004-08-11 22:17 ` Michael Chastain
2004-08-11 23:00 ` Andrew Cagney
2004-08-12 12:03 ` Michael Chastain
2004-08-12 12:12 ` Andrew Cagney
2004-08-12 12:45 ` Michael Chastain
2004-08-11 19:22 ` Michael Chastain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=41188B2A.nailK7Y1RD9SU@mindspring.com \
--to=mec.gnu@mindspring.com \
--cc=cagney@redhat.com \
--cc=ezannoni@redhat.com \
--cc=gdb-patches@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox