aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2009-07-31 * ppc-linux-tdep.c: Include "solib.h", "solist.h", "exceptions.h",Ulrich Weigand3-0/+433
"arch-utils.h", and "spu-tdep.h". (spu_context_objfile, spe_context_lm_addr, spe_context_offset): New static variables. (spe_context_cache_ptid, spe_context_cache_address): Likewise. (ppc_linux_spe_context_lookup): New function. (ppc_linux_spe_context_inferior_created): Likewise. (ppc_linux_spe_context_solib_loaded): Likewise. (ppc_linux_spe_context_solib_unloaded): Likewise. (ppc_linux_spe_context): Likewise. (struct ppu2spu_cache, struct ppu2spu_data): New data types. (ppu2spu_prev_arch, ppu2spu_this_id, ppu2spu_prev_register, ppu2spu_unwind_register, ppu2spu_sniffer, ppu2spu_dealloc_cache): New functions. (ppu2spu_unwind): New static variable. (ppc_linux_init_abi): Install cross-architecture unwinder. (_initialize_ppc_linux_tdep): Attach to observers. * spu-tdep.c (struct spu2ppu_cache): New data type. (spu2ppu_prev_arch, spu2ppu_this_id, spu2ppu_prev_register, spu2ppu_sniffer, spu2ppu_dealloc_cache): New functions. (spu2ppu_unwind): New static variable. (spu_gdbarch_init): Install cross-architecture unwinder.
2009-07-31 * linux-ppc-low.c (INSTR_SC, NR_spu_run): Define.Ulrich Weigand2-7/+97
(parse_spufs_run): New function. (ppc_get_pc, ppc_set_pc): Detect and handle SPU PC. (ppc_breakpoint_at): Handle SPU breakpoints.
2009-07-31ChangeLog:Ulrich Weigand14-47/+1176
* target.h (enum strata): New value arch_stratum. * target.c (target_require_runnable): Skip arch_stratum targets. * configure.tgt (powerpc-*-linux* | powerpc64-*-linux*): Add solib-spu.o and spu-multiarch.o to gdb_target_obs. * Makefile.in (ALL_TARGET_OBS): Add solib-spu.o and spu-multiarch.o. (ALLDEPFILES): Add solib-spu.c and spu-multiarch.c. * solib-spu.c: New file. * solib-spu.h: New file. * spu-multiarch.c: New file. * spu-tdep.h (SPUADDR, SPUADDR_SPU, SPUADDR_ADDR): New macros. * spu-tdep.c (struct gdbarch_tdep): New member id. (spu_gdbarch_id): New function. (spu_lslr): New function. (spu_address_to_pointer): New function. (spu_pointer_to_address): Support SPU ID address encoding. Use spu_gdbarch_id and spu_lslr. (spu_integer_to_address): Likewise. (spu_frame_unwind_cache): Update for encoded addresses. (spu_unwind_pc, spu_unwind_sp): Likewise. (spu_read_pc, spu_write_pc): Likewise. (spu_push_dummy_call): Likewise. (spu_software_single_step): Likewise. (spu_get_longjmp_target): Likewise. (spu_overlay_update_osect): Likewise. (spu_dis_asm_print_address): New function. (gdb_print_insn_spu): Likewise. (spu_gdbarch_init): Store SPU ID in tdep structure. Install spu_address_to_pointer and gdb_print_insn_spu. * ppc-linux-tdep.c: Include "observer.h", "auxv.h", "elf/common.h" and "solib-spu.h". (ppc_linux_entry_point_addr): New static variable. (ppc_linux_inferior_created): New function. (ppc_linux_displaced_step_location): Likewise. (ppc_linux_init_abi): Enable Cell/B.E. support if supported by the target. (_initialize_ppc_linux_tdep): Attach to inferior_created observer. * NEWS: Mention multi-architecture and Cell/B.E. debugging capabilities. testsuite/ChangeLog: * gdb.xml/tdesc-regs.exp: Skip for SPU targets.
2009-07-31ChangeLog:Ulrich Weigand5-1/+422
* linux-nat.c: Include <sys/vfs.h>. (SPUFS_MAGIC): Define. (spu_enumerate_spu_ids): New function. (linux_proc_xfer_spu): New function. (linux_xfer_partial): Handle TARGET_OBJECT_SPU. (iterate_over_spus): New function. (struct linux_spu_corefile_data): New data type. (linux_spu_corefile_callback): New function. (linux_spu_make_corefile_notes): New function. (linux_nat_make_corefile_notes): Call it. * corelow.c (struct spuid_list): New data type. (add_to_spuid_list): New function. (core_xfer_partial): Handle TARGET_OBJECT_SPU. gdbserver/ChangeLog: * linux-low.c: Include <sys/stat.h> and <sys/vfs.h>. (SPUFS_MAGIC): Define. (spu_enumerate_spu_ids): New function. (linux_qxfer_spu): New function. (linux_target_ops): Install linux_qxfer_spu.
2009-07-31ChangeLog:Ulrich Weigand17-10/+694
* features/Makefile: Allow sub-platform specific expedite settings. (WHICH): Add rs6000/powerpc-cell32l and rs6000/powerpc-cell64l. (rs6000/powerpc-cell32l-expedite): Define. (rs6000/powerpc-cell64l-expedite): Likewise. * features/rs6000/powerpc-cell32l.xml: New file. * features/rs6000/powerpc-cell64l.xml: New file. * features/rs6000/powerpc-cell32l.c: New generated file. * features/rs6000/powerpc-cell64l.c: New generated file. * regformats/rs6000/powerpc-cell32l.dat: New generated file. * regformats/rs6000/powerpc-cell64l.dat: New generated file. * config/djgpp/fnchange.lst: Add mappings for new files. * ppc-linux-tdep.h (tdesc_powerpc_cell32l): Add prototype. (tdesc_powerpc_cell64l): Likewise. * ppc-linux-tdep.c: Include "features/rs6000/powerpc-cell32l.c" and "features/rs6000/powerpc-cell64l.c". (_initialize_ppc_linux_tdep): Initialize target descriptions. (ppc_linux_spu_section): New function. (ppc_linux_core_read_description): Detect Cell/B.E. core files. * ppc-linux-nat.c (PPC_FEATURE_CELL): Define. (ppc_linux_read_description): Detect Cell/B.E. architecture. * rs6000-tdep.c (rs6000_gdbarch_init): Do not trust BFD wordsize if exec file is not PowerPC architecture. gdbserver/ChangeLog: * configure.srv (powerpc*-*-linux*): Add powerpc-cell32l.o and powerpc-cell64l.o to srv_regobj. Add rs6000/powerpc-cell32l.xml and rs6000/powerpc-cell64l.xml to srv_xmlfiles. * Makefile.in (powerpc-cell32l.o, powerpc-cell32l.c): New rules. (powerpc-cell64l.o, powerpc-cell64l.c): Likewise. (clean): Handle powerpc-cell32l.c and powerpc-cell64l.c. * linux-ppc-low.c (PPC_FEATURE_CELL): Define. (init_registers_powerpc_cell32l): Add prototype. (init_registers_powerpc_cell64l): Likewise. (ppc_arch_setup): Detect Cell/B.E. architecture.
2009-07-31ChangeLog:Ulrich Weigand9-13/+182
* features/gdb-target.dtd (target): Accept optional <compatible> elements. (compatible): Define element. * target-descriptions.h (tdesc_compatible_p): New. (tdesc_add_compatible): New. * target-descriptions.c (arch_p): New VEC_P type. (struct target_desc): New member compatible. (free_target_description): Handle it. (maint_print_c_tdesc_cmd): Likewise. (tdesc_compatible_p): New function. (tdesc_add_compatible): New function. * xml-tdesc.c (tdesc_end_compatible): New function. (target_children): Handle <compatible> element. * arch-utils.c (choose_architecture_for_target): Accept target description instead of BFD architecture as input. Query target description for compatible architectures. (gdbarch_info_fill): Update call. * NEWS: Mention <compatible> element of target descriptions. doc/ChangeLog: * gdb.texinfo (Target Descriptions): Document <compatible> element.
2009-07-31 * breakpoint.c (remove_breakpoints): If removing one breakpointUlrich Weigand2-24/+16
location fails, still continue to remove other locations. (remove_hw_watchpoints): Likewise. (detach_breakpoints): Likewise.
2009-07-31 * breakpoint.h (enum enable_state): Add bp_startup_disabled.Ulrich Weigand3-1/+102
(disable_breakpoints_before_startup): Add prototype. (enable_breakpoints_after_startup): Likewise. * breakpoint.c (executing_startup): New static variable. (describe_other_breakpoints): Handle bp_startup_disabled. (check_duplicates_for): Likewise. (disable_breakpoints_before_startup): New function. (enable_breakpoints_after_startup): New function. (create_breakpoint): Mark new breakpoints as bp_startup_disabled if executing_startup flag is true. (break_command_really): Likewise. (breakpoint_re_set_one): Skip bp_startup_disabled breakpoints.
2009-07-31*** empty log message ***gdbadmin1-1/+1
2009-07-30 * arm-linux-tdep.c (arch-utils.h, inferior.h, gdbthread.h, symfile.h):Julian Brown4-0/+2214
Include files. (arm_linux_cleanup_svc, arm_linux_copy_svc): New. (cleanup_kernel_helper_return, arm_catch_kernel_helper_return): New. (arm_linux_displaced_step_copy_insn): New. (arm_linux_init_abi): Initialise displaced stepping callbacks. * arm-tdep.c (DISPLACED_STEPPING_ARCH_VERSION): New macro. (ARM_NOP): New. (displaced_read_reg, displaced_in_arm_mode, branch_write_pc) (bx_write_pc, load_write_pc, alu_write_pc, displaced_write_reg) (insn_references_pc, copy_unmodified, cleanup_preload, copy_preload) (copy_preload_reg, cleanup_copro_load_store, copy_copro_load_store) (cleanup_branch, copy_b_bl_blx, copy_bx_blx_reg, cleanup_alu_imm) (copy_alu_imm, cleanup_alu_reg, copy_alu_reg) (cleanup_alu_shifted_reg, copy_alu_shifted_reg, cleanup_load) (cleanup_store, copy_extra_ld_st, copy_ldr_str_ldrb_strb) (cleanup_block_load_all, cleanup_block_store_pc) (cleanup_block_load_pc, copy_block_xfer, cleanup_svc, copy_svc) (copy_undef, copy_unpred): New. (decode_misc_memhint_neon, decode_unconditional) (decode_miscellaneous, decode_dp_misc, decode_ld_st_word_ubyte) (decode_media, decode_b_bl_ldmstm, decode_ext_reg_ld_st) (decode_svc_copro, arm_process_displaced_insn) (arm_displaced_init_closure, arm_displaced_step_copy_insn) (arm_displaced_step_fixup): New. (arm_gdbarch_init): Initialise max insn length field. * arm-tdep.h (DISPLACED_TEMPS, DISPLACED_MODIFIED_INSNS): New macros. (displaced_step_closure, pc_write_style): New. (arm_displaced_init_closure, displaced_read_reg) (arm_process_displaced_insn, arm_displaced_init_closure) (displaced_read_reg, displaced_write_reg, arm_displaced_step_copy_insn) (arm_displaced_step_fixup): Add prototypes.
2009-07-30 * infrun.c (displaced_step_fixup): If this is a softwareJulian Brown2-11/+33
single-stepping arch, don't tell the target to single-step. (maybe_software_singlestep): Return 0 if we're using displaced stepping. (resume): If this is a software single-stepping arch, and displaced-stepping is enabled, use it for all single-step requests.
2009-07-30sim/Ralf Wildenhues2-0/+5
* Makefile.in (datarootdir): New variable. sim/common/ * Makefile.in (datarootdir): New variable. sim/igen/ * Makefile.in (datarootdir): New variable. sim/ppc/ * Makefile.in (datarootdir): New variable. readline/ * Makefile.in (datarootdir): New variable. * doc/Makefile.in (datarootdir): New variable. * shlib/Makefile.in (datarootdir): New variable. gdb/gdbserver/ * Makefile.in (datarootdir): New variable.
2009-07-30intl/Ralf Wildenhues4-5/+69
* Makefile.in (aclocal_deps): New variable. ($(srcdir)/aclocal.m4): Use it, for portable makefile syntax. libdecnumber/ * Makefile.in (aclocal_deps): New variable. ($(srcdir)/aclocal.m4): Use it, for portable makefile syntax. etc/ * Makefile.in (AUTOCONF, configure_deps): New variables. ($(srcdir)/configure, config.status): New rules. (Makefile): Depend on config.status. * configure.in: Accept --enable-maintainer-mode, set and substitute MAINT accordingly. gdb/ * Makefile.in (ACLOCAL, ACLOCAL_AMFLAGS, aclocal_m4_deps) (AUTOCONF, configure_deps, AUTOHEADER): New variables. ($(srcdir)/aclocal.m4, $(srcdir)/configure, $(srcdir)/config.in) (am--refresh): New rules. (stamp-h, config.status): List config.in and configure including $(srcdir)/ prefix. * aclocal.m4: Regenerate. * configure: Regenerate.
2009-07-302009-07-30 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge2-1/+6
* gnu-nat.c (add_task_commands) <stopped>: Register the correct callback function.
2009-07-302009-07-30 H.J. Lu <hongjiu.lu@intel.com>H.J. Lu2-1/+5
* ia64-tdep.c (ia64_access_reg): Correct paddress.
2009-07-30gdb/Jan Kratochvil4-94/+111
Replace public function varobj_list by all_root_varobjs iterator. * mi/mi-cmd-var.c (struct mi_cmd_var_update, mi_cmd_var_update_iter): New. (mi_cmd_var_update): Replace the varobj_list call by all_root_varobjs. Remove the variables rootlist, cr. New variable data. * varobj.c (rootcount, varobj_list): Remove. (install_variable, uninstall_variable): Remove the rootcount updates. (all_root_varobjs): New function. (varobj_invalidate): Use the all_root_varobjs call. Move the code to... (varobj_invalidate_iter): ... a new function. * varobj.h (varobj_list): Remove the prototype. (all_root_varobjs): New prototype.
2009-07-30*** empty log message ***gdbadmin1-1/+1
2009-07-292009-07-29 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-1/+7
PR gdb/6817 * dbxread.c (read_dbx_symtab): Reduce stack use.
2009-07-29gdb/Jan Kratochvil2-58/+22
Fix gcc-4.5 HEAD warnings. * cp-name-parser.y (%union <typed_val_int>, %token GLOBAL) (GLOBAL_CONSTRUCTORS, GLOBAL_DESTRUCTORS, demangler_special <GLOBAL>): Remove. (yylex <"global constructors keyed to ">) (yylex <"global destructors keyed to ">): Base it on DEMANGLER_SPECIAL. (cp_comp_to_string): Remove variables str, prefix and buf. Remove the GLOBAL_DESTRUCTORS and GLOBAL_CONSTRUCTORS handling. (cp_print): Remove the GLOBAL_DESTRUCTORS and GLOBAL_CONSTRUCTORS handling.
2009-07-29*** empty log message ***gdbadmin1-1/+1
2009-07-28 * NEWS: Mention ARM VFP support.Daniel Jacobowitz27-55/+1215
* target-descriptions.c (tdesc_register_type): Make public. (tdesc_unnumbered_register): New function. (tdesc_register_reggroup_p): Allow missing pseudo_register_reggroup_p. * target-descriptions.h (tdesc_register_type): Declare. (tdesc_unnumbered_register): Declare. * arm-tdep.c (arm_neon_quad_read, arm_neon_quad_write): New functions. (arm_push_dummy_call): Use arm_neon_quad_write. (arm_neon_double_type, arm_neon_quad_type): New functions. (arm_register_type): Handle VFP and NEON registers. Override the types of double-precision registers for NEON. Disable FPA registers if they are not present. (arm_dwarf_reg_to_regnum): Add current VFP and NEON register numbers. (arm_return_value): Use arm_neon_quad_write and arm_neon_quad_read. (arm_register_name): Handle VFP single and NEON quad registers. (arm_pseudo_read, arm_pseudo_write): New functions. (arm_gdbarch_init): Check for VFP and NEON in the target description. Assign numbers to double-precision registers. Register VFP and NEON pseudo registers. Remove a shadowed "i" variable. * arm-tdep.h (enum gdb_regnum): Add ARM_D0_REGNUM and ARM_D31_REGNUM. (struct gdbarch_tdep): Add have_neon_pseudos, have_neon, have_vfp_registers, have_vfp_pseudos, neon_double_type, and neon_quad_type. * features/Makefile: Make expedite settings only architecture specific. (WHICH): Add new ARM descriptions. * features/arm-with-neon.xml, features/arm-with-vfpv2.c, features/arm-with-vfpv3.c, features/arm-vfpv2.xml, features/arm-vfpv3.xml, features/arm-with-vfpv2.xml, features/arm-with-vfpv3.xml, features/arm-with-neon.c: New files. * regformats/arm-with-neon.dat, regformats/arm-with-vfpv2.dat, regformats/arm-with-vfpv3.dat: Generate. doc/ * gdb.texinfo (ARM Features): Document org.gnu.gdb.arm.vfp and org.gnu.gdb.arm.neon. gdbserver/ * linux-low.c (linux_write_memory): Update debugging output. * Makefile.in (clean): Add new descriptions. (arm-with-vfpv2.o, arm-with-vfpv2.c, arm-with-vfpv3.o) (arm-with-vfpv3.c, arm-with-neon.o, arm-with-neon.c): New rules. * configure.srv: Add new files for arm*-*-linux*. * linux-arm-low.c: Add new declarations. (PTRACE_GETVFPREGS, PTRACE_SETVFPREGS): Define if undefined. (arm_hwcap, HWCAP_VFP, HWCAP_IWMMXT, HWCAP_NEON, HWCAP_VFPv3) (HWCAP_VFPv3D16): New. (arm_fill_wmmxregset, arm_store_wmmxregset): Check HWCAP_IWMMXT instead of __IWMMXT__. (arm_fill_vfpregset, arm_store_vfpregset, arm_get_hwcap) (arm_arch_setup): New. (target_regsets): Remove #ifdef. Add VFP regset. (the_low_target): Use arm_arch_setup. testsuite/ * gdb.base/float.exp: Handle VFP registers.
2009-07-28 * linux-low.c (linux_kill_one_lwp): Adjust kernel workaround to skipDaniel Jacobowitz2-1/+6
the main thread again.
2009-07-28 * infrun.c (handle_inferior_event): Clear trap_expected afterDaniel Jacobowitz2-0/+6
stepping past a single-step breakpoint.
2009-07-28 * arm-tdep.c (enum arm_vfp_cprc_base_type,Daniel Jacobowitz2-6/+367
arm_vfp_cprc_unit_length, arm_vfp_cprc_reg_char, arm_vfp_cprc_sub_candidate, arm_vfp_call_candidate, arm_vfp_abi_for_function): New. (arm_push_dummy_call): Handle VFP ABI. (arm_extract_return_value, arm_store_return_value): Handle ARM_FLOAT_VFP case. (arm_return_value): Handle VFP ABI. (arm_gdbarch_init): Default fp_model based on Tag_ABI_VFP_args for EABI binaries.
2009-07-28 * arch-utils.c (displaced_step_at_entry_point): Do not callDaniel Jacobowitz5-17/+39
gdbarch_convert_from_func_ptr_addr. * cris-tdep.c: Remove outdated comment. * infcall.c (call_function_by_hand): Do not call gdbarch_convert_from_func_ptr_addr after entry_point_address. * objfiles.c (entry_point_address): Call both gdbarch_convert_from_func_ptr_addr and gdbarch_addr_bits_remove.
2009-07-28Revert previous commit.Pedro Alves2-17/+1
2009-07-28 * bfd-target.c (target_bfd_xclose): Only close the bfd if thePedro Alves2-1/+17
section tarble is not empty. (target_bfd_reopen): If the section table ends up empty, close the bfd here.
2009-07-28 * nto-tdep.c (nto_thread_state_str): New array.Aleksandar Ristovski4-9/+167
(nto_extra_thread_info): New function definition. * nto-tdep.h (gdbthread.h): New include. (private_thread_info): New struct. (nto_extra_thread_info): New declaration. * nto-procfs.c (procfs_thread_alive): Properly check if thread is still alive. (update_thread_private_data_name, update_thread_private_data): New function definition. (procfs_find_new_threads): Fetch thread private data. (init_procfs_ops): Register to_extra_thread_info.
2009-07-28*** empty log message ***gdbadmin1-1/+1
2009-07-27*** empty log message ***gdbadmin1-1/+1
2009-07-26*** empty log message ***gdbadmin1-1/+1
2009-07-25 * stack.c (backtrace_command_1): Remove dead check of NULL currentPedro Alves2-5/+5
frame.
2009-07-25*** empty log message ***gdbadmin1-1/+1
2009-07-24*** empty log message ***gdbadmin1-1/+1
2009-07-23 * source.c (forward_search_command): Don't fclose the stream,Keith Seitz2-3/+9
just run the cleanups. (reverse_search_command): Likewise.
2009-07-232009-07-23 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-0/+8
* symtab.c (search_symbols): Add QUIT.
2009-07-23*** empty log message ***gdbadmin1-1/+1
2009-07-222009-07-22 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-1/+8
* symfile.c (symbol_file_add_with_addrs_or_offsets): Call observer.
2009-07-222009-07-22 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov4-26/+30
* objfiles.h (objfiles_changed): New prototype. * objfiles.c (objfiles_updated_p): Rename to objfiles_changed_p. (allocate_objfile, free_objfile): Must rebuild section map. (objfile_relocate): Likewise. (update_section_map, find_pc_section): Adjust. (set_objfiles_updated_on_exe_change): Remove. (set_objfiles_updated_on_solib_activity): Remove. (_initialize_objfiles): Remove. (objfiles_changed): New function. * symfile.c (reread_symbols): Call objfiles_changed.
2009-07-222009-07-22 Hui Zhu <teawater@gmail.com>Hui Zhu2-1/+6
* record.c (record_xfer_partial): Call error When nquery return "n".
2009-07-22*** empty log message ***gdbadmin1-1/+1
2009-07-21Corrected date on '2009-06-26 Michael Eager <eager@eagercon.com>' entryPaul Pluzhnikov1-1/+1
2009-07-212009-07-21 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-5/+136
* objfiles.c (objfiles_updated_p): New variable. (qsort_cmp, bsearch_cmp, update_section_map): New function. (find_pc_section): Use bsearch. (set_objfiles_updated_on_exe_change): New function. (set_objfiles_updated_on_solib_activity): New function. (_initialize_objfiles): New function.
2009-07-212009-06-26 Michael Eager <eager@eagercon.com>Michael Snyder4-0/+205
* features/rs6000/powerpc-405.xml: New. * rs6000-tdep.c: Add include & initialize for powerpc-405.c, add 405 to variants. * features/rs6000/powerpc-405.c: Generate.
2009-07-21Oops. s/util.c/utils.c/Paul Pluzhnikov1-1/+1
2009-07-212009-07-21 Paul Pluzhnikov <ppluzhnikov@google.com>Paul Pluzhnikov2-1/+13
* util.c (internal_vproblem): Always print failure message.
2009-07-21 gdb/Daniel Jacobowitz4-20/+114
* valops.c (value_fetch_lazy): Handle bitfields explicitly. (value_assign): Remove unnecessary FIXME. Honor the container type of bitfields if possible. * value.c (struct value): Add parent field. (value_parent): New function. (value_free): Free the parent also. (value_copy): Copy the parent also. (value_primitive_field): Do not read the contents of a lazy value to create a child bitfield value. Set bitpos and offset according to the container type if possible. (unpack_bits_as_long): Rename from unpack_field_as_long. Take field_type, bitpos, and bitsize instead of type and fieldno. (unpack_field_as_long): Use unpack_bits_as_long. * value.h (value_parent, unpack_bits_as_long): New prototypes.
2009-07-21 gdb/Daniel Jacobowitz3-0/+39
* value.c (struct value): Add reference_count field. (allocate_value_lazy): Initialize reference_count. (value_incref): New function. (value_free): Check the reference count. * value.h (value_incref): New prototype.
2009-07-212009-07-20 Marc Khouzam <marc.khouzam@ericsson.com>Marc Khouzam2-6/+5
* utils.c (defaulted_query): Update comment and remove dead code.
2009-07-21*** empty log message ***gdbadmin1-1/+1