aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-08-29thread support broken on ppc-aix.Joel Brobecker2-1/+6
Thread support got broken when adding 64bit support on ppc-aix. Upon digging further, I found that the following patch... | * gdb_ptrace.h: Use ptrace64 instead of ptrace if HAVE_PTRACE64 | is defined. | * rs6000-nat.c: Check for __ld_info64_ if compiling 64 BIT gdb. | (rs6000_ptrace32): Call ptrace64 instead of ptrace if present. | (rs6000_ptrace64): Call ptace64 instead of ptracex if present. | * configure.ac: Check for ptrace64. | * configure, config.in: Regenerate. ... is responsible for this regression: (gdb) x /x &__n_pthreads 0xf06a8258 <__n_pthreads>: Cannot access memory at address 0xf06a8258 Prior to the patch, we have: (gdb) x /x &__n_pthreads 0xf06a8258 <__n_pthreads>: 0x00000003 The problem occurs inside rs6000_ptrace32, while calling ptrace64. The address is given to rs6000_ptrace32 as an "int *", while ptrace64 takes a "long long". The cast causes the address to be sign-extended, which results in GDB trying to read the wrong address. This patch fixes the issue by casting the address to a "uintptr_t" instead, and letting the compiler do the implicit conversion to "long long" in the function call. gdb/ChangeLog: * rs6000-nat.c (rs6000_ptrace32): Cast "addr" to "uintptr_t" instead of "long long" in call to ptrace64.
2013-08-292013-08-29 Sterling Augustine <saugustine@google.com>Sterling Augustine2-6/+15
* boards/remote-stdio-gdbserver.exp: Set rcp_prog and rsh_prog in new conditional. Move use of REMOTE_PORTNUM into said conditional.
2013-08-29Remove use of deprecated_command_loop_hook from mi code.Andrew Burgess2-35/+16
https://sourceware.org/ml/gdb-patches/2013-08/msg00605.html gdb/ChangeLog * mi/mi-interp.c (mi_command_loop): Change signature to match interp_command_loop_ftype. (mi1_command_loop): Remove. (mi2_command_loop): Remove. (mi3_command_loop): Remove. (mi_interpreter_resume): Remove setting of deprecated_command_loop_hook. (_initialize_mi_interp): Set mi_command_loop as the command loop callback.
2013-08-292013-08-29 Sanimir Agovic <sanimir.agovic@intel.com>Sanimir Agovic2-1/+6
* valops.c (do_search_struct_field): Pass v2 instead of base_type to value_type.
2013-08-29cleanup: make allocate_value_contents staticSanimir Agovic3-2/+6
2013-08-29 Sanimir Agovic <sanimir.agovic@intel.com> * value.c (allocate_value_contents): Make static. * value.h (allocate_value_contents): Remove prototype.
2013-08-29cleanup: use value_lazy_at instead of allocate_value_lazy/attribute setterSanimir Agovic4-16/+13
I came across a pattern used to construct a value in the following way: struct value *val = allocate_value_lazy (type); VALUE_LVAL (val) = lval_memory; set_value_address (val, address); Instead we fold the above call into: value_at_lazy (type, addr); 2013-08-27 Sanimir Agovic <sanimir.agovic@intel.com> * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): Use value_at_lazy instead of assembling value via allocate_value_lazy and attribute setter. * findvar.c (default_read_var_value): Use value_at_lazy instead of assembling value via allocate_value_lazy and attribute setter. * valops.c (do_search_struct_field): Use value_at_lazy instead of assembling value via allocate_value_lazy and attribute setter.
2013-08-29cleanup: replace allocate_value and memcpy with value_from_contentsSanimir Agovic2-4/+6
2013-08-29 Sanimir Agovic <sanimir.agovic@intel.com> * value.c (value_from_contents_and_address): Replace allocate_value and memcpy with value_from_contents.
2013-08-29 * elf64-x86-64.c (elf_x86_64_check_tls_transition): AllowJakub Jelinek14-32/+546
64-bit -mcmodel=large -fpic TLS GD and LD sequences. (elf_x86_64_relocate_section): Handle -mcmodel=large -fpic TLS GD and LD sequences in GD->LE, GD->IE and LD->LE transitions. ld/testsuite/ * ld-x86-64/x86-64.exp: Add tlsld3, tlsgd7 and tlsgd8 tests. * ld-x86-64/tlspic1.s: Add -mcmodel=large -fpic TLS GD and LD sequences. * ld-x86-64/tlspic.dd: Adjusted. * ld-x86-64/tlspic.rd: Adjusted. * ld-x86-64/tlspic-nacl.rd: Adjusted. * ld-x86-64/tlsld3.dd: New test. * ld-x86-64/tlsld3.s: New file. * ld-x86-64/tlsgd7.dd: New test. * ld-x86-64/tlsgd7.s: New file. * ld-x86-64/tlsgd8.dd: New test. * ld-x86-64/tlsgd8.s: New file.
2013-08-292013-08-29 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon2-1/+5
* gdb.python/py-arch.exp: Load gdb-python.exp.
2013-08-292013-08-29 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon13-49/+116
* python/py-framefilter.c (py_print_frame): Remove usage of PyString_AsString. Use python_string_to_host_string instead. Refactor function to work with a string as a new allocation instead of a pointer. (py_print_frame): Ditto. * python/lib/gdb/frames.py (return_list): Cain iterators together instead of adding them as a list. (_sort_list): Call return_list, and remove duplicate code. (execute_frame_filters): Convert iterator to a list with list(). * python/lib/gdb/command/frame_filters.py (SetFrameFilterPriority._set_filter_priority): Convert priority attribute to an integer. * python/lib/gdb/FrameIterator.py (FrameIterator.next): Define wrapper function __next__. * python/lib/gdb/FrameDecorator.py: If basestring not defined, define as "str". 2013-08-29 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-framefilter.py (FrameFilter.filter): Check itertools for imap attribute. Otherwise use map(). (ElidingIterator): Define wrapper function __next__. * gdb.python/py-framefilter-mi.exp: Do not use execfile, use exec (open (read ())) instead. * gdb.python/py-framefilter.exp: Ditto. * gdb.python/py-arch.exp: Update print based test to Python 3.x compliance. * gdb.python/py-frame.exp: Ditto. * gdb.python/py-type.exp: Ditto.
2013-08-292013-08-29 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon1-2/+0
* ChangeLog: Remove blank lines between PR and ChangeLog description.
2013-08-292013-08-29 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon2-1/+31
PR python/15752 * python/py-framefilter.c (apply_frame_filter): Check gdb_python_initialized. Exit if the Python frame-filter code cannot be initialized.
2013-08-292013-08-29 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon2-1/+8
PR cli/15842 * top.c (print_gdb_version): Remove erroneous newline after help text.
2013-08-29gdb/Yao Qi2-2/+7
* varobj.c (install_dynamic_child): Remove trailing space. Add one blank line after variable declaration.
2013-08-29daily updateAlan Modra1-1/+1
2013-08-28PR gdb/15415Jan Kratochvil13-28/+168
gdb/ 2013-08-27 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/15415 * corefile.c (get_exec_file): Use exec_filename. * defs.h (OPF_DISABLE_REALPATH): New definition. Add new comment. * exec.c (exec_close): Free EXEC_FILENAME. (exec_file_attach): New variable canonical_pathname. Use OPF_DISABLE_REALPATH. Call gdb_realpath explicitly. Set EXEC_FILENAME. * exec.h (exec_filename): New. * inferior.c (print_inferior, inferior_command): Use PSPACE_EXEC_FILENAME. * mi/mi-main.c (print_one_inferior): Likewise. * progspace.c (clone_program_space, print_program_space): Likewise. * progspace.h (struct program_space): New field pspace_exec_filename. * source.c (openp): Describe OPF_DISABLE_REALPATH. New variable realpath_fptr, initialize it from OPF_DISABLE_REALPATH, use it. gdb/testsuite/ 2013-08-27 Jan Kratochvil <jan.kratochvil@redhat.com> PR gdb/15415 * gdb.base/argv0-symlink.c: New file. * gdb.base/argv0-symlink.exp: New file.
2013-08-28PR server/15604Jan Kratochvil5-0/+24
gdb/gdbserver/ 2013-08-28 Jan Kratochvil <jan.kratochvil@redhat.com> PR server/15604 * linux-low.c: Include filestuff.h. (linux_create_inferior) <pid == 0>: Call close_most_fds. * lynx-low.c: Include filestuff.h. (lynx_create_inferior) <pid == 0>: Call close_most_fds. * server.c: Include filestuff.h. (main): Call notice_open_fds. * spu-low.c: Include filestuff.h. (spu_create_inferior) <pid == 0>: Call close_most_fds.
2013-08-28 * gdb.dwarf2/gdb-index.exp (add_gdb_index): Use explicit test nameTom Tromey2-1/+7
when saving index.
2013-08-28gdb/common/linux-ptrace.c: Fix build on non-Intel architectures.Will Newton2-1/+6
As uintptr_t is used stdint.h must be included on all architectures. 2013-08-28 Will Newton <will.newton@linaro.org> * common/linux-ptrace.c: Include stdint.h unconditionally.
2013-08-28gdb/Jan Kratochvil2-1/+6
Code cleanup. * nto-tdep.c (nto_find_and_open_solib): Use OPF_TRY_CWD_FIRST.
2013-08-28gdb/Yao Qi5-2/+79
* event-top.c (gdb_setup_readline): Call stderr_fileopen instead of stdio_fileopen. * main.c (captured_main) [__MINGW32__]: Set stderr unbuffered. .Call stderr_fileopen instead of stdio_fileopen. * ui-file.c [__MINGW32__] (stderr_file_write): New function. [__MINGW32__] (stderr_file_fputs): New function. (stderr_fileopen): New function. * ui-file.h (stderr_fileopen): Declare.
2013-08-28 * aarch64-opc.c (aarch64_logical_immediate_p): Return FALSE if theNick Clifton5-2/+18
immediate is not suitable for the 32-bit ABI. * gas/aarch64/illegal.s: Add illegal constant for logical operation. * gas/aarch64/illegal.l: Add expected error message.
2013-08-28 PR ld/15896Nick Clifton2-2/+7
* ld.texinfo: Fix uses of MB abbreviation.
2013-08-28daily updateAlan Modra1-1/+1
2013-08-27gold/Roland McGrath5-149/+252
* output.cc (Output_segment::set_section_addresses): Take new Target* argument. If target->isolate_execinstr() and the segment is executable and starts at a target->abi_pagesize() boundary, pad its end out to a target->abi_pagesize() boundary with code fill. * output.h (Output_segment::set_section_addresses): Update decl. * layout.h (Layout::check_output_data_for_reset_values): Take new argument RELAX_OUTPUTS. (Layout): New member relax_output_list_. (Layout::add_relax_output): New method. * layout.cc (Layout::Layout): Update constructor. (Layout::reset_relax_output): New method. (Layout::clean_up_after_relaxation): Call it. (Layout::prepare_for_relaxation): Update caller. (Layout::set_segment_offsets): Update callers of set_section_addresses. Call reset_relax_output before re-processing segments for isolate_execinstr case. (Layout::write_data): Handle relax_output_list_. (Layout::Relaxation_debug_check::check_output_data_for_reset_values): Take new argument RELAX_OUTPUTS. Assert it's an empty collection.
2013-08-27 * dwarf2read.c (struct dwarf2_cu): Tweak comment.Doug Evans2-10/+17
(struct dwarf2_per_cu_data): Ditto. (maybe_queue_comp_unit): Delete forward decl. Add comment. (process_imported_unit_die): Ditto. (follow_die_sig_1): Simplify assert.
2013-08-27 PR binutils/15796Nick Clifton2-0/+24
* ar.c (map_over_members): Correctly handle multiple same-name entries on the command line and in the archive.
2013-08-27windows-nat.c: Don't install a deprecated_xfer_memory method.Pedro Alves2-22/+25
This stops another target from installing a target_ops->deprecated_xfer_memory method. Tested on native MinGW. gdb/ 2013-08-27 Pedro Alves <palves@redhat.com> * windows-nat.c (windows_xfer_memory): Adjust prototype to follow xfer_partial's interface. Return TARGET_XFER_E_IO on error. (windows_xfer_partial): Defer TARGET_OBJECT_MEMORY handling to windows_xfer_memory directly. (init_windows_ops): Don't install a deprecated_xfer_memory method.
2013-08-27darwin-nat.c: Don't install a deprecated_xfer_memory method.Pedro Alves2-21/+6
darwin_xfer_partial already handles TARGET_OBJECT_MEMORY, so this method is not necessary. gdb/ 2013-08-27 Pedro Alves <palves@redhat.com> * darwin-nat.c (darwin_xfer_memory): Delete. (_initialize_darwin_inferior): Don't install a deprecated_xfer_memory method.
2013-08-27Add options to skip unavailable localsYao Qi12-27/+157
This is the patch to add new option '--skip-unavailable' to MI commands '-stack-list-{locals, arguments, variables}'. This patch extends list_args_or_locals to add a new parameter 'skip_unavailable', and don't list locals or arguments if values are unavailable and 'skip_unavailable' is true. This is inspecting a trace frame (tfind mode), where only a few locals have been collected. -stack-list-locals, no switch vs new switch: -stack-list-locals --simple-values ^done,locals=[{name="array",type="unsigned char [2]"},{name="i",type="int",value="<unavailable>"}] -stack-list-locals --skip-unavailable --simple-values ^done,locals=[{name="array",type="unsigned char [2]"}] -stack-list-arguments, no switch vs new switch: -stack-list-arguments --simple-values ^done,stack-args=[frame={level="0",args=[{name="j",type="int",value="4"},{name="s",type="char *",value="<unavailable>"}]},frame={level="1",args=[]}] -stack-list-arguments --skip-unavailable --simple-values ^done,stack-args=[frame={level="0",args=[{name="j",type="int",value="4"}]},frame={level="1",args=[]}] -stack-list-variables, no switch vs new switch: -stack-list-variables --simple-values ^done,variables=[{name="j",arg="1",type="int",value="4"},{name="s",arg="1",type="char *",value="<unavailable>"},{name="array",type="unsigned char [2]"},{name="i",type="int",value="<unavailable>"}] -stack-list-variables --skip-unavailable --simple-values ^done,variables=[{name="j",arg="1",type="int",value="4"},{name="array",type="unsigned char [2]"}] tests are added to test these new options. gdb: 2013-08-27 Pedro Alves <pedro@codesourcery.com> Yao Qi <yao@codesourcery.com> * mi/mi-cmd-stack.c (list_args_or_locals): Adjust prototype. (parse_no_frames_option): Remove. (mi_cmd_stack_list_locals): Handle --skip-unavailable. (mi_cmd_stack_list_args): Adjust. (mi_cmd_stack_list_variables): Handle --skip-unavailable. (list_arg_or_local): Add new parameter 'skip_unavailable'. Return early if SKIP_UNAVAILABLE is true and ARG->val is unavailable. Caller update. (list_args_or_locals): New parameter 'skip_unavailable'. Handle it. * valprint.c (scalar_type_p): Rename to ... (val_print_scalar_type_p): ... this. Make extern. (val_print, value_check_printable): Adjust. * valprint.h (val_print_scalar_type_p): Declare. * value.c (value_entirely_unavailable): New function. * value.h (value_entirely_unavailable): Declare. * NEWS: Mention the new option "--skip-unavailable" to MI commands '-stack-list-locals', '-stack-list-arguments' and '-stack-list-variables'. gdb/doc: 2013-08-27 Pedro Alves <pedro@codesourcery.com> Yao Qi <yao@codesourcery.com> * gdb.texinfo (GDB/MI Stack Manipulation) <-stack-list-locals>: Document new --skip-unavailable option. <-stack-list-variables>: Document new --skip-unavailable option. gdb/testsuite: 2013-08-27 Yao Qi <yao@codesourcery.com> * gdb.trace/entry-values.exp: Test unavailable entry value is not shown when option '--skip-unavailable' is specified. * gdb.trace/mi-trace-unavailable.exp (test_trace_unavailable): Add tests for new option '--skip-unavailable'.
2013-08-27Add mi_getopt_allow_unknownYao Qi4-27/+78
This patch is to add a new function mi_getopt_allow_unknown, which returns -1 silently (without throwing error) when unknown option is met, and use this function to parse options for command '-stack-list-arguments'. gdb/ * mi/mi-cmd-stack.c (parse_no_frames_option): Remove. (mi_cmd_stack_list_args): Use mi_getopt_silent to handle options. * mi/mi-getopt.c (mi_getopt): Remove. (mi_getopt_1): Renamed from mi_getopt. Add one parameter 'error_on_unknown'. (mi_getopt): Call mi_getopt_1. (mi_getopt_silent): New. * mi/mi-getopt.h (mi_getopt_silent): Declare.
2013-08-27 * elf-bfd.h (struct elf_backend_data): Remove as_needed_cleanup.Alan Modra5-25/+52
Add notice_as_needed. * elf64-ppc.c (elf_backend_as_needed_cleanup): Don't define. (elf_backend_notice_as_needed): Define. (ppc64_elf_as_needed_cleanup): Rename and adjust.. (ppc64_elf_notice_as_needed): ..to this. * elflink.c (_bfd_elf_notice_as_needed): New function, extracted.. (elf_link_add_object_symbols): ..from here. * elfxx-target.h (elf_backend_as_needed_cleanup): Don't define. (elf_backend_notice_as_needed): Define.. (elfNN_bed): ..and use here.
2013-08-27gdb/testsuite/Yao Qi2-1/+11
* lib/gdb.exp (gdb_remote_download): Don't pass $tofile to remote_download if it is empty.
2013-08-27daily updateAlan Modra1-1/+1
2013-08-26bfd/Roland McGrath16-12/+116
* archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros. (bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros. * cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function. (bfd_i386_nacl_arch): New variable. (bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables. (bfd_x64_32_arch_intel_syntax): Link them into the list. * bfd-in2.h: Regenerate. ld/ * emulparams/elf_i386_nacl.sh (ARCH): Set to i386:nacl. * emulparams/elf_x86_64_nacl.sh (ARCH): Set to i386:x86-64:nacl. * emulparams/elf32_x86_64_nacl.sh (ARCH): Set to i386:x64-32:nacl. ld/testsuite/ * ld-x86-64/x86-64.exp (Mixed x86_64 and i386 input test 1): Loosen string match to admit i386:x86-64*. (Mixed x86_64 and i386 input test 2): Likewise. * ld-x86-64/ilp32-2.d: Likewise. * ld-x86-64/ilp32-3.d: Likewise. * ld-x86-64/lp64-2.d: Likewise. * ld-x86-64/lp64-3.d: Likewise. * ld-x86-64/ia32-2.d: Likewise, and i386.* too. * ld-x86-64/ia32-3.d: Likewise.
2013-08-26bfd/Roland McGrath12-88/+273
* elf-nacl.c (nacl_modify_segment_map): Fix logic reordering the elf_segment_map list. If an executable segment is page-aligned but does not end with a full page, then append a fake section into the segment map entry that pads out the page. (nacl_final_write_processing): New function. Write the code fill laid out in nacl_modify_segment_map. * elf-nacl.h: Declare it. * elf32-arm.c (elf32_arm_nacl_final_write_processing): New function. (elf_backend_final_write_processing): Define it for NaCl backend. * elf32-i386.c (elf_backend_final_write_processing): Likewise. * elf64-x86-64.c (elf_backend_final_write_processing): Likewise. * elf-nacl.c (segment_eligible_for_headers): Rename MAXPAGESIZE parameter to MINPAGESIZE. (nacl_modify_segment_map): Use minpagesize instead of maxpagesize. * elf32-arm.c (ELF_MINPAGESIZE, ELF_COMMONPAGESIZE): Set to 0x10000 for NaCl targets. ld/testsuite/ * ld-x86-64/ilp32-4-nacl.d: Loosen .shstrtab line regexp to match any file offset. * ld-x86-64/tlsbin-nacl.rd: Update expected code segment PT_LOAD. * ld-x86-64/tlsbindesc-nacl.rd: Likewise. * ld-scripts/rgn-at3.d: XFAIL for *-*-nacl* targets. * ld-scripts/rgn-over8-ok.d: Likewise.
2013-08-26 PR symtab/15885Doug Evans6-2/+135
* dwarf2read.c (dw2_dump): Print some minimal information indicating .gdb_index is in use. * symfile.c (reread_symbols): Reset objfile->sf. testsuite/ * gdb.dwarf2/Makefile.in (EXECUTABLES): Add gdb-index. (clean): rm -f *.gdb-index *.with-index. * gdb.dwarf2/gdb-index.exp: New testcase.
2013-08-26 * NEWS: Document "mt print objfiles" now takes optional regexp.Doug Evans5-7/+26
* symmisc.c (maintenance_print_objfiles): Argument is now an optional regexp of objfiles to print. (_initialize_symmisc): Update doc string for "mt print objfiles". doc/ * gdb.texinfo (Maintenance Commands): "maint print objfiles" now takes an optional regexp.
2013-08-26 * dwarf2read.c (write_psymtabs_to_index): Move error checks ahead ofDoug Evans2-3/+8
missing debug info checks.
2013-08-26 * lib/gdb.exp (run_on_host): Moved here from gnu-debugdata.exp.Doug Evans3-37/+44
* gdb.base/gnu-debugdata.exp (run): Moved to gdb.exp and renamed to run_on_host. All callers updated.
2013-08-262013-08-26 Raunaq Bathija <raunaq12@in.ibm.com>Ulrich Weigand2-2/+28
Ulrich Weigand <uweigand@de.ibm.com> * xcoffread.c (arrange_linetable): Add fix to correctly handle line tables generated by XLC compiled binaries.
2013-08-26daily updateAlan Modra1-1/+1
2013-08-25daily updateAlan Modra1-1/+1
2013-08-24 * ld-elf/comm-data.exp: Use check_shared_lib_support rather thanMaciej W. Rozycki9-21/+96
explicit patterns for test target qualification. Define extra tool flags for *-*-hpux* and tic6x-*-* targets. Link with a linker script. Use alternative patterns for targets that do not eliminate copy relocs, currently mn10300-*-* and vax-*-*. * ld-elf/comm-data2.s: Handle HPUX's `.comm' syntax. * ld-elf/comm-data2.ld: New test linker script. * ld-elf/comm-data2.xd: Match section's VMA too. Ignore ASCII data dump. * ld-elf/comm-data2r.rd: New test pattern. * ld-elf/comm-data2r.sd: New test pattern. * ld-elf/comm-data2r.xd: New test pattern. * ld-mips-elf/comm-data.exp: Use check_shared_lib_support rather than an explicit pattern for test target qualification. Link with a linker script.
2013-08-24 * ld-arm/export-class.exp: Handle non-EABI targets.Maciej W. Rozycki2-3/+13
2013-08-24 * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don'tMaciej W. Rozycki4-7/+18
set GOT's entry size if there is no ELF section data. * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise. * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections): Likewise.
2013-08-24gdb/testsuite/Yao Qi3-0/+59
* gdb.trace/entry-values.c (end): New (main): Call end. * gdb.trace/entry-values.exp: Load trace-support.exp. Set tracepoint and collect data. Test entry value is unavailable.
2013-08-24gdb/testsuite/Yao Qi4-0/+291
* lib/dwarf.exp (_location): Handle DW_OP_deref_size. * gdb.trace/entry-values.c: New. * gdb.trace/entry-values.exp: New.
2013-08-24 * symmisc.c (dump_symtab): Delete prototype.Doug Evans2-8/+8
(dump_msymbols, dump_objfile): Ditto. (maintenance_info_symtabs): Mark as dont_repeat. (_initialize_symmisc): Improve doc string for "mt info symtabs".
2013-08-24 * elfread.c (elf_symfile_read): Move "Done reading minimal symbols"Doug Evans2-3/+8
debugging printf to better location.