From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24594 invoked by alias); 20 Mar 2003 22:45:12 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 24578 invoked from network); 20 Mar 2003 22:45:12 -0000 Received: from unknown (HELO white) (68.14.146.65) by sources.redhat.com with SMTP; 20 Mar 2003 22:45:12 -0000 Received: from bob by white with local (Exim 3.35 #1 (Debian)) id 18w8me-0003fe-00 for ; Thu, 20 Mar 2003 17:45:12 -0500 Date: Thu, 20 Mar 2003 22:45:00 -0000 From: Bob Rossi To: gdb@sources.redhat.com Subject: Re: Adding -file-list-exec-source-file command to GDB/MI Message-ID: <20030320224512.GB14096@white> Mail-Followup-To: gdb@sources.redhat.com References: <20030320222935.GA14051@white> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20030320222935.GA14051@white> User-Agent: Mutt/1.3.28i X-SW-Source: 2003-03/txt/msg00306.txt.bz2 sorry, wrong list. On Thu, Mar 20, 2003 at 05:29:35PM -0500, Bob Rossi wrote: > ----- Forwarded message from Bob Rossi ----- > > Date: Sun, 9 Mar 2003 19:31:17 -0500 > From: Bob Rossi > To: gdb-patches@sources.redhat.com > Subject: Adding -file-list-exec-source-file command to GDB/MI > > Hi, > > 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-cmds.c: Added -file-list-exec-source-file command. > * mi-cmds.h: Added -file-list-exec-source-file to proto list. > * gdbmi.texinfo: Document -file-list-exec-source-file. > * mi-file.exp: Added testcase to test -file-list-exec-source-file. > > Also, do you think it would be good if the function > -file-list-exec-source-file optionally took an argument ( a filename ). > If it reiceived an argument, it would return the absolute path to that > file. > > I think the normal way a front end gets the absolute path to a file now > is, > 1. list filename.c > 2. info source > 3. parse the output looking for 'Located in ' > > This optional argument would solve that problem. > > Thanks, > Bob Rossi > > Index: gdb/Makefile.in > =================================================================== > RCS file: /cvs/src/src/gdb/Makefile.in,v > retrieving revision 1.328 > diff -c -r1.328 Makefile.in > *** gdb/Makefile.in 7 Feb 2003 05:33:44 -0000 1.328 > --- gdb/Makefile.in 10 Feb 2003 20:51:47 -0000 > *************** > *** 168,181 **** > 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-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-interp.c \ > mi/mi-main.c mi/mi-parse.c mi/mi-getopt.c > SUBDIR_MI_DEPS = > --- 168,181 ---- > 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-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-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 = > *************** > *** 2494,2499 **** > --- 2494,2503 ---- > $(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: gdb/mi/gdbmi.texinfo > =================================================================== > RCS file: /cvs/src/src/gdb/mi/gdbmi.texinfo,v > retrieving revision 1.33 > diff -c -r1.33 gdbmi.texinfo > *** gdb/mi/gdbmi.texinfo 4 Feb 2003 18:41:29 -0000 1.33 > --- gdb/mi/gdbmi.texinfo 10 Feb 2003 20:51:55 -0000 > *************** > *** 2340,2345 **** > --- 2340,2355 ---- > @subsubheading Example > N.A. > > + @subheading The @code{-file-list-exec-source-file} Command > + @findex -file-list-exec-source-file > + > + @subsubheading Synopsis > + > + @example > + -file-list-exec-source-file > + @end example > + > + List the current source file and line for the current executable. > > @subheading The @code{-file-list-exec-source-files} Command > @findex -file-list-exec-source-files > Index: gdb/mi/mi-cmds.c > =================================================================== > RCS file: /cvs/src/src/gdb/mi/mi-cmds.c,v > retrieving revision 1.10 > diff -c -r1.10 mi-cmds.c > *** gdb/mi/mi-cmds.c 6 Feb 2003 01:19:12 -0000 1.10 > --- gdb/mi/mi-cmds.c 10 Feb 2003 20:51:55 -0000 > *************** > *** 80,85 **** > --- 80,86 ---- > {"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: gdb/mi/mi-cmds.h > =================================================================== > RCS file: /cvs/src/src/gdb/mi/mi-cmds.h,v > retrieving revision 1.7 > diff -c -r1.7 mi-cmds.h > *** gdb/mi/mi-cmds.h 6 Feb 2003 01:19:12 -0000 1.7 > --- gdb/mi/mi-cmds.h 10 Feb 2003 20:51:55 -0000 > *************** > *** 80,85 **** > --- 80,86 ---- > 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; > > # 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 binfile > set abs_srcfile ${binfile}.c > > # get the absolute path to the current file > mi_gdb_test "111-file-list-exec-source-file" \ > "111\\\^done,line=\"23\",file=\"${abs_srcfile}\"" \ > "request absolute path of current source file" > } > > test_tbreak_creation_and_listing > > mi_gdb_exit > return 0 > > > > ----- End forwarded message -----