X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdb-events.sh;h=e4e79c5f427e4a772ce2b16e7427dff3695ce6eb;hb=9b254dd1ce46c19dde1dde5b8d1e22e862dfacce;hp=620322d932cc46ba51abfc62260a3d21e63a1a31;hpb=c4093a6ab3c9ba5f830ca18d91d8b4db5b1d28ee;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdb-events.sh b/gdb/gdb-events.sh index 620322d932..e4e79c5f42 100755 --- a/gdb/gdb-events.sh +++ b/gdb/gdb-events.sh @@ -1,7 +1,9 @@ #!/bin/sh # User Interface Events. -# Copyright 1999 Free Software Foundation, Inc. +# +# Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2008 +# Free Software Foundation, Inc. # # Contributed by Cygnus Solutions. # @@ -9,7 +11,7 @@ # # 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 +# the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, @@ -18,26 +20,7 @@ # 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. - -# -# What happens next: -# - -# The gdb-events.h/gdb-events.c files this script generates are commited -# and published. - -# Any UI module that is installing events is changed so that the -# events are installed using the ``set_gdb_events()'' and -# ``gdb_event_hooks()'' interfaces. There could prove to be an issue -# here with respect to annotate. We might need to accomodate a hook -# stack that allows several ui blocks to install their own events. - -# Each of the variable events (as currently generated) is converteded -# to either a straight function call or a function call with a -# predicate. - +# along with this program. If not, see . IFS=: @@ -61,46 +44,10 @@ function_list () f:void:breakpoint_create:int b:b f:void:breakpoint_delete:int b:b f:void:breakpoint_modify:int b:b -#*:void:annotate_starting_hook:void -#*:void:annotate_stopped_hook:void -#*:void:annotate_signalled_hook:void -#*:void:annotate_signal_hook:void -#*:void:annotate_exited_hook:void -##*:void:print_register_hook:int -##*:CORE_ADDR:find_toc_address_hook:CORE_ADDR -##*:void:sparc_print_register_hook:int regno:regno -#*:void:target_resume_hook:void -#*:void:target_wait_loop_hook:void -#*:void:init_gdb_hook:char *argv0:argv0 -#*:void:command_loop_hook:void -#*:void:fputs_unfiltered_hook:const char *linebuff,GDB_FILE *stream:linebuff, stream -#*:void:print_frame_info_listing_hook:struct symtab *s, int line, int stopline, int noerror:s, line, stopline, noerror -#*:int:query_hook:const char *query, va_list args:query, args -#*:void:warning_hook:const char *string, va_list args:string, args -#*:void:target_output_hook:char *b:b -#*:void:interactive_hook:void -#*:void:registers_changed_hook:void -#*:void:readline_begin_hook:char *format, ...:format -#*:char *:readline_hook:char *prompt:prompt -#*:void:readline_end_hook:void -#*:void:register_changed_hook:int regno:regno -#*:void:memory_changed_hook:CORE_ADDR addr, int len:addr, len -#*:void:context_hook:int num:num -#*:int:target_wait_hook:int pid, struct target_waitstatus *status:pid, status -#*:void:call_command_hook:struct cmd_list_element *c, char *cmd, int from_tty:c, cmd, from_tty -#*:NORETURN void:error_hook:void:: ATTR_NORETURN -#*:void:error_begin_hook:void -##*:int:target_architecture_hook:const struct bfd_arch_info * -#*:void:exec_file_display_hook:char *filename:filename -#*:void:file_changed_hook:char *filename:filename -##*:void:specify_exec_file_hook: -#*:int:gdb_load_progress_hook:char *section, unsigned long num:section, num -#*:void:pre_add_symbol_hook:char *name:name -#*:void:post_add_symbol_hook:void -#*:void:selected_frame_level_changed_hook:int level:level -#*:int:gdb_loop_hook:int signo:signo -##*:void:solib_create_inferior_hook:void -##*:void:xcoff_relocate_symtab_hook:unsigned int +f:void:tracepoint_create:int number:number +f:void:tracepoint_delete:int number:number +f:void:tracepoint_modify:int number:number +f:void:architecture_changed:void EOF grep -v '^#' } @@ -109,25 +56,26 @@ copyright () { cat <. */ /* Work in progress */ @@ -141,7 +89,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ If editing this file, please also run gdb-events.sh and merge any changes into that script. Conversely, when making sweeping changes to this file, modifying gdb-events.sh and using its output may - prove easier. */ + prove easier. */ EOF } @@ -156,10 +104,6 @@ cat <&2 #../move-if-change new-gdb-events.h gdb-events.h -if ! test -r gdb-events.h +if test -r gdb-events.h then + diff -c gdb-events.h new-gdb-events.h + if [ $? = 1 ] + then + echo "gdb-events.h changed? cp new-gdb-events.h gdb-events.h" 1>&2 + fi +else echo "File missing? mv new-gdb-events.h gdb-events.h" 1>&2 -elif ! diff -c gdb-events.h new-gdb-events.h -then - echo "gdb-events.h changed? cp new-gdb-events.h gdb-events.h" 1>&2 fi @@ -296,78 +217,70 @@ cat <${function};" - echo "}" - echo "" - echo "${returntype}" - echo "${function}_event (${formal})" - echo "{" - echo " return current_events->${function} (${actual});" - echo "}" +cat <${function}; +} + +${returntype} +${function}_event (${formal}) +{ + return current_events->${function} (${actual}); +} +EOF ;; "f" ) - echo "" - echo "void" - echo "${function}_event (${formal})" - echo "{" - echo " if (gdb_events_debug)" - echo " fprintf_unfiltered (gdb_stdlog, \"${function}_event\\n\");" - echo " if (!current_event_hooks->${function})" - echo " return;" - echo " current_event_hooks->${function} (${actual});" - echo "}" +cat <${function}) + return; + current_event_hooks->${function} (${actual}); +} +EOF ;; esac done -echo "" -echo "#endif" # Set hooks function echo "" cat <type = ${function};" - for arg in `echo ${actual} | tr '[,]' '[ ]'`; do + for arg in `echo ${actual} | tr '[,]' '[:]' | tr -d '[ ]'`; do echo " event->data.${function}.${arg} = ${arg};" done echo " append (event);" @@ -486,7 +414,7 @@ gdb_events_deliver (struct gdb_events *vector) { struct event *event = delivering_events; delivering_events = event->next; - free (event); + xfree (event); } /* Process any pending events. Because one of the deliveries could bail out we move everything off of the pending queue onto an @@ -505,15 +433,20 @@ do case "${class}" in "f" ) echo " case ${function}:" - echo " vector->${function}" - sep=" (" - ass="" - for arg in `echo ${actual} | tr '[,]' '[ ]'`; do - ass="${ass}${sep}event->data.${function}.${arg}" - sep=", - " - done - echo "${ass});" + if test ${actual} + then + echo " vector->${function}" + sep=" (" + ass="" + for arg in `echo ${actual} | tr '[,]' '[:]' | tr -d '[ ]'`; do + ass="${ass}${sep}event->data.${function}.${arg}" + sep=", + " + done + echo "${ass});" + else + echo " vector->${function} ();" + fi echo " break;" ;; esac @@ -521,7 +454,7 @@ done cat <next; - free (event); + xfree (event); } } EOF @@ -533,7 +466,7 @@ void _initialize_gdb_events (void); void _initialize_gdb_events (void) { -#if WITH_GDB_EVENTS + struct cmd_list_element *c; EOF function_list | while eval read $read do @@ -544,24 +477,33 @@ do esac done cat <&2 #../move-if-change new-gdb-events.c gdb-events.c -if ! test -r gdb-events.c +# Replace any leading spaces with tabs +sed < new-gdb-events.c > tmp-gdb-events.c \ + -e 's/\( \)* /\1 /g' +mv tmp-gdb-events.c new-gdb-events.c +# Move if changed? +if test -r gdb-events.c then + diff -c gdb-events.c new-gdb-events.c + if [ $? = 1 ] + then + echo "gdb-events.c changed? cp new-gdb-events.c gdb-events.c" 1>&2 + fi +else echo "File missing? mv new-gdb-events.c gdb-events.c" 1>&2 -elif ! diff -c gdb-events.c new-gdb-events.c -then - echo "gdb-events.c changed? cp new-gdb-events.c gdb-events.c" 1>&2 fi