Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Bob Rossi <bob_rossi@cox.net>
To: gdb-patches@sources.redhat.com
Subject: Adding -file-list-exec-source-file command to GDB/MI
Date: Wed, 02 Apr 2003 20:24:00 -0000	[thread overview]
Message-ID: <20030402202441.GE13251@white> (raw)

Seems like this didn't go through the first time. Sorry if posted twice.

This change essentially adds the command -file-list-exec-source-file to
the mi commands.

* mi-cmd-file.c:    Added file to implement mi file commands.
* mi-getopt.c:      Added mi_valid_noargs to verify if a set of
                    parameters passed to an MI function has no arguments
* mi-getopt.h:      Prototyped mi_valid_noargs
* mi-cmds.c:        Added -file-list-exec-source-file command.
* mi-cmds.h:        Added -file-list-exec-source-file to proto list.
* doc/gdb.texinfo:  Document -file-list-exec-source-file.
* mi-file.exp:      Added testcase to test -file-list-exec-source-file.

Thanks,
Bob Rossi

Index: Makefile.in
===================================================================
RCS file: /cvs/src/src/gdb/Makefile.in,v
retrieving revision 1.357
diff -w -u -r1.357 Makefile.in
--- Makefile.in	2 Apr 2003 03:02:46 -0000	1.357
+++ Makefile.in	2 Apr 2003 19:30:31 -0000
@@ -168,14 +168,14 @@
 SUBDIR_MI_OBS = \
 	mi-out.o mi-console.o \
 	mi-cmds.o mi-cmd-env.o mi-cmd-var.o mi-cmd-break.o mi-cmd-stack.o \
-	mi-cmd-disas.o \
+	mi-cmd-file.o mi-cmd-disas.o \
 	mi-interp.o \
 	mi-main.o mi-parse.o mi-getopt.o
 SUBDIR_MI_SRCS = \
 	mi/mi-out.c mi/mi-console.c \
 	mi/mi-cmds.c mi/mi-cmd-env.c \
 	mi/mi-cmd-var.c mi/mi-cmd-break.c mi/mi-cmd-stack.c \
-	mi/mi-cmd-disas.c \
+	mi/mi-cmd-file.c mi/mi-cmd-disas.c \
 	mi/mi-interp.c \
 	mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c
 SUBDIR_MI_DEPS =
@@ -2546,6 +2546,10 @@
 	$(ui_out_h) $(mi_out_h) $(breakpoint_h) $(gdb_string_h) \
 	$(mi_getopt_h) $(gdb_events_h) $(gdb_h)
 	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-break.c
+mi-cmd-file.o: $(srcdir)/mi/mi-cmd-file.c $(defs_h) $(mi_cmds_h) \
+	$(ui_out_h) $(mi_out_h) $(breakpoint_h) $(gdb_string_h) \
+	$(mi_getopt_h) $(gdb_events_h) $(gdb_h)
+	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-file.c
 mi-cmd-disas.o: $(srcdir)/mi/mi-cmd-disas.c $(defs_h) $(target_h) $(value_h) \
 	$(mi_cmds_h) $(mi_getopt_h) $(ui_out_h) $(gdb_string_h) $(disasm_h)
 	$(CC) -c $(INTERNAL_CFLAGS) $(srcdir)/mi/mi-cmd-disas.c
Index: doc/gdb.texinfo
===================================================================
RCS file: /cvs/src/src/gdb/doc/gdb.texinfo,v
retrieving revision 1.154
diff -w -u -r1.154 gdb.texinfo
--- doc/gdb.texinfo	27 Mar 2003 15:17:34 -0000	1.154
+++ doc/gdb.texinfo	2 Apr 2003 19:30:57 -0000
@@ -16337,6 +16337,32 @@
 N.A.
 
 
+@subheading The @code{-file-list-exec-source-file} Command
+@findex -file-list-exec-source-file
+
+@subsubheading Synopsis
+
+@smallexample
+ -file-list-exec-source-file
+@end smallexample
+
+List the line number, the current source file, and the absolute path 
+to the current source file for the current executable.
+
+@subsubheading @value{GDBN} Command
+
+There's no @value{GDBN} command which directly corresponds to this one.
+
+@subsubheading Example
+
+@smallexample
+(@value{GDBP})
+123-file-list-exec-source-file
+123^done,line="1",file="foo.c",fullname="/home/bar/foo.c"
+(@value{GDBP})
+@end smallexample
+
+
 @subheading The @code{-file-list-exec-source-files} Command
 @findex -file-list-exec-source-files
 
Index: mi/mi-cmds.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.c,v
retrieving revision 1.10
diff -w -u -r1.10 mi-cmds.c
--- mi/mi-cmds.c	6 Feb 2003 01:19:12 -0000	1.10
+++ mi/mi-cmds.c	2 Apr 2003 19:30:57 -0000
@@ -80,6 +80,7 @@
   {"file-exec-and-symbols", "file %s", 0},
   {"file-exec-file", "exec-file %s", 0},
   {"file-list-exec-sections", 0, 0},
+  {"file-list-exec-source-file", 0, 0, mi_cmd_file_list_exec_source_file},
   {"file-list-exec-source-files", 0, 0},
   {"file-list-shared-libraries", 0, 0},
   {"file-list-symbol-files", 0, 0},
Index: mi/mi-cmds.h
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmds.h,v
retrieving revision 1.7
diff -w -u -r1.7 mi-cmds.h
--- mi/mi-cmds.h	6 Feb 2003 01:19:12 -0000	1.7
+++ mi/mi-cmds.h	2 Apr 2003 19:30:58 -0000
@@ -80,6 +80,7 @@
 extern mi_cmd_args_ftype mi_cmd_exec_step_instruction;
 extern mi_cmd_args_ftype mi_cmd_exec_until;
 extern mi_cmd_args_ftype mi_cmd_exec_interrupt;
+extern mi_cmd_argv_ftype mi_cmd_file_list_exec_source_file;
 extern mi_cmd_argv_ftype mi_cmd_gdb_exit;
 extern mi_cmd_argv_ftype mi_cmd_interpreter_exec;
 extern mi_cmd_argv_ftype mi_cmd_stack_info_depth;
Index: mi/mi-getopt.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-getopt.c,v
retrieving revision 1.6
diff -w -u -r1.6 mi-getopt.c
--- mi/mi-getopt.c	6 Mar 2001 08:21:45 -0000	1.6
+++ mi/mi-getopt.c	2 Apr 2003 19:30:58 -0000
@@ -74,3 +74,19 @@
     }
   error ("%s: Unknown option ``%s''", prefix, arg + 1);
 }
+
+int 
+mi_valid_noargs(const char *prefix, int argc, char **argv) 
+{
+  int optind = 0;
+  char *optarg;
+  static struct mi_opt opts[] =
+  {
+    0
+  };
+
+  if ( mi_getopt(prefix, argc, argv, opts, &optind, &optarg) == -1 )
+    return 1;
+  else
+    return 0;
+}
Index: mi/mi-getopt.h
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-getopt.h,v
retrieving revision 1.4
diff -w -u -r1.4 mi-getopt.h
--- mi/mi-getopt.h	6 Mar 2001 08:21:45 -0000	1.4
+++ mi/mi-getopt.h	2 Apr 2003 19:30:58 -0000
@@ -57,4 +57,24 @@
 
 struct mi_opt;
 
+/* mi_valid_noargs
+   
+   Determines if ARGC/ARGV are a valid set of parameters to satisfy 
+   an MI function that is not supposed to recieve any arguments.
+   
+   An MI function that should not recieve arguments can still be 
+   passed parameters after the special option '--' such as below.
+
+   Example: The MI function -exec-run takes no args.
+   However, the client may pass '-exec-run -- -a ...'
+   See PR-783
+
+   PREFIX is passed to mi_getopt for an error message.
+    
+   This function Returns 1 if the parameter pair ARGC/ARGV are valid
+   for an MI function that takes no arguments. Otherwise, it returns 0
+   and the appropriate error message is displayed by mi_getopt.  */
+
+extern int mi_valid_noargs (const char *prefix, int argc, char **argv);
+				
 #endif


#   Copyright 1999 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# 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
#
# Verify that, using the MI, we can run a simple program and perform basic
# debugging activities like: insert breakpoints, run the program,
# step, next, continue until it ends and, last but not least, quit.
#
# The goal is not to test gdb functionality, which is done by other tests,
# but to verify the correct output response to MI operations.
#

load_lib mi-support.exp
set MIFLAGS "-i=mi"

gdb_exit
if [mi_gdb_start] {
    continue
}

set testfile "basics"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}
if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-DFAKEARGV}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

mi_delete_breakpoints
mi_gdb_reinitialize_dir $srcdir/$subdir
mi_gdb_load ${binfile}

proc test_tbreak_creation_and_listing {} {
    global srcfile
    global srcdir
    global subdir
    set srcfilepath [string_to_regexp ${srcdir}/${subdir}/${srcfile}]

    # get the path and absolute path to the current executable
    mi_gdb_test "111-file-list-exec-source-file" \
	    "111\\\^done,line=\"23\",file=\"${srcfilepath}\",fullname=\"/.*/${srcfile}\"" \
               "request path info of current source file (${srcfile})"
}

test_tbreak_creation_and_listing

mi_gdb_exit
return 0


             reply	other threads:[~2003-04-02 20:24 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-02 20:24 Bob Rossi [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-04-02 20:24 Bob Rossi
2003-04-02 21:59 ` Andrew Cagney
2003-04-03  2:54 ` Eli Zaretskii
2003-03-29  0:41 Bob Rossi
2003-03-31  5:38 ` Andrew Cagney
2003-03-31 18:46   ` Bob Rossi
2003-03-31 18:56     ` Andrew Cagney
2003-04-02 16:15   ` Bob Rossi
2003-04-02 16:27     ` Andrew Cagney
2003-03-20 22:44 Bob Rossi
2003-03-21  4:34 ` Eli Zaretskii
2003-03-21  9:53 ` Jason Molenda
2003-03-21 13:16   ` Bob Rossi
2003-03-28 15:26     ` Andrew Cagney
2003-03-30  4:06       ` Bob Rossi
2003-03-31  4:22         ` Andrew Cagney
2003-03-31  8:13           ` Jason Molenda
2003-03-31 14:31             ` Andrew Cagney
2003-03-31 17:16               ` Jason Molenda
2003-03-31 18:52                 ` Andrew Cagney
2003-03-31 19:20                   ` Jason Molenda
2003-03-31 20:12                     ` Andrew Cagney
2003-03-26 22:48 ` Andrew Cagney
2003-03-28 14:35   ` Bob Rossi
2003-03-28 15:30 ` Andrew Cagney
2003-03-28 16:05   ` Bob Rossi
2003-03-28 16:10     ` Daniel Jacobowitz
2003-03-10  0:31 Bob Rossi
2003-03-10  4:28 ` Eli Zaretskii
2003-03-18  2:10   ` Bob Rossi
2003-03-18  5:46     ` Eli Zaretskii
2003-02-10 22:28 Michael Elizabeth Chastain
2003-02-10 22:15 Bob Rossi
2003-02-11  6:39 ` Eli Zaretskii
2003-02-13  3:00   ` Bob Rossi

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=20030402202441.GE13251@white \
    --to=bob_rossi@cox.net \
    --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