From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26512 invoked by alias); 29 Mar 2003 00:41:11 -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 26502 invoked from network); 29 Mar 2003 00:41:10 -0000 Received: from unknown (HELO white) (68.14.146.65) by sources.redhat.com with SMTP; 29 Mar 2003 00:41:10 -0000 Received: from bob by white with local (Exim 3.35 #1 (Debian)) id 18z4PF-0001yt-00 for ; Fri, 28 Mar 2003 19:41:09 -0500 Date: Sat, 29 Mar 2003 00:41:00 -0000 From: Bob Rossi To: gdb-patches@sources.redhat.com Subject: Adding -file-list-exec-source-file command to GDB/MI Message-ID: <20030329004109.GA7487@white> Mail-Followup-To: gdb-patches@sources.redhat.com Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="uAKRQypu60I7Lcqm" Content-Disposition: inline User-Agent: Mutt/1.3.28i X-SW-Source: 2003-03/txt/msg00574.txt.bz2 --uAKRQypu60I7Lcqm Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-length: 4394 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. * 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.351 diff -c -r1.351 Makefile.in *** Makefile.in 26 Mar 2003 03:39:42 -0000 1.351 --- Makefile.in 29 Mar 2003 00:24:56 -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 = *************** *** 2538,2543 **** --- 2538,2547 ---- $(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 -c -r1.154 gdb.texinfo *** doc/gdb.texinfo 27 Mar 2003 15:17:34 -0000 1.154 --- doc/gdb.texinfo 29 Mar 2003 00:25:22 -0000 *************** *** 16337,16342 **** --- 16337,16353 ---- 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 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: 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 *** mi/mi-cmds.c 6 Feb 2003 01:19:12 -0000 1.10 --- mi/mi-cmds.c 29 Mar 2003 00:25:23 -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: 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 *** mi/mi-cmds.h 6 Feb 2003 01:19:12 -0000 1.7 --- mi/mi-cmds.h 29 Mar 2003 00:25:23 -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; --uAKRQypu60I7Lcqm Content-Type: text/x-csrc; charset=us-ascii Content-Disposition: attachment; filename="mi-cmd-file.c" Content-length: 2060 /* MI Command Set - breakpoint and watchpoint commands. Copyright 2000, 2001, 2002 Free Software Foundation, Inc. Contributed by Cygnus Solutions (a Red Hat company). This file is part of GDB. 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. */ #include "defs.h" #include "mi-cmds.h" #include "ui-out.h" #include "symtab.h" #include "source.h" /* Return to the client the absolute path and line number of the current file being executed. */ enum mi_cmd_result mi_cmd_file_list_exec_source_file(char *command, char **argv, int argc) { struct symtab_and_line st; if (argc != 0) error ("mi_cmd_file_list_exec_source_file: Usage: No args"); /* Set the default file and line, also get them */ set_default_source_symtab_and_line(); st = get_current_source_symtab_and_line(); /* We should always get a symtab. */ if (!st.symtab) error ("mi_cmd_file_list_exec_source_file: No symtab"); /* Extract the fullname if it is not known yet */ if (st.symtab->fullname == NULL) symtab_to_filename (st.symtab); /* We may not be able to open the file (not available). */ if (st.symtab->fullname == NULL) error ("mi_cmd_file_list_exec_source_file: File not found"); /* Print to the user the line and absolute file name */ ui_out_field_int (uiout, "line", st.line); ui_out_field_string (uiout, "file", st.symtab->fullname); return MI_CMD_DONE; } --uAKRQypu60I7Lcqm Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="mi-file.exp" Content-length: 2145 # 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 --uAKRQypu60I7Lcqm--