aboutsummaryrefslogtreecommitdiff
path: root/gdb/breakpoint.c
AgeCommit message (Collapse)AuthorFilesLines
1994-01-27 Fix many sins which will come up in 32 bit x 64 bit GDB, andJim Kingdon1-24/+17
various miscellaneous things discovered in the process: * printcmd.c, defs.h (print_address_numeric): New function. * c-valprint.c (c_val_print), ch-valprint.c (chill_val_print) breakpoint.c (describe_other_breakpoints, breakpoint_1, mention), cp-valprint.c (cplus_print_value), infcmd.c (jump_command), printcmd.c, stack.c, symfile.c, symmisc.c, valprint.c: Use it. * utils.c, defs.h (gdb_print_address): New function. * expprint (dump_expression), gdbtypes.h: Use it. * breakpoint.c (describe_other_breakpoints), symmisc.c (dump_symtab, print_symbol): Use filtered not unfiltered I/O. (remove_breakpoints): Remove BREAKPOINT_DEBUG code. Might as well just run gdb under a debugger for this (and it had problems with printing addresses, how to print b->shadow, etc.). * buildsym.c (make_blockvector), core.c (memory_error), exec.c (print_section_info), maint.c (print_section_table), mdebugread.c (parse_procedure), solib.c, source.c, symfile.c, symmisc.c, symtab.c, valops.c, valprint.c, xcoffexec.c: Add comments saying code is broken. Marked with "FIXME-32x64". * dbxread.c (process_one_symbol), partial-stab.h (default), remote-vx.c (vx_run_files_info): Don't cast int being passed to local_hex_string. * symmisc.c (print_symbol): Don't cast long being passed to %lx. * symtab.h (general_symbol_info): Add comment about SYMBOL_VALUE only being a long. * symmisc.c (print_symbol): Print "offset" in message for LOC_ARG and LOC_LOCAL. * printcmd.c (print_address): Remove #if 0 code with ADDR_BITS_REMOVE. * source.c: Include <sys/types.h> regardless of USG.
1994-01-19 * infrun.c (wait_for_inferior): Don't set frame forJim Kingdon1-20/+35
step_resume_breakpoint for IN_SIGTRAMP cases. * infrun.c (wait_for_inferior), breakpoint.h (struct bpstat_what), breakpoint.c (bpstat_what): Move step_resume from its own field of the struct bpstat_what into the main_action. Make it override other breakpoints. This is a conservative change in the sense that before the step resume breakpoint was a breakpoint.c breakpoint, hitting the step resume breakpoint overrode even calling bpstat_stop_status.
1993-12-30 * breakpoint.c (breakpoint_chain): Make static.Jim Kingdon1-3/+34
* breakpoint.c, breakpoint.h (frame_in_dummy): New function. * stack.c (print_frame_info): Use it.
1993-11-01Change the stream argument to _filtered to GDB_FILE *.Thomas Lord1-44/+98
Change all references to stdout/stderr to gdb_stdout/gdb_stderr. Replace all calls to stdio output functions with calls to corresponding _unfiltered functions (`fprintf_unfiltered') Replaced calls to fopen for output to gdb_fopen. Added sufficient goo to utils.c and defs.h to make the above work. The net effect is that stdio output functions are only directly used in utils.c. Elsewhere, the _unfiltered and _filtered functions and GDB_FILE type are used. In the near future, GDB_FILE will stop being equivalant to FILE. The semantics of some commands has changed in a very subtle way: called in the right context, they may cause new occurences of prompt_for_continue() behavior. The testsuite doesn't notice anything like this, though. Please respect this change by not reintroducing stdio output dependencies in the main body of gdb code. All output from commands should go to a GDB_FILE. Target-specific code can still use stdio directly to communicate with targets.
1993-10-07 * breakpoint.c, breakpoint.h (breakpoint_init_inferior): New functionJim Kingdon1-2/+22
that clears the `inserted' flag for all breakpoints and deletes any breakpoints which should go away between runs of programs. * inflow.c (generic_mourn_inferior), infrun.c (init_wait_for_inferior), remote-es.c (es1800_load), comments in exec.c and corelow.c: Use it instead of mark_breakpoints_out. * breakpoint.c (mark_breakpoints_out): Update comment, tm-rs6000.h uses it in a completely different context. * breakpoint.c (breakpoint_re_set_one): Add bp_call_dummy case.
1993-10-06* breakpoint.c (delete_breakpoint): Don't insert a disabled breakpoint.Jim Kingdon1-1/+3
1993-10-05 Changes to support alpha OSF/1 in native mode.Peter Schauer1-10/+13
* alpha-nat.c, alpha-tdep.c, config/alpha/alpha-osf1.mt, config/alpha/nm-alpha.h, config/alpha/tm-alpha.h, osfsolib.c: New files. * Makefile.in: Add new files and dependencies. * configure.in: Add alpha target. * config/alpha/alpha-osf1.mh (NATDEPFILES): Add osfsolib.o * config/alpha/alpha-osf1.mh (MH_CFLAGS): Remove, we can handle shared libraries now. * config/alpha/xm-alpha.h: Cleanup, get MAKEVA_* defines right. * defs.h (CORE_ADDR): Make its type overridable via CORE_ADDR_TYPE, provide `unsigned int' default. * breakpoint.c (breakpoint_auto_delete): Delete only if we really stopped for the breakpoint. * stabsread.c, stabsread.h (define_symbol): Change valu parameter to a CORE_ADDR. * stabsread.c (read_range_type): Handle the case where the lower bound overflows and the upper doesn't and the range is legal. * infrun.c (resume): Do not step a breakpoint instruction if CANNOT_STEP_BREAKPOINT is defined. * inferior.h (CALL_DUMMY_LOCATION): New variant AT_ENTRY_POINT. Now that we have the bp_call_dummy breakpoint the call dummy code is no longer needed. PUSH_DUMMY_FRAME, PUSH_ARGUMENTS and FIX_CALL_DUMMY can be used to set up everything for the dummy. The breakpoint for the dummy is set at the entry point and thats it. * blockframe.c (inside_entry_file, inside_entry_func): Do not stop backtraces if pc is in the call dummy at the entry point. * infcmd.c (run_stack_dummy): Handle AT_ENTRY_POINT case. Use the expected breakpoint pc when setting up the frame for set_momentary_breakpoint. * symfile.c (entry_point_address): New function for AT_ENTRY_POINT support. * valops.c (call_function_by_hand): Handle AT_ENTRY_POINT case.
1993-09-22 * breakpoint.h, breakpoint.c (bpstat_stop_status): Add new argumentJim Kingdon1-5/+12
not_a_breakpoint. * infrun.c (wait_for_inferior): Pass it. Also consolidate the test of whether we are stepping into a CURRENTLY_STEPPING macro.
1993-09-22 * breakpoint.c (bpstat_stop_status),K. Richard Pixley1-9/+1
infcmd.c (step_1), infrun.c (wait_for_inferior): collapse SHIFT_INST_REGS ifdef and insert macro. * m88k-tdep.c: include ieee-float.h. new global target_is_m88110. new const struct ext_format_m88110 for float format. (pic_prologue_code): add braces. (next_insn): remove unused variable buf. (frame_find_saved_regs): remove unused variables next_addr, saved_regs, regnum. (frame_locals_address): remove unused variables frame, ap. (frame_args_address): remove unused variables frame, ap. (push_parameters): add some breaks and a default case. * remote-bug.c: remove redundant includes of value.h, target.h, serial.h. (bug_open): corrected typo, sr_multi_scan -> gr_multi_scan. (bug_fetch_register): special case sfip register for m88110. remove flag bit masking of pc registers. This should be handled by the ADDR_BITS_* macros. (bug_store_register): special case sfip register for m88110. Corrected sprint format for extended registers.
1993-09-21* breakpoint.c (breakpoint_1): Support bp_call_dummy.Jim Kingdon1-1/+4
1993-09-18 * defs.h (make_cleanup): Change PTR to void * when inside PARAMS.Jim Kingdon1-11/+18
Some of the following is in #ifdef CALL_DUMMY_BREAKPOINT_OFFSET. * breakpoint.h (enum bptype): Add bp_call_dummy. (struct bpstat_what): Add call_dummy field. * infrun.c (wait_for_inferior): Deal with it. * breakpoint.c (bpstat_what): Deal with call dummy breakpoint. * infcmd.c (run_stack_dummy): Set the call dummy breakpoint. * config/sparc/tm-sparc.h: Define CALL_DUMMY_BREAKPOINT_OFFSET.
1993-09-08gcc lintK. Richard Pixley1-25/+37
1993-07-26 * breakpoint.{c,h} (struct breakpoint): Replace symtab field withJim Kingdon1-34/+77
source_file field.
1993-07-14Tue Jul 13 14:03:48 1993 Jim Kingdon (kingdon@lioth.cygnus.com)Jim Kingdon1-1/+5
* stabsread.c (define_symbol): Make the caddr_t hack apply to `function returning foo' as well as `pointer to foo'. * remote.c [REMOTE_BREAKPOINT]: Use for breakpoint insn if defined. * config/m68k/tm-m68k.h: Define it. * mem-break.c, breakpoint.c: Improve comments. Tue Jul 13 13:35:31 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) * config/m68k/tm-dpx2.h: Replace "tm-68k.h" with "m68k/tm-m68k.h". * config/m68k/xm-dpx2.h: Define HAVE_TERMIOS not HAVE_TERMIO.
1993-07-12 * symtab.c (decode_line_1): Use end of block to figure out whetherJim Kingdon1-1/+1
val.end is in the same function, not minimal symbols. * source.c (line_info): Add a few more wrap_here's. * i386-tdep.c (i386_follow_jump): Do byteswapping where needed and don't make assumptions about sizes of host data types. * blockframe.c, symtab.h (find_pc_partial_function): New arg endaddr. * infrun.c, breakpoint.c, printcmd.c: Change callers. * printcmd.c (containing_function_bounds): Remove. * printcmd.c (disassemble_command): Use find_pc_partial_function, not containing_function_bounds. * infcmd.c (step_1): Use find_pc_partial_function rather than trying to roll our own. Move check for a pc between SIGTRAMP_START and SIGTRAMP_END in find_pc_partial_function, not step_1.
1993-07-11 * infrun.c: Remove step_resume_{duplicate,shadow}. ReplaceJim Kingdon1-23/+64
step_resume_break_address with step_resume_breakpoint (now local to wait_for_inferior). ({insert,remove}_step_breakpoint): Remove. (wait_for_inferior): Set step resume break with set_momentary_breakpoint. Test hitting it with bpstat_stop_status and bpstat_what (stop_step_resume_break removed). * breakpoint.{h,c}, infrun.c: Return value from bpstat_what now struct which includes previous return value as main_action, and a step_resume bit. * breakpoint.c (delete_breakpoint): If breakpoint was inserted, and there is another breakpoint there, insert it. * infrun.c (wait_for_inferior): Rearrange the spaghetti a bit. Use a few more gotos. Various: Clean up and add comments.
1993-04-15 * breakpoint.c: Add comments regarding within_scope future direction.Jim Kingdon1-10/+145
1993-04-12(breakpoint_1): use wrap_here before "at"Jim Kingdon1-0/+5
1993-04-09 * breakpoint.h (struct bpstat): Remove momentary field.Jim Kingdon1-36/+150
Remove bpstat_momentary_breakpoint. This was always kludgy and is no longer used. * breakpoint.h: Add enum bpstat_what. breakpoint.h (struct bpstat), breakpoint.c (bpstat_stop_status): stop and print fields of bpstat now per-breakpoint, not just one for the whole chain. breakpoint.{c,h} (bpstat_what): New function. breakpoint.h: Remove bpstat_stop and bpstat_should_print. infrun.c: Replace switch (stop_bpstat->breakpoint_at->type) with call to bpstat_what. README: Remove watchpoint/breakpoint bug from known bugs. * breakpoint.h: Prototype bpstat_find_breakpoint.
1993-03-30Tue Mar 30 08:06:24 1993 Jim Kingdon (kingdon@cygnus.com)Jim Kingdon1-1/+1
* command.c (do_setshow_command): Use %u with var_{u,z}integer. * command.{c,h}: New var_type var_integer. main.c: Use it for history_size. * rs6000-tdep.c, xcoffexec.c, config/rs6000/xm-rs6000.h, breakpoint.c: Lint and byte-order fixups.
1993-03-30(print_it_normal): return 0 after hitting watchpointJim Kingdon1-2/+2
1993-03-30 * breakpoint.h (bpstat): New field print_it.Jim Kingdon1-54/+129
breakpoint.c (bpstat_print): Use it. (print_it_normal): New function (from old bpstat_print code). (bpstat_{alloc,stop_status}): Set print_it field. * breakpoint.c (bpstat_stop_status): Use catch_errors when evaluating watchpoint condition, via new function watchpoint_check. Also stop if watchpoint disabled due to leaving its block.
1993-03-29Add comments regarding breakpoint_re_setJim Kingdon1-1/+14
1993-03-29 * breakpoint.{c,h}: Add exp_string to struct breakpoint and useJim Kingdon1-0/+12
it in breakpoint_re_set.
1993-03-28 * breakpoint.c (breakpoint_re_set_one): Fix storage leak.Peter Schauer1-0/+3
* breakpoint.c (enable_breakpoint): Don't enable watchpoint if it went out of scope. * exec.c (exec_close): Fix storage leak. * exec.c (exec_file_command): Make sure that bfd doesn't realign the output sections when patching an executable. * mips-nat.c (store_inferior_registers): Use REGISTER_PTRACE_ADDR when writing all registers. * mips-tdep.c (mips_push_dummy_frame): Save floating point registers at the right offset in the dummy frame. * mipsread.c (psymtab_to_symtab_1): Do not complain for stProc, stStaticProc and stEnd symbols as they are generated by gcc-2.x. * mipsread.c (mipscoff_new_init): Initialize stabsread and buildsym.
1993-03-26Fetch lazy valuesJim Kingdon1-57/+66
1992-09-15* breakpoint.c, core.c, exec.c, language.c, main.c, printcmd.c,Stu Grossman1-39/+39
symfile.c, target.c, valprint.c: Use _filtered form of *printf. defs.h, utils.c: Make vfprintf_filtered global.
1992-09-02* breakpoint.c (breakpoint_re_set): Avoid setting source symtabJohn Gilmore1-2/+8
(which involves reading in main's symtab) if we have no breakpoints.
1992-08-29RS/6000 portability changes (for hosting cross-debuggers).John Gilmore1-20/+29
* breakpoint.c (fixup_breakpoints): Re-kludge to IBM6000_TARGET. * buildsym.c, rs6000-xdep.c, rs6000-tdep.c, tm-rs6000.h, xcoffexec.c, xcoffread.c: Rename aixcoff to xcoff everywhere. * printcmd.c (print_frame_args): Remove an RS/6000 dependency. * stabsread.c (define_symbol): Remove RS/6000 dependencies. * tm-rs6000.h (ATTACH_DETACH): Remove: host-dependent. (PTRACE_ATTACH, PTRACE_DETACH): Remove: host-dep. (NO_SINGLE_STEP): Add, target-dependent. (loadinfotextindex): Lowercase, remove "aix_". * xm-rs6000.h: Add <sys/ptrace.h> for infptrace.c. (NO_SINGLE_STEP): Remove, target-dependent. * xcoffexec.c (vmap_symtab): Cleanup #if 0'd code. * xcoffread.c: Only build file if RS/6000 native GDB. (build_function_symbol): Remove #if 0'd code. * rs6000-tdep.c: Cleanup. Add static fn protos. Use CORE_ADDR for addresses throughout. Make void fns void. (pop_dummy_frame): Add FIXME about bogosity of design here. (rs6000_struct_return_address): Ditto. (frameless_function_invocation, frame_get_cache_fsr, frame_initial_stack_address, xcoff_relocate_symtab, xcoff_init_loadinfo, free_loadinfo, xcoff_add_toc_to_loadinfo, add_text_to_loadinfo, find_toc_address): Move from xdep file. Use CORE_ADDRs. Change identifiers to lowercase. * rs6000-xdep.c: Make whole file conditional on native RS/6000, supplying dummy routines if non-native. Add prototype for static exec_one_dummy_insn. Move a mess of functions to rs6000-tdep.c (as above). Remove #if 0'd code. * config/rs6000.mh (XDEPFILES): Move xcoffexec.o to target side. (XM_CLIBS): Add -lm to circumvent AIX 3.2 libc ldexp bug. * config/rs6000.mt (TDEPFILES): Adopt xcoffexec.o.
1992-07-04 * breakpoint.c, buildsym.c, c-exp.y, coffread.c, command.c,Fred Fish1-6/+6
core.c, cplus-dem.c, dbxread.c, dwarfread.c, elfread.c, environ.c, eval.c, findvar.c, gdbtypes.c, hppabsd-tdep.c, hppahpux-tdep.c, i386-tdep.c, ieee-float.c, infcmd.c, inflow.c, infptrace.c, infrun.c, m2-exp.y, mipsread.c, objfiles.c, parse.c, procfs.c, putenv.c, remote-mm.c, remote-vx.c, solib.c, sparc-tdep.c, sparc-xdep.c, stack.c, symfile.c, symtab.c, symtab.h, target.c, tm-i386v.h, tm-sparc.h, utils.c, valarith.c, valops.c, valprint.c, values.c, xcoffread.c: Remove "(void)" casts from function calls where the return value is ignored, in accordance with GNU coding standards.
1992-06-29 * dbxread.c, i386-pinsn.c, i386-tdep.c, regex.c, solib.c, symmisc.c,Fred Fish1-5/+11
symtab.h, tm-i386v4.h, valprint.c, values.c: Lint. * breakpoint.c, c-exp.y, coffread.c, command.c, environ.c, eval.c, findvar.c, infcmd.c, infptrace.c, infrun.c, m2-exp.y, parse.c, putenv.c, solib.c, sparc-xdep.c, symtab.c, tm-i386v.h, tm-sparc.h, utils.c, valarith.c, valops.c, valprint.c, values.c: Replace bcopy() use with memcpy(), which is more standard and can take advantage of gcc's builtin functions for increased performance. * breakpoint.c, buildsym.c, coffread.c, dbxread.c, i386-tdep.c, ieee-float.c, infcmd.c, sparc-tdep.c, stack.c, symtab.c, symtab.h, target.c, values.c: Replace bzero() use with memset(), which is more standard and can take advantage of gcc's builtin functions for increased performance. * i386-tdep.c, main.c, valprint.c: Replace bcmp() use with memcmp(), which is more standard and can take advantage of gcc's builtin functions for increased performance.
1992-06-17* breakpoint.c (enable_command, disable_command): Without args,Stu Grossman1-22/+40
should only affect normal breakpoints and watchpoints.
1992-03-29* Makefile.in (VERSION): Roll to 4.4.7.John Gilmore1-37/+17
(HFILES): Add call-cmds.h. * call-cmds.h: New header for command fns called by other files. * breakpoint.c (watchpoints_info): Remove, same as breakpoints_info. (breakpoint_1): Remove unused type arg. Change callers.
1992-03-29Merged in latest RS6000 diffs from Metin G. Ozisik.Per Bothner1-2/+37
1992-02-28* breakpoint.c (breakpoint_re_set_one): Don't reset breakpointStu Grossman1-11/+15
unless symbol table indicates that something has changed.
1992-02-27Fix cvs merge fuckup.Stu Grossman1-6/+0
1992-02-27* breakpoint.c (all_breakpoints_info, breakpoint_1): Add 'infoStu Grossman1-74/+119
all-breakpoints' command. * (get_number): Allow users to enter negative breakpoint numbers. * (breakpoint_1): Reformat display of 'info break' to show new fields. * (create_longjmp_breakpoint, breakpoint_re_set, breakpoint_re_set_one, enable/disable_longjmp_breakpoint), symfile.c (syms_from_objfile): Re-do insertion of longjmp breakpoints. Move all code into breakpoint_re_set, and call that instead of create_longjmp_breakpoint in symfile.c.
1992-02-27* breakpoint.h (ALL_BREAKPOINTS_SAFE): Add.John Gilmore1-4/+13
* breakpoint.c (breakpoint_re_set): Use ALL_BREAKPOINTS_SAFE. * symtab.c (find_pc_symtab): Handle having no objfiles. * infcmd.c: Fix comment. * objfiles.c (free_all_objfiles): Add. * symfile.h (ALL_OBJFILES, ALL_OBJFILES_SAFE): Add. * symfile.c (symbol_file_command): free all objfiles when specifying a new symbol file. (reread_symbols): Stat the file name, don't fstat the descriptor.
1992-02-22* infrun.c, infcmd.c, breakpoint.c, main.c, symfile.c,Stu Grossman1-237/+432
breakpoint.h, tm-sun4os4.h, tm-sparc.h, sparc-tdep.c, tm-mips.h, mips-tdep.h, tm-sun3.h, tm-68k.h, m68k-tdep.h: Add support for stepping (and nexting) through longjmp(). Also, cleanup breakpoint handling quite a bit by creating explicit breakpoint types instead of using magic breakpoint numbers. Makefile.in: Update version to 4.4.3
1991-09-19* breakpoint.c (breakpoint_cond_eval): Use new value_true to testJohn Gilmore1-15/+26
breakpoint condition language-independently. Output hex with local_hex_string for Modula-2 support.
1991-09-06Fix some infrastructure to be able to cope with host and targetJohn Gilmore1-3/+4
machines with different sized basic types (ints, ptrs, etc). (Idea from pierre@la.tce.com (Pierre Willard).) * value.c (value_from_longest): Rename from value_from_long. Handle pointer types as well as integers, so that targets with different pointer sizes from the host can be accomodated. * breakpoint.c, convex-tdep.c, eval.c, expprint.c, printcmd.c, valarith.c, valops.c, valprint.c, value.h, values.c: Rename uses of value_from_long to value_from_longest. * eval.c, findvar.c, printcmd.c, valarith.c, valops.c: Pass the correct pointer type to value_from_long{est}. * remote-vx.c: Remove obsolete code for calling functions via vxworks kludge interface (it referenced value_from_long). * valops.c (value_string): Find malloc with lookup_misc_func, not raw search. * breakpoint.c, remote-vx.c: Reword strings printed by catch_errors callers.
1991-09-04Make writing to files work properly. (Fixes to BFD are also needed.)John Gilmore1-19/+68
* core.c (core_open): Open file ourselves, read or r/w, depending on write_files. Use bfd_fdopenr. * gdbcore.h (write_files): New variable. * exec.c (write_files): Define variable, add set&show for it. (exec_file_command): Use write_files to open for read or r/write. Make shared library reading happen automatically. These changes are mostly from Peter Schauer <pes@regent.e-technik.tu-muenchen.de>. * inferior.h (stop_soon_quietly): Add to exported variables. * infrun.c (child_create_inferior): call solib hook, if defined. (child_attach): call solib hook, if defined. * solib.c: Include inferior.h. Add from_tty to so_list as kludge. (find_solib): Use lookup_misc_func rather than hand-rolled. (symbol_add_stub): New stub for catch_errors. (solib_add): Avoid output if !from_tty. Catch errors rather than just calling symbol_file_add and bombing. (solib_create_inferior_hook): Interface with the target process to let it read and alloc shared libs, then figure out what it did. * core.c (validate_files): Fix typo, soften warning. (Fix from Hiroto Kagotani <kagotani@cs.titech.ac.jp>.) * utils.c (fputs_demangled): Avoid duplicate printing if demangling is off. (Fix from J.T. Conklin <jtc@cayenne.com>.) * infrun.c (proceed): Cast -1 to (CORE_ADDR) before comparing. (Fix from pierre@la.tce.com (Pierre Willard).) * main.c (catch_errors): Change argument to a char * from an int, since a char * can point to a struct full of glop, but an int is not guaranteed to be able to hold a pointer. * breakpoint.c (breakpoint_cond_eval, bpstat_stop_status, breakpoint_re_set_one, breakpoint_re_set): Adapt. * core.c (core_open, solib_add_stub): Adapt. * remote-vx.c (symbol_stub, add_symbol_stub, callers): Adapt.
1991-04-22Check for NULL selected_frame in various places.Jim Kingdon1-3/+11
1991-04-22 * breakpoint.c (bpstat_print): Try all elements on the bpstatJim Kingdon1-2/+15
chain before giving up with an internal error. Sun Apr 21 21:43:10 1991 Jim Kingdon (kingdon at cygint.cygnus.com) * value.h, values.c (value_{,free_to_}mark): New functions. breakpoint.c (bpstat_stop_status): Use them.
1991-04-19*** empty log message ***Jim Kingdon1-0/+83
1991-04-19*** empty log message ***Jim Kingdon1-11/+35
1991-03-28Initial revisionK. Richard Pixley1-0/+2259
1990-09-05Initial revisionJohn Gilmore1-1373/+0
2012-06-03gdb-3.5gdb-3.51-3/+12
2012-06-03gdb-3.4gdb-3.41-0/+1