From ea35711cf6b30ef12ec81274e832977c0f77e8fc Mon Sep 17 00:00:00 2001 From: Daniel Jacobowitz Date: Fri, 13 Apr 2007 14:17:47 +0000 Subject: [PATCH] * mips-mdebug-tdep.c, mips-mdebug-tdep.h, ocd.c, ocd.h, ppc-bdm.c, remote-e7000.c, remote-hms.c, remote-utils.c, remote-utils.h, scm-exp.c, scm-lang.c, scm-lang.h, scm-tags.h, scm-valprint.c, ser-e7kpc.c, sh3-rom.c, stop-gdb.c: Delete. * Makefile.in: Remove references to deleted files. * README: Do not mention deleted ROM monitor interfaces. * defs.h (enum language): Delete language_scm. * expprint.c (print_subexp_standard): Do not handle OP_EXPRSTRING. (dump_subexp_body_standard): Likewise. * parse.c (operator_length_standard): Likewise. * expression.h (enum exp_opcode): Delete OP_EXPRSTRING. * remote-mips.c: Do not include remote-utils.h. * remote-sim.c: Likewise. Use remote_debug instead of sr_get_debug throughout. * value.c: Do not include scm-lang.h. (unpack_long): Delete scm_unpack call. * config/h8300/h8300.mt, config/mips/embed.mt, config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt, config/sh/embed.mt, config/sh/linux.mt: Remove references to deleted files. * NEWS: Mention removed files. * gdb.texinfo (Memory): Reference Remote Debugging chapter. (Character Sets, Caching Data of Remote Targets): Likewise. (Targets): Delete Remote node. Move its text... (Debugging Remote Programs): ...to here. Delete description of the "remote" command. (Remote configuration): Delete description of "set remotedevice" and "show remotedevice". (Embedded Processors): Delete H8/300, H8/500, and SH nodes. --- gdb/ChangeLog | 24 +++ gdb/Makefile.in | 60 +----- gdb/NEWS | 24 +++ gdb/README | 3 - gdb/config/h8300/h8300.mt | 4 +- gdb/config/mips/embed.mt | 2 +- gdb/config/powerpc/ppc-eabi.mt | 2 +- gdb/config/powerpc/ppc-sim.mt | 2 +- gdb/config/sh/embed.mt | 2 +- gdb/config/sh/linux.mt | 2 +- gdb/defs.h | 1 - gdb/doc/ChangeLog | 11 ++ gdb/doc/gdb.texinfo | 324 +-------------------------------- gdb/expprint.c | 2 - gdb/expression.h | 3 - gdb/parse.c | 1 - gdb/remote-mips.c | 1 - gdb/remote-sim.c | 31 ++-- gdb/value.c | 5 - 19 files changed, 94 insertions(+), 410 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8a4e62c85dd..418550a4995 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,27 @@ +2007-04-13 Daniel Jacobowitz + + * mips-mdebug-tdep.c, mips-mdebug-tdep.h, ocd.c, ocd.h, ppc-bdm.c, + remote-e7000.c, remote-hms.c, remote-utils.c, remote-utils.h, + scm-exp.c, scm-lang.c, scm-lang.h, scm-tags.h, scm-valprint.c, + ser-e7kpc.c, sh3-rom.c, stop-gdb.c: Delete. + * Makefile.in: Remove references to deleted files. + * README: Do not mention deleted ROM monitor interfaces. + * defs.h (enum language): Delete language_scm. + * expprint.c (print_subexp_standard): Do not handle OP_EXPRSTRING. + (dump_subexp_body_standard): Likewise. + * parse.c (operator_length_standard): Likewise. + * expression.h (enum exp_opcode): Delete OP_EXPRSTRING. + * remote-mips.c: Do not include remote-utils.h. + * remote-sim.c: Likewise. Use remote_debug instead of sr_get_debug + throughout. + * value.c: Do not include scm-lang.h. + (unpack_long): Delete scm_unpack call. + * config/h8300/h8300.mt, config/mips/embed.mt, + config/powerpc/ppc-eabi.mt, config/powerpc/ppc-sim.mt, + config/sh/embed.mt, config/sh/linux.mt: Remove references to + deleted files. + * NEWS: Mention removed files. + 2007-04-13 Daniel Jacobowitz * symfile.c (add_psymbol_with_dem_name_to_list): Remove. diff --git a/gdb/Makefile.in b/gdb/Makefile.in index 1f968cf5f81..9502431bae9 100644 --- a/gdb/Makefile.in +++ b/gdb/Makefile.in @@ -415,7 +415,7 @@ SER_HARDWIRE = @SER_HARDWIRE@ # The `remote' debugging target is supported for most architectures, # but not all (e.g. 960) -REMOTE_OBS = remote.o dcache.o remote-utils.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o +REMOTE_OBS = remote.o dcache.o tracepoint.o ax-general.o ax-gdb.o remote-fileio.o # This is remote-sim.o if a simulator is to be linked in. SIM_OBS = @@ -552,7 +552,6 @@ SFILES = ada-exp.y ada-lang.c ada-typeprint.c ada-valprint.c \ p-exp.y p-lang.c p-typeprint.c p-valprint.c parse.c printcmd.c \ prologue-value.c \ regcache.c reggroups.c remote.c remote-fileio.c \ - scm-exp.c scm-lang.c scm-valprint.c \ sentinel-frame.c \ serial.c ser-base.c ser-unix.c \ solib.c solib-null.c source.c \ @@ -758,7 +757,6 @@ main_h = main.h mdebugread_h = mdebugread.h $(coff_sym_h) $(coff_symconst_h) memattr_h = memattr.h $(vec_h) mips_linux_tdep_h = mips-linux-tdep.h -mips_mdebug_tdep_h = mips-mdebug-tdep.h mipsnbsd_tdep_h = mipsnbsd-tdep.h mips_tdep_h = mips-tdep.h memory_map_h = memory-map.h $(memattr_h) @@ -770,7 +768,6 @@ nto_tdep_h = nto-tdep.h $(defs_h) $(solist_h) $(osabi_h) $(regset_h) objc_lang_h = objc-lang.h objfiles_h = objfiles.h $(gdb_obstack_h) $(symfile_h) obsd_tdep_h = obsd-tdep.h -ocd_h = ocd.h osabi_h = osabi.h parser_defs_h = parser-defs.h $(doublest_h) p_lang_h = p-lang.h @@ -784,11 +781,8 @@ reggroups_h = reggroups.h regset_h = regset.h remote_fileio_h = remote-fileio.h remote_h = remote.h -remote_utils_h = remote-utils.h $(target_h) rs6000_tdep_h = rs6000-tdep.h $(defs_h) s390_tdep_h = s390-tdep.h -scm_lang_h = scm-lang.h $(scm_tags_h) -scm_tags_h = scm-tags.h score_tdep_h = score-tdep.h sentinel_frame_h = sentinel-frame.h serial_h = serial.h @@ -900,7 +894,7 @@ HFILES_NO_SRCDIR = bcache.h buildsym.h call-cmds.h defs.h \ m2-lang.h p-lang.h \ complaints.h valprint.h \ gdbthread.h \ - dcache.h remote-utils.h top.h solib-som.h + dcache.h top.h solib-som.h # Header files that already have srcdir in them, or which are in objdir. @@ -960,7 +954,6 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \ varobj.o vec.o wrapper.o \ jv-lang.o jv-valprint.o jv-typeprint.o \ m2-lang.o p-lang.o p-typeprint.o p-valprint.o \ - scm-exp.o scm-lang.o scm-valprint.o \ sentinel-frame.o \ complaints.o typeprint.o \ ada-typeprint.o c-typeprint.o f-typeprint.o m2-typeprint.o \ @@ -1244,12 +1237,6 @@ libgdb.a: $(LIBGDB_OBS) $(AR) q libgdb.a $(LIBGDB_OBS) $(RANLIB) libgdb.a -# A Mach 3.0 program to force gdb back to command level - -stop-gdb: stop-gdb.o - ${CC_LD} $(GLOBAL_CFLAGS) $(LDFLAGS) -o stop-gdb \ - stop-gdb.o $(CLIBS) $(LOADLIBES) - # This is useful when debugging GDB, because some Unix's don't let you run GDB # on itself without copying the executable. So "make gdb1" will make # gdb and put a copy in gdb1, and you can run it with "gdb gdb1". @@ -1489,10 +1476,9 @@ ALLDEPFILES = \ ppcnbsd-nat.c ppcnbsd-tdep.c \ ppcobsd-nat.c ppcobsd-tdep.c \ procfs.c \ - remote-e7000.c \ - remote-hms.c remote-m32r-sdi.c remote-mips.c \ + remote-m32r-sdi.c remote-mips.c \ remote-sim.c \ - remote-utils.c dcache.c \ + dcache.c \ rs6000-nat.c rs6000-tdep.c \ s390-tdep.c s390-nat.c \ score-tdep.c \ @@ -2362,10 +2348,6 @@ mips-linux-tdep.o: mips-linux-tdep.c $(defs_h) $(gdbcore_h) $(target_h) \ $(gdb_assert_h) $(frame_h) $(regcache_h) $(trad_frame_h) \ $(tramp_frame_h) $(gdbtypes_h) $(solib_h) $(symtab_h) \ $(mips_linux_tdep_h) -mips-mdebug-tdep.o: mips-mdebug-tdep.c $(defs_h) $(frame_h) $(mips_tdep_h) \ - $(trad_frame_h) $(block_h) $(symtab_h) $(objfiles_h) $(elf_mips_h) \ - $(elf_bfd_h) $(gdb_assert_h) $(frame_unwind_h) $(frame_base_h) \ - $(mips_mdebug_tdep_h) $(mdebugread_h) mipsnbsd-nat.o: mipsnbsd-nat.c $(defs_h) $(inferior_h) $(regcache_h) \ $(target_h) $(mips_tdep_h) $(mipsnbsd_tdep_h) $(inf_ptrace_h) mipsnbsd-tdep.o: mipsnbsd-tdep.c $(defs_h) $(gdbcore_h) $(regcache_h) \ @@ -2429,9 +2411,6 @@ objfiles.o: objfiles.c $(defs_h) $(bfd_h) $(symtab_h) $(symfile_h) \ observer.o: observer.c $(defs_h) $(observer_h) $(command_h) $(gdbcmd_h) \ $(observer_inc) obsd-tdep.o: obsd-tdep.c $(defs_h) $(frame_h) $(symtab_h) $(obsd_tdep_h) -ocd.o: ocd.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) $(inferior_h) \ - $(bfd_h) $(symfile_h) $(target_h) $(exceptions_h) $(gdbcmd_h) \ - $(objfiles_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(regcache_h) osabi.o: osabi.c $(defs_h) $(gdb_assert_h) $(gdb_string_h) $(osabi_h) \ $(arch_utils_h) $(gdbcmd_h) $(command_h) $(elf_bfd_h) parse.o: parse.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ @@ -2445,10 +2424,6 @@ p-lang.o: p-lang.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ $(expression_h) $(parser_defs_h) $(language_h) $(p_lang_h) \ $(valprint_h) $(value_h) posix-hdep.o: posix-hdep.c $(defs_h) $(gdb_string_h) $(gdb_select_h) -ppc-bdm.o: ppc-bdm.c $(defs_h) $(gdbcore_h) $(gdb_string_h) $(frame_h) \ - $(inferior_h) $(bfd_h) $(symfile_h) $(target_h) $(gdbcmd_h) \ - $(objfiles_h) $(gdb_stabs_h) $(serial_h) $(ocd_h) $(ppc_tdep_h) \ - $(regcache_h) $(gdb_assert_h) ppcbug-rom.o: ppcbug-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \ $(serial_h) $(regcache_h) ppc-linux-nat.o: ppc-linux-nat.c $(defs_h) $(gdb_string_h) $(frame_h) \ @@ -2515,10 +2490,6 @@ remote.o: remote.c $(defs_h) $(gdb_string_h) $(inferior_h) $(bfd_h) \ $(gdb_assert_h) $(event_loop_h) $(event_top_h) $(inf_loop_h) \ $(serial_h) $(gdbcore_h) $(remote_fileio_h) $(solib_h) $(observer_h) \ $(cli_decode_h) $(cli_setshow_h) $(memory_map_h) $(target_descriptions_h) -remote-e7000.o: remote-e7000.c $(defs_h) $(gdbcore_h) $(gdbarch_h) \ - $(inferior_h) $(target_h) $(value_h) $(command_h) $(gdb_string_h) \ - $(exceptions_h) $(gdbcmd_h) $(serial_h) $(remote_utils_h) \ - $(symfile_h) $(regcache_h) remote-fileio.o: remote-fileio.c $(defs_h) $(gdb_string_h) $(gdbcmd_h) \ $(remote_h) $(gdb_fileio_h) $(gdb_wait_h) $(gdb_stat_h) \ $(exceptions_h) $(remote_fileio_h) @@ -2528,16 +2499,13 @@ remote-m32r-sdi.o: remote-m32r-sdi.c $(defs_h) $(gdbcmd_h) $(gdbcore_h) \ $(inferior_h) $(target_h) $(regcache_h) $(gdb_string_h) $(serial_h) remote-mips.o: remote-mips.c $(defs_h) $(inferior_h) $(bfd_h) $(symfile_h) \ $(gdbcmd_h) $(gdbcore_h) $(serial_h) $(target_h) $(exceptions_h) \ - $(remote_utils_h) $(gdb_string_h) $(gdb_stat_h) $(regcache_h) \ + $(gdb_string_h) $(gdb_stat_h) $(regcache_h) \ $(mips_tdep_h) remote-sim.o: remote-sim.c $(defs_h) $(inferior_h) $(value_h) \ $(gdb_string_h) $(terminal_h) $(target_h) $(gdbcore_h) \ - $(gdb_callback_h) $(gdb_remote_sim_h) $(remote_utils_h) $(command_h) \ + $(gdb_callback_h) $(gdb_remote_sim_h) $(command_h) \ $(regcache_h) $(gdb_assert_h) $(sim_regno_h) $(arch_utils_h) \ $(readline_h) -remote-utils.o: remote-utils.c $(defs_h) $(gdb_string_h) $(gdbcmd_h) \ - $(target_h) $(serial_h) $(gdbcore_h) $(inferior_h) $(remote_utils_h) \ - $(regcache_h) rs6000-nat.o: rs6000-nat.c $(defs_h) $(inferior_h) $(target_h) $(gdbcore_h) \ $(xcoffsolib_h) $(symfile_h) $(objfiles_h) $(libbfd_h) $(bfd_h) \ $(exceptions_h) $(gdb_stabs_h) $(regcache_h) $(arch_utils_h) \ @@ -2560,22 +2528,12 @@ s390-tdep.o: s390-tdep.c $(defs_h) $(arch_utils_h) $(frame_h) $(inferior_h) \ $(frame_unwind_h) $(dwarf2_frame_h) $(reggroups_h) $(regset_h) \ $(value_h) $(gdb_assert_h) $(dis_asm_h) $(solib_svr4_h) \ $(prologue_value_h) $(s390_tdep_h) -scm-exp.o: scm-exp.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \ - $(parser_defs_h) $(language_h) $(value_h) $(c_lang_h) $(scm_lang_h) \ - $(scm_tags_h) -scm-lang.o: scm-lang.c $(defs_h) $(symtab_h) $(gdbtypes_h) $(expression_h) \ - $(parser_defs_h) $(language_h) $(value_h) $(c_lang_h) $(scm_lang_h) \ - $(scm_tags_h) $(source_h) $(gdb_string_h) $(gdbcore_h) $(infcall_h) -scm-valprint.o: scm-valprint.c $(defs_h) $(symtab_h) $(gdbtypes_h) \ - $(expression_h) $(parser_defs_h) $(language_h) $(value_h) \ - $(scm_lang_h) $(valprint_h) $(gdbcore_h) $(c_lang_h) score-tdep.o: score-tdep.c $(defs_h) $(gdb_assert_h) $(inferior_h) \ $(symtab_h) $(objfiles_h) $(gdbcore_h) $(target_h) \ $(arch_utils_h) $(regcache_h) $(dis_asm_h) $(frame_unwind_h) \ $(frame_base_h) $(trad_frame_h) $(dwarf2_frame_h) $(score_tdep_h) sentinel-frame.o: sentinel-frame.c $(defs_h) $(regcache_h) \ $(sentinel_frame_h) $(inferior_h) $(frame_unwind_h) -ser-e7kpc.o: ser-e7kpc.c $(defs_h) $(serial_h) $(gdb_string_h) ser-go32.o: ser-go32.c $(defs_h) $(gdbcmd_h) $(serial_h) $(gdb_string_h) serial.o: serial.c $(defs_h) $(serial_h) $(gdb_string_h) $(gdbcmd_h) ser-base.o: ser-base.c $(defs_h) $(serial_h) $(ser_base_h) $(event_loop_h) \ @@ -2588,9 +2546,6 @@ ser-unix.o: ser-unix.c $(defs_h) $(serial_h) $(ser_base_h) $(ser_unix_h) \ $(terminal_h) $(gdb_select_h) $(gdb_string_h) ser-mingw.o: ser-mingw.c $(defs_h) $(serial_h) $(ser_base_h) \ $(ser_tcp_h) $(gdb_assert_h) $(gdb_string_h) -sh3-rom.o: sh3-rom.c $(defs_h) $(gdbcore_h) $(target_h) $(monitor_h) \ - $(serial_h) $(srec_h) $(arch_utils_h) $(regcache_h) $(gdb_string_h) \ - $(sh_tdep_h) sh64-tdep.o: sh64-tdep.c $(defs_h) $(frame_h) $(frame_base_h) \ $(frame_unwind_h) $(dwarf2_frame_h) $(symtab_h) $(gdbtypes_h) \ $(gdbcmd_h) $(gdbcore_h) $(value_h) $(dis_asm_h) $(inferior_h) \ @@ -2744,7 +2699,6 @@ stack.o: stack.c $(defs_h) $(value_h) $(symtab_h) $(gdbtypes_h) \ $(valprint_h) $(gdb_assert_h) $(gdb_string_h) std-regs.o: std-regs.c $(defs_h) $(user_regs_h) $(frame_h) $(gdbtypes_h) \ $(value_h) $(gdb_string_h) -stop-gdb.o: stop-gdb.c $(defs_h) symfile.o: symfile.c $(defs_h) $(bfdlink_h) $(symtab_h) $(gdbtypes_h) \ $(gdbcore_h) $(frame_h) $(target_h) $(value_h) $(symfile_h) \ $(objfiles_h) $(source_h) $(gdbcmd_h) $(breakpoint_h) $(language_h) \ @@ -2833,7 +2787,7 @@ valprint.o: valprint.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ $(exceptions_h) value.o: value.c $(defs_h) $(gdb_string_h) $(symtab_h) $(gdbtypes_h) \ $(value_h) $(gdbcore_h) $(command_h) $(gdbcmd_h) $(target_h) \ - $(language_h) $(scm_lang_h) $(demangle_h) $(doublest_h) \ + $(language_h) $(demangle_h) $(doublest_h) \ $(gdb_assert_h) $(regcache_h) $(block_h) varobj.o: varobj.c $(defs_h) $(exceptions_h) $(value_h) $(expression_h) \ $(frame_h) $(language_h) $(wrapper_h) $(gdbcmd_h) $(block_h) \ diff --git a/gdb/NEWS b/gdb/NEWS index 5bf8353465e..d549f003e21 100644 --- a/gdb/NEWS +++ b/gdb/NEWS @@ -122,6 +122,20 @@ target rom68k Various m68k-only ROM monitors. +target hms +target e7000 +target sh3 +target sh3e + + Various Renesas ROM monitors and debugging interfaces for SH and + H8/300. + +target ocd + + Support for a Macraigor serial interface to on-chip debugging. + GDB does not directly support the newer parallel or USB + interfaces. + DWARF 1 support A debug information format. The predecessor to DWARF 2 and @@ -134,6 +148,16 @@ Support for the HP aCC compiler on HP-UX/PA-RISC affect HP-UX for Itanium or GCC for HP-UX/PA-RISC. Code compiled with aCC can still be debugged on an assembly level. +MIPS ".pdr" sections + + A MIPS-specific format used to describe stack frame layout + in debugging information. + +Scheme support + + GDB could work with an older version of Guile to debug + the interpreter and Scheme programs running in it. + *** Changes in GDB 6.6 * New targets diff --git a/gdb/README b/gdb/README index 1857d17efcf..9c644251a96 100644 --- a/gdb/README +++ b/gdb/README @@ -457,9 +457,6 @@ Linux. There are a number of remote interfaces for talking to existing ROM monitors and other hardware: - remote-e7000.c Renesas E7000 ICE - remote-est.c EST emulator - remote-hms.c Renesas Micro Systems H8/300 monitor remote-mips.c MIPS remote debugging protocol remote-sds.c PowerPC SDS monitor remote-sim.c Generalized simulator protocol diff --git a/gdb/config/h8300/h8300.mt b/gdb/config/h8300/h8300.mt index ea78140031e..9e579be26ef 100644 --- a/gdb/config/h8300/h8300.mt +++ b/gdb/config/h8300/h8300.mt @@ -1,5 +1,5 @@ -# Target: H8300 with HMS monitor, E7000 ICE and H8 simulator -TDEPFILES= h8300-tdep.o remote-e7000.o ser-e7kpc.o monitor.o remote-hms.o dsrec.o +# Target: H8300 with HMS monitor and H8 simulator +TDEPFILES= h8300-tdep.o monitor.o dsrec.o SIM_OBS = remote-sim.o SIM = ../sim/h8300/libsim.a diff --git a/gdb/config/mips/embed.mt b/gdb/config/mips/embed.mt index 4265a919dc3..fb2a45b8274 100644 --- a/gdb/config/mips/embed.mt +++ b/gdb/config/mips/embed.mt @@ -1,3 +1,3 @@ -TDEPFILES= mips-tdep.o mips-mdebug-tdep.o +TDEPFILES= mips-tdep.o SIM_OBS = remote-sim.o SIM = ../sim/mips/libsim.a diff --git a/gdb/config/powerpc/ppc-eabi.mt b/gdb/config/powerpc/ppc-eabi.mt index 02a560a96c5..25f8cba1c85 100644 --- a/gdb/config/powerpc/ppc-eabi.mt +++ b/gdb/config/powerpc/ppc-eabi.mt @@ -1,3 +1,3 @@ # Target: PowerPC running eabi -TDEPFILES= rs6000-tdep.o monitor.o dsrec.o ppcbug-rom.o dink32-rom.o ocd.o ppc-sysv-tdep.o solib.o solib-svr4.o +TDEPFILES= rs6000-tdep.o monitor.o dsrec.o ppcbug-rom.o dink32-rom.o ppc-sysv-tdep.o solib.o solib-svr4.o DEPRECATED_TM_FILE= tm-ppc-eabi.h diff --git a/gdb/config/powerpc/ppc-sim.mt b/gdb/config/powerpc/ppc-sim.mt index 2d14a2df883..e78a64d99b4 100644 --- a/gdb/config/powerpc/ppc-sim.mt +++ b/gdb/config/powerpc/ppc-sim.mt @@ -1,5 +1,5 @@ # Target: PowerPC running eabi and including the simulator -TDEPFILES= rs6000-tdep.o monitor.o dsrec.o ppcbug-rom.o dink32-rom.o ocd.o ppc-sysv-tdep.o solib.o solib-svr4.o +TDEPFILES= rs6000-tdep.o monitor.o dsrec.o ppcbug-rom.o dink32-rom.o ppc-sysv-tdep.o solib.o solib-svr4.o DEPRECATED_TM_FILE= tm-ppc-eabi.h SIM_OBS = remote-sim.o diff --git a/gdb/config/sh/embed.mt b/gdb/config/sh/embed.mt index 8aaf4081a24..68acb270a04 100644 --- a/gdb/config/sh/embed.mt +++ b/gdb/config/sh/embed.mt @@ -1,5 +1,5 @@ # Target: Embedded Renesas Super-H with ICE and simulator -TDEPFILES= sh-tdep.o sh64-tdep.o monitor.o sh3-rom.o remote-e7000.o ser-e7kpc.o dsrec.o +TDEPFILES= sh-tdep.o sh64-tdep.o monitor.o dsrec.o SIM_OBS = remote-sim.o SIM = ../sim/sh/libsim.a diff --git a/gdb/config/sh/linux.mt b/gdb/config/sh/linux.mt index c9a22ee3330..a04e7fa368c 100644 --- a/gdb/config/sh/linux.mt +++ b/gdb/config/sh/linux.mt @@ -1,6 +1,6 @@ # Target: GNU/Linux Super-H TDEPFILES= sh-tdep.o sh64-tdep.o sh-linux-tdep.o \ - monitor.o sh3-rom.o remote-e7000.o ser-e7kpc.o dsrec.o \ + monitor.o dsrec.o \ solib.o solib-svr4.o symfile-mem.o SIM_OBS = remote-sim.o diff --git a/gdb/defs.h b/gdb/defs.h index 7debbd612e0..8e9501486e7 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -210,7 +210,6 @@ enum language language_fortran, /* Fortran */ language_m2, /* Modula-2 */ language_asm, /* Assembly language */ - language_scm, /* Scheme / Guile */ language_pascal, /* Pascal */ language_ada, /* Ada */ language_minimal, /* All other languages, minimal support only */ diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 4ce41e3c49c..c6b8d8c8021 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,14 @@ +2007-04-13 Daniel Jacobowitz + + * gdb.texinfo (Memory): Reference Remote Debugging chapter. + (Character Sets, Caching Data of Remote Targets): Likewise. + (Targets): Delete Remote node. Move its text... + (Debugging Remote Programs): ...to here. Delete description + of the "remote" command. + (Remote configuration): Delete description of "set remotedevice" + and "show remotedevice". + (Embedded Processors): Delete H8/300, H8/500, and SH nodes. + 2007-04-11 Bob Wilson * gdb.texinfo (Contributors, Continuing and Stepping) diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index d51066ab926..4be576b8982 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -5890,7 +5890,7 @@ address printed if several units were printed on the last line of output. @cindex remote memory comparison @cindex verify remote memory image When you are debugging a program running on a remote target machine -(@pxref{Remote}), you may wish to verify the program's image in the +(@pxref{Remote Debugging}), you may wish to verify the program's image in the remote machine's memory against the executable file you downloaded to the target. The @code{compare-sections} command is provided for such situations. @@ -7078,7 +7078,7 @@ character set}; the one the inferior program uses we call the For example, if you are running @value{GDBN} on a @sc{gnu}/Linux system, which uses the ISO Latin 1 character set, but you are using @value{GDBN}'s -remote protocol (@pxref{Remote, ,Remote Debugging}) to debug a program +remote protocol (@pxref{Remote Debugging}) to debug a program running on an IBM mainframe, which uses the @sc{ebcdic} character set, then the host character set is Latin-1, and the target character set is @sc{ebcdic}. If you give @value{GDBN} the command @code{set @@ -7310,7 +7310,7 @@ character. @cindex caching data of remote targets @value{GDBN} can cache data exchanged between the debugger and a -remote target (@pxref{Remote}). Such caching generally improves +remote target (@pxref{Remote Debugging}). Such caching generally improves performance, because it reduces the overhead of the remote protocol by bundling memory reads and writes into large chunks. Unfortunately, @value{GDBN} does not currently know anything about volatile @@ -12191,8 +12191,6 @@ and @code{show architecture}. * Active Targets:: Active targets * Target Commands:: Commands for managing targets * Byte Order:: Choosing target byte order -* Remote:: Remote debugging - @end menu @node Active Targets @@ -12437,8 +12435,9 @@ Note that these commands merely adjust interpretation of symbolic data on the host, and that they have absolutely no effect on the target system. -@node Remote -@section Remote Debugging + +@node Remote Debugging +@chapter Debugging Remote Programs @cindex remote debugging If you are trying to debug a program running on a machine that cannot run @@ -12457,20 +12456,6 @@ communicate with @value{GDBN}. Other remote targets may be available in your configuration of @value{GDBN}; use @code{help target} to list them. -Once you've connected to the remote target, @value{GDBN} allows you to -send arbitrary commands to the remote monitor: - -@table @code -@item remote @var{command} -@kindex remote@r{, a command} -@cindex send command to remote monitor -Send an arbitrary @var{command} string to the remote monitor. -@end table - - -@node Remote Debugging -@chapter Debugging Remote Programs - @menu * Connecting:: Connecting to a remote target * Server:: Using the gdbserver program @@ -12807,19 +12792,6 @@ expect to see @samp{Ctrl-C} as the interrupt signal. Show whether @value{GDBN} sends @code{BREAK} or @samp{Ctrl-C} to interrupt the remote program. -@item set remotedevice @var{device} -@cindex serial port name -Set the name of the serial port through which to communicate to the -remote target to @var{device}. This is the device used by -@value{GDBN} to open the serial communications line to the remote -target. There's no default, so you must set a valid port name for the -remote serial communications to work. (Some varieties of the -@code{target} command accept the port name as part of their -arguments.) - -@item show remotedevice -Show the current name of the serial port. - @item set remotelogbase @var{base} Set the base (a.k.a.@: radix) of logging serial protocol communications to @var{base}. Supported values of @var{base} are: @@ -14259,15 +14231,12 @@ acceptable commands. @menu * ARM:: ARM RDI -* H8/300:: Renesas H8/300 -* H8/500:: Renesas H8/500 * M32R/D:: Renesas M32R/D * M68K:: Motorola M68K * MIPS Embedded:: MIPS Embedded * OpenRISC 1000:: OpenRisc 1000 * PA:: HP PA Embedded * PowerPC:: PowerPC -* SH:: Renesas SH * Sparclet:: Tsqware Sparclet * Sparclite:: Fujitsu Sparclite * Z8000:: Zilog Z8000 @@ -14392,264 +14361,6 @@ Show the setting of RDI heartbeat packets. @end table -@node H8/300 -@subsection Renesas H8/300 - -@table @code - -@kindex target hms@r{, with H8/300} -@item target hms @var{dev} -A Renesas SH, H8/300, or H8/500 board, attached via serial line to your host. -Use special commands @code{device} and @code{speed} to control the serial -line and the communications speed used. - -@kindex target e7000@r{, with H8/300} -@item target e7000 @var{dev} -E7000 emulator for Renesas H8 and SH. - -@kindex target sh3@r{, with H8/300} -@kindex target sh3e@r{, with H8/300} -@item target sh3 @var{dev} -@itemx target sh3e @var{dev} -Renesas SH-3 and SH-3E target systems. - -@end table - -@cindex download to H8/300 or H8/500 -@cindex H8/300 or H8/500 download -@cindex download to Renesas SH -@cindex Renesas SH download -When you select remote debugging to a Renesas SH, H8/300, or H8/500 -board, the @code{load} command downloads your program to the Renesas -board and also opens it as the current executable target for -@value{GDBN} on your host (like the @code{file} command). - -@value{GDBN} needs to know these things to talk to your -Renesas SH, H8/300, or H8/500: - -@enumerate -@item -that you want to use @samp{target hms}, the remote debugging interface -for Renesas microprocessors, or @samp{target e7000}, the in-circuit -emulator for the Renesas SH and the Renesas 300H. (@samp{target hms} is -the default when @value{GDBN} is configured specifically for the Renesas SH, -H8/300, or H8/500.) - -@item -what serial device connects your host to your Renesas board (the first -serial device available on your host is the default). - -@item -what speed to use over the serial device. -@end enumerate - -@menu -* Renesas Boards:: Connecting to Renesas boards. -* Renesas ICE:: Using the E7000 In-Circuit Emulator. -* Renesas Special:: Special @value{GDBN} commands for Renesas micros. -@end menu - -@node Renesas Boards -@subsubsection Connecting to Renesas Boards - -@c only for Unix hosts -@kindex device -@cindex serial device, Renesas micros -Use the special @code{@value{GDBN}} command @samp{device @var{port}} if you -need to explicitly set the serial device. The default @var{port} is the -first available port on your host. This is only necessary on Unix -hosts, where it is typically something like @file{/dev/ttya}. - -@kindex speed -@cindex serial line speed, Renesas micros -@code{@value{GDBN}} has another special command to set the communications -speed: @samp{speed @var{bps}}. This command also is only used from Unix -hosts; on DOS hosts, set the line speed as usual from outside @value{GDBN} with -the DOS @code{mode} command (for instance, -@w{@kbd{mode com2:9600,n,8,1,p}} for a 9600@dmn{bps} connection). - -The @samp{device} and @samp{speed} commands are available only when you -use a Unix host to debug your Renesas microprocessor programs. If you -use a DOS host, -@value{GDBN} depends on an auxiliary terminate-and-stay-resident program -called @code{asynctsr} to communicate with the development board -through a PC serial port. You must also use the DOS @code{mode} command -to set up the serial port on the DOS side. - -The following sample session illustrates the steps needed to start a -program under @value{GDBN} control on an H8/300. The example uses a -sample H8/300 program called @file{t.x}. The procedure is the same for -the Renesas SH and the H8/500. - -First hook up your development board. In this example, we use a -board attached to serial port @code{COM2}; if you use a different serial -port, substitute its name in the argument of the @code{mode} command. -When you call @code{asynctsr}, the auxiliary comms program used by the -debugger, you give it just the numeric part of the serial port's name; -for example, @samp{asyncstr 2} below runs @code{asyncstr} on -@code{COM2}. - -@smallexample -C:\H8300\TEST> asynctsr 2 -C:\H8300\TEST> mode com2:9600,n,8,1,p - -Resident portion of MODE loaded - -COM2: 9600, n, 8, 1, p - -@end smallexample - -@quotation -@emph{Warning:} We have noticed a bug in PC-NFS that conflicts with -@code{asynctsr}. If you also run PC-NFS on your DOS host, you may need to -disable it, or even boot without it, to use @code{asynctsr} to control -your development board. -@end quotation - -@kindex target hms@r{, and serial protocol} -Now that serial communications are set up, and the development board is -connected, you can start up @value{GDBN}. Call @code{@value{GDBN}} with -the name of your program as the argument. @code{@value{GDBN}} prompts -you, as usual, with the prompt @samp{(@value{GDBP})}. Use two special -commands to begin your debugging session: @samp{target hms} to specify -cross-debugging to the Renesas board, and the @code{load} command to -download your program to the board. @code{load} displays the names of -the program's sections, and a @samp{*} for each 2K of data downloaded. -(If you want to refresh @value{GDBN} data on symbols or on the -executable file without downloading, use the @value{GDBN} commands -@code{file} or @code{symbol-file}. These commands, and @code{load} -itself, are described in @ref{Files,,Commands to Specify Files}.) - -@smallexample -(eg-C:\H8300\TEST) @value{GDBP} t.x -@value{GDBN} is free software and you are welcome to distribute copies - of it under certain conditions; type "show copying" to see - the conditions. -There is absolutely no warranty for @value{GDBN}; type "show warranty" -for details. -@value{GDBN} @value{GDBVN}, Copyright 1992 Free Software Foundation, Inc... -(@value{GDBP}) target hms -Connected to remote H8/300 HMS system. -(@value{GDBP}) load t.x -.text : 0x8000 .. 0xabde *********** -.data : 0xabde .. 0xad30 * -.stack : 0xf000 .. 0xf014 * -@end smallexample - -At this point, you're ready to run or debug your program. From here on, -you can use all the usual @value{GDBN} commands. The @code{break} command -sets breakpoints; the @code{run} command starts your program; -@code{print} or @code{x} display data; the @code{continue} command -resumes execution after stopping at a breakpoint. You can use the -@code{help} command at any time to find out more about @value{GDBN} commands. - -Remember, however, that @emph{operating system} facilities aren't -available on your development board; for example, if your program hangs, -you can't send an interrupt---but you can press the @sc{reset} switch! - -Use the @sc{reset} button on the development board -@itemize @bullet -@item -to interrupt your program (don't use @kbd{Ctrl-c} on the DOS host---it has -no way to pass an interrupt signal to the development board); and - -@item -to return to the @value{GDBN} command prompt after your program finishes -normally. The communications protocol provides no other way for @value{GDBN} -to detect program completion. -@end itemize - -In either case, @value{GDBN} sees the effect of a @sc{reset} on the -development board as a ``normal exit'' of your program. - -@node Renesas ICE -@subsubsection Using the E7000 In-circuit Emulator - -@kindex target e7000@r{, with Renesas ICE} -You can use the E7000 in-circuit emulator to develop code for either the -Renesas SH or the H8/300H. Use one of these forms of the @samp{target -e7000} command to connect @value{GDBN} to your E7000: - -@table @code -@item target e7000 @var{port} @var{speed} -Use this form if your E7000 is connected to a serial port. The -@var{port} argument identifies what serial port to use (for example, -@samp{com2}). The third argument is the line speed in bits per second -(for example, @samp{9600}). - -@item target e7000 @var{hostname} -If your E7000 is installed as a host on a TCP/IP network, you can just -specify its hostname; @value{GDBN} uses @code{telnet} to connect. -@end table - -The following special commands are available when debugging with the -Renesas E7000 ICE: - -@table @code -@item e7000 @var{command} -@kindex e7000 -@cindex send command to E7000 monitor -This sends the specified @var{command} to the E7000 monitor. - -@item ftplogin @var{machine} @var{username} @var{password} @var{dir} -@kindex ftplogin@r{, E7000} -This command records information for subsequent interface with the -E7000 monitor via the FTP protocol: @value{GDBN} will log into the -named @var{machine} using specified @var{username} and @var{password}, -and then chdir to the named directory @var{dir}. - -@item ftpload @var{file} -@kindex ftpload@r{, E7000} -This command uses credentials recorded by @code{ftplogin} to fetch and -load the named @var{file} from the E7000 monitor. - -@item drain -@kindex drain@r{, E7000} -This command drains any pending text buffers stored on the E7000. - -@item set usehardbreakpoints -@itemx show usehardbreakpoints -@kindex set usehardbreakpoints@r{, E7000} -@kindex show usehardbreakpoints@r{, E7000} -@cindex hardware breakpoints, and E7000 -These commands set and show the use of hardware breakpoints for all -breakpoints. @xref{Set Breaks, hardware-assisted breakpoint}, for -more information about using hardware breakpoints selectively. -@end table - -@node Renesas Special -@subsubsection Special @value{GDBN} Commands for Renesas Micros - -Some @value{GDBN} commands are available only for the H8/300: - -@table @code - -@kindex set machine -@kindex show machine -@item set machine h8300 -@itemx set machine h8300h -Condition @value{GDBN} for one of the two variants of the H8/300 -architecture with @samp{set machine}. You can use @samp{show machine} -to check which variant is currently in effect. - -@end table - -@node H8/500 -@subsection H8/500 - -@table @code - -@kindex set memory @var{mod} -@cindex memory models, H8/500 -@item set memory @var{mod} -@itemx show memory -Specify which H8/500 memory model (@var{mod}) you are using with -@samp{set memory}; check which memory model is in effect with @samp{show -memory}. The accepted values for @var{mod} are @code{small}, -@code{big}, @code{medium}, and @code{compact}. - -@end table - @node M32R/D @subsection Renesas M32R/D and M32R/SDI @@ -15088,29 +14799,6 @@ W89K monitor, running on a Winbond HPPA board. @end table -@node SH -@subsection Renesas SH - -@table @code - -@kindex target hms@r{, with Renesas SH} -@item target hms @var{dev} -A Renesas SH board attached via serial line to your host. Use special -commands @code{device} and @code{speed} to control the serial line and -the communications speed used. - -@kindex target e7000@r{, with Renesas SH} -@item target e7000 @var{dev} -E7000 emulator for Renesas SH. - -@kindex target sh3@r{, with SH} -@kindex target sh3e@r{, with SH} -@item target sh3 @var{dev} -@item target sh3e @var{dev} -Renesas SH-3 and SH-3E target systems. - -@end table - @node Sparclet @subsection Tsqware Sparclet diff --git a/gdb/expprint.c b/gdb/expprint.c index 7191ee3e99b..dc1f7f764fe 100644 --- a/gdb/expprint.c +++ b/gdb/expprint.c @@ -166,7 +166,6 @@ print_subexp_standard (struct expression *exp, int *pos, return; case OP_NAME: - case OP_EXPRSTRING: nargs = longest_to_int (exp->elts[pc + 1].longconst); (*pos) += 3 + BYTES_TO_EXP_ELEM (nargs + 1); fputs_filtered (&exp->elts[pc + 2].string, stream); @@ -1075,7 +1074,6 @@ dump_subexp_body_standard (struct expression *exp, case OP_THIS: case OP_LABELED: case OP_NAME: - case OP_EXPRSTRING: fprintf_filtered (stream, "Unknown format"); } diff --git a/gdb/expression.h b/gdb/expression.h index 8005f3e1f26..fecf69f587b 100644 --- a/gdb/expression.h +++ b/gdb/expression.h @@ -325,9 +325,6 @@ enum exp_opcode /* An un-looked-up identifier. */ OP_NAME, - /* An unparsed expression. Used for Scheme (for now at least) */ - OP_EXPRSTRING, - /* An Objective C Foundation Class NSString constant */ OP_OBJC_NSSTRING, diff --git a/gdb/parse.c b/gdb/parse.c index 6ba5a45e57b..af3ef72b6d1 100644 --- a/gdb/parse.c +++ b/gdb/parse.c @@ -959,7 +959,6 @@ operator_length_standard (struct expression *expr, int endpos, case OP_OBJC_NSSTRING: /* Objective C Foundation Class NSString constant */ case OP_OBJC_SELECTOR: /* Objective C "@selector" pseudo-op */ case OP_NAME: - case OP_EXPRSTRING: oplen = longest_to_int (expr->elts[endpos - 2].longconst); oplen = 4 + BYTES_TO_EXP_ELEM (oplen + 1); break; diff --git a/gdb/remote-mips.c b/gdb/remote-mips.c index ffe0f1c6f2c..8089c012bbc 100644 --- a/gdb/remote-mips.c +++ b/gdb/remote-mips.c @@ -32,7 +32,6 @@ #include "serial.h" #include "target.h" #include "exceptions.h" -#include "remote-utils.h" #include "gdb_string.h" #include "gdb_stat.h" #include "regcache.h" diff --git a/gdb/remote-sim.c b/gdb/remote-sim.c index 4ec63d51be5..f9fee8b18fb 100644 --- a/gdb/remote-sim.c +++ b/gdb/remote-sim.c @@ -37,7 +37,6 @@ #include "gdbcore.h" #include "gdb/callback.h" #include "gdb/remote-sim.h" -#include "remote-utils.h" #include "command.h" #include "regcache.h" #include "gdb_assert.h" @@ -329,7 +328,7 @@ gdbsim_fetch_register (int regno) /* Else if (nr_bytes < 0): an old simulator, that doesn't think to return the register size. Just assume all is ok. */ regcache_raw_supply (current_regcache, regno, buf); - if (sr_get_debug ()) + if (remote_debug) { printf_filtered ("gdbsim_fetch_register: %d", regno); /* FIXME: We could print something more intelligible. */ @@ -364,7 +363,7 @@ gdbsim_store_register (int regno) /* FIXME: cagney/2002-05-27: Should check `nr_bytes == 0' indicating that GDB and the SIM have different ideas about which registers are fetchable. */ - if (sr_get_debug ()) + if (remote_debug) { printf_filtered ("gdbsim_store_register: %d", regno); /* FIXME: We could print something more intelligible. */ @@ -379,7 +378,7 @@ gdbsim_store_register (int regno) static void gdbsim_kill (void) { - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_kill\n"); /* There is no need to `kill' running simulator - the simulator is @@ -407,7 +406,7 @@ gdbsim_load (char *args, int fromtty) if (argv[1] != NULL) error (_("GDB sim does not yet support a load offset.")); - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_load: prog \"%s\"\n", prog); /* FIXME: We will print two messages on error. @@ -442,7 +441,7 @@ gdbsim_create_inferior (char *exec_file, char *args, char **env, int from_tty) if (!program_loaded) warning (_("No program loaded.")); - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_create_inferior: exec_file \"%s\", args \"%s\"\n", (exec_file ? exec_file : "(NULL)"), args); @@ -485,7 +484,7 @@ gdbsim_open (char *args, int from_tty) char *arg_buf; char **argv; - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_open: args \"%s\"\n", args ? args : "(null)"); /* Remove current simulator if one exists. Only do this if the simulator @@ -562,7 +561,7 @@ gdbsim_open (char *args, int from_tty) static void gdbsim_close (int quitting) { - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_close: quitting %d\n", quitting); program_loaded = 0; @@ -589,7 +588,7 @@ gdbsim_close (int quitting) static void gdbsim_detach (char *args, int from_tty) { - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_detach: args \"%s\"\n", args); pop_target (); /* calls gdbsim_close to do the real work */ @@ -610,7 +609,7 @@ gdbsim_resume (ptid_t ptid, int step, enum target_signal siggnal) if (PIDGET (inferior_ptid) != 42) error (_("The program is not being run.")); - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_resume: step %d, signal %d\n", step, siggnal); resume_siggnal = siggnal; @@ -673,7 +672,7 @@ gdbsim_wait (ptid_t ptid, struct target_waitstatus *status) int sigrc = 0; enum sim_stop reason = sim_running; - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_wait\n"); #if defined (HAVE_SIGACTION) && defined (SA_RESTART) @@ -759,14 +758,14 @@ gdbsim_xfer_inferior_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, if (!program_loaded) error (_("No program loaded.")); - if (sr_get_debug ()) + if (remote_debug) { /* FIXME: Send to something other than STDOUT? */ printf_filtered ("gdbsim_xfer_inferior_memory: myaddr 0x"); gdb_print_host_address (myaddr, gdb_stdout); printf_filtered (", memaddr 0x%s, len %d, write %d\n", paddr_nz (memaddr), len, write); - if (sr_get_debug () && write) + if (remote_debug && write) dump_mem (myaddr, len); } @@ -777,7 +776,7 @@ gdbsim_xfer_inferior_memory (CORE_ADDR memaddr, gdb_byte *myaddr, int len, else { len = sim_read (gdbsim_desc, memaddr, myaddr, len); - if (sr_get_debug () && len > 0) + if (remote_debug && len > 0) dump_mem (myaddr, len); } return len; @@ -791,7 +790,7 @@ gdbsim_files_info (struct target_ops *target) if (exec_bfd) file = bfd_get_filename (exec_bfd); - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_files_info: file \"%s\"\n", file); if (exec_bfd) @@ -807,7 +806,7 @@ gdbsim_files_info (struct target_ops *target) static void gdbsim_mourn_inferior (void) { - if (sr_get_debug ()) + if (remote_debug) printf_filtered ("gdbsim_mourn_inferior:\n"); remove_breakpoints (); diff --git a/gdb/value.c b/gdb/value.c index ffb70fbe420..4ff088cdfd5 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -31,7 +31,6 @@ #include "gdbcmd.h" #include "target.h" #include "language.h" -#include "scm-lang.h" #include "demangle.h" #include "doublest.h" #include "gdb_assert.h" @@ -1076,10 +1075,6 @@ unpack_long (struct type *type, const gdb_byte *valaddr) int len = TYPE_LENGTH (type); int nosign = TYPE_UNSIGNED (type); - if (current_language->la_language == language_scm - && is_scmvalue_type (type)) - return scm_unpack (type, valaddr, TYPE_CODE_INT); - switch (code) { case TYPE_CODE_TYPEDEF: -- 2.30.2