* Adding -file-list-exec-source-file command to GDB/MI
@ 2003-03-20 22:29 Bob Rossi
2003-03-20 22:45 ` Bob Rossi
0 siblings, 1 reply; 2+ messages in thread
From: Bob Rossi @ 2003-03-20 22:29 UTC (permalink / raw)
To: gdb
----- Forwarded message from Bob Rossi <bob_rossi@cox.net> -----
Date: Sun, 9 Mar 2003 19:31:17 -0500
From: Bob Rossi <bob_rossi@cox.net>
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 -----
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Adding -file-list-exec-source-file command to GDB/MI
2003-03-20 22:29 Adding -file-list-exec-source-file command to GDB/MI Bob Rossi
@ 2003-03-20 22:45 ` Bob Rossi
0 siblings, 0 replies; 2+ messages in thread
From: Bob Rossi @ 2003-03-20 22:45 UTC (permalink / raw)
To: gdb
sorry, wrong list.
On Thu, Mar 20, 2003 at 05:29:35PM -0500, Bob Rossi wrote:
> ----- Forwarded message from Bob Rossi <bob_rossi@cox.net> -----
>
> Date: Sun, 9 Mar 2003 19:31:17 -0500
> From: Bob Rossi <bob_rossi@cox.net>
> 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 -----
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-03-20 22:45 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-03-20 22:29 Adding -file-list-exec-source-file command to GDB/MI Bob Rossi
2003-03-20 22:45 ` Bob Rossi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox