aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-09-05dwarf2loc.c: minor cleanup. don't print integer with paddress.Pedro Alves2-3/+10
A couple years ago, dwarf_expr_fetch used to return a CORE_ADDR. It was made to return a ULONGEST since, and the 'dwarf_regnum' local adjusted accordingly, but, we kept printing it with paddress. gdbarch_dwarf2_reg_to_regnum takes the register number as 'int', so there's really no point in using ULONGEST/pulongest either. gdb/ 2013-09-05 Pedro Alves <palves@redhat.com> * dwarf2loc.c (dwarf2_evaluate_loc_desc_full): 'dwarf_regnum' local is now int instead of ULONGEST. Print it with %d instead of paddress.
2013-09-052013-09-05 Tristan Gingold <gingold@adacore.com>Tristan Gingold2-1/+4
* MAINTAINERS: Remove avr maintainership.
2013-09-05Rework value_of_register in terms of value_of_register_lazy.Pedro Alves2-29/+7
I noticed that value_of_register (used for getting values _of_ registers ($pc, $rax, etc.), rather than variables _in_ registers), kind of builds a franken-value, by propagating the lval and address of the frame register value, but not the entire location, like necessary for lval_computed (if some unwinder ever returns that, the resulting value will misbehave). This gets in the way of printing optimized out (not saved) lval_registers differently from other optimized out values, as it doesn't make sure the resulting value is lval_register. I started out by just doing something like: - VALUE_LVAL (reg_val) = lval; - set_value_address (reg_val, addr); + VALUE_LVAL (reg_val) = lval_register; ... just like value_of_register_lazy below. That's sufficient to fix the issue. Then I noticed this is using frame_register, which we should avoid nowadays, for it returns elements of a value, but not all that's sometimes necessary (unavailable-ness is all or nothing with it, for instance), and considered using get_frame_register_value instead (which returns a struct value), and value_contents_copy, just like value_fetch_lazy's handling of lval_register. But at that point, I realized we might as well just defer all that work to value_of_register_lazy/value_fetch_lazy... Doing it this way adds a frame_find_by_id lookup (from within value_fetch_lazy), while we already have a frame pointer handy in value_of_register. I considered factoring out the lazy register fetching out of value_fetch_lazy, into a function that takes a frame pointer and call that instead, avoiding the lookup, but then it looked like too much complication for an early optimization, and went back to keeping it simple. Tested on x86_64 Fedora 17. gdb/ 2013-09-05 Pedro Alves <palves@redhat.com> * findvar.c (value_of_register): Rework in terms of value_of_register_lazy.
2013-09-052013-09-05 Muhammad Bilal <mbilal@codesourcery.com>Muhammad Bilal2-1/+5
* symfile.c (add_symbol_file_command): Remove trailing whitespaces and blank line after comment.
2013-09-05[TUI] Rewrite register-changed decision bits.Pedro Alves2-40/+23
I stumbled on the TUI's register-changed decision code before (used to decided whether the register should be highlighted in the register window), for it is trying to compare all the different possible states and contents or previous/current register contents, and as such may need updating whenever the value machinery changes to have more state. It's just much simpler and more future proof to compare the previous/current printable representation instead. The bit in tui_register_format that returns early if the register has no name gets a bit in the way of the new prototype (what to return in that case? NULL, empty string, etc.?). Fortunately, that check isn't really necessary. All the callers will have already skipped unnamed registers. gdb/ 2013-09-05 Pedro Alves <palves@redhat.com> * tui/tui-regs.c (tui_register_format): Don't look at the register's name here. Return string representing register value instead of storing it in the data element. (tui_get_register): Compare register string representations instead of register value states and contents.
2013-09-05[PR tui/15933] TUI shows registers of the wrong frame the first timePedro Alves2-1/+7
I've stumbled on this by inspection. When the TUI's register window is first displayed, it always shows the registers of the current frame, instead of of the selected frame, which is obviously bogus. E.g., (gdb) step # into "function" (gdb) up (gdb) tui reg general # or C-x 2, C-x 2 shows the registers of "function", rather than the caller's. A subsequent: (gdb) frame or (gdb) down (gdb) up can be used as workaround to "fix" it. gdb/ 2013-09-05 Pedro Alves <palves@redhat.com> PR tui/15933 * tui/tui-regs.c (tui_show_registers): Show registers of the selected frame, not the current frame.
2013-09-052013-09-05 Ricard Wanderlof <ricardw@axis.com>Ricard Wanderlof2-0/+5
* MAINTAINERS: Add myself to Write After Approval.
2013-09-05daily updateAlan Modra1-1/+1
2013-09-04 * gdb.python/py-events.py (exit_handler): Verify we get the expectedDoug Evans5-17/+24
event. (continue_handler, new_objfile_handler): Ditto. (test_events): Rename command to "test-events". (test_newobj_events): Rename command to "test-objfile-events". * gdb.python/py-events.exp: Update. * gdb.python/py-evsignal.exp: Update. * gdb.python/py-evthreads.exp: Update.
2013-09-04 * dwarf2read.c (queue_and_load_all_dwo_tus): New function.Doug Evans5-6/+95
(queue_and_load_dwo_tu): New function. (lookup_dwo_signatured_type): Set per_cu.tu_read. (maybe_queue_comp_unit): Rename this_cu argument to dependent_cu. Make dependent_cu optional. (dw2_do_instantiate_symtab): If we just loaded a CU from a DWO, and an older .gdb_index is in use, queue and load all its TUs too. testsuite/ * gdb.base/enumval.c (ZERO): New enum value. (main): Use it * gdb.base/enumval.exp: Test ability to print ZERO.
2013-09-04Code cleanup: Change OPF_DISABLE_REALPATH to OPF_RETURN_REALPATH.Jan Kratochvil9-28/+50
gdb/ 2013-09-04 Jan Kratochvil <jan.kratochvil@redhat.com> Code cleanup: Change OPF_DISABLE_REALPATH to OPF_RETURN_REALPATH. * cli/cli-cmds.c (find_and_open_script): Add OPF_RETURN_REALPATH to variable search_flags. * defs.h (OPF_DISABLE_REALPATH): Rename to ... (OPF_RETURN_REALPATH): ... here. * dwarf2read.c (try_open_dwop_file): Set OPF_RETURN_REALPATH for flags. * exec.c (exec_file_attach): Remove OPF_DISABLE_REALPATH from openp call. Twice. * nto-tdep.c (nto_find_and_open_solib): Add OPF_RETURN_REALPATH for openp call. * solib.c (solib_find): Likewise. Four times. * source.c (openp): Change OPF_DISABLE_REALPATH to OPF_RETURN_REALPATH in the function comment and for the realpath_fptr variable. (source_full_path_of): Add OPF_RETURN_REALPATH for openp call. (find_and_open_source): Likewise. Twice. * symfile.c (symfile_bfd_open): Likewise, also twice.
2013-09-04 * progspace.c (save_current_space_and_thread): Remove unnecessaryDoug Evans2-1/+7
call to save_current_inferior.
2013-09-04Avoid printing unavailable/optimized out registers (sh64-tdep.c)Andrew Burgess2-1/+9
https://sourceware.org/ml/gdb-patches/2013-08/msg00834.html gdb/ChangeLog * sh64-tdep.c (sh64_do_register): Return after printing message about unavailable register contents.
2013-09-04ld/testsuite/Yufeng Zhang2-1/+5
2013-09-04 Vidya Praveen <vidyapraveen@arm.com> * ld-arm/export-class.exp: Fix the condition.
2013-09-04gas/Tristan Gingold6-0/+56
* config/tc-ppc.c (md_apply_fix): Handle defined after use toc symbols. gas/testsuite/ * gas/ppc/aix.exp: Run xcoff-toc-1 test. * gas/ppc/xcoff-toc-1.s, gas/ppc/xcoff-toc-1.d: New test.
2013-09-04 PR gas/15914Nick Clifton11-85/+222
* config/tc-arm.c (T16_32_TAB): Add _udf. (do_t_udf): New function. (insns): Add "udf". * gas/arm/udf-bad.s: New file. * gas/arm/udf-bad.d: New file. * gas/arm/udf-bad.l: New file. * gas/arm/udf.s: New file. * gas/arm/udf.d: New file. * gas/arm/udf.l: New file. * arm-dis.c (arm_opcodes): Add udf. (thumb_opcodes): Use "udf" mnemonic rather than UNDEFINED_INSTRUCTION. (thumb32_opcodes): Add udf.w. (print_insn_thumb32): Handle %H as the thumb32_opcodes comment says.
2013-09-042013-09-04 Muhammad Bilal <mbilal@codesourcery.com>Muhammad Bilal4-56/+68
Pedro Alves <palves@redhat.com> * symfile.c (add_symbol_file_command): Error out on unknown option. Handle EXPECTING_SEC_ADDR/EXPECTING_SEC_NAME before '-' options and collapse into single conditional branch. 2013-09-13 Muhammad Bilal <mbilal@codesourcery.com> Pedro Alves <palves@redhat.com> * gdb.base/relocate.exp: Check that invalid options are rejected.
2013-09-04daily updateAlan Modra1-1/+1
2013-09-03sim: mark complete_option_list args const to fix build warningsMike Frysinger2-1/+5
The completion API was updated, but this func missed having its text/word args const.
2013-09-03Use relative relocation for R_X86_64_32 on x32H.J. Lu2-1/+8
2013-09-03 Pavel Chupin <pavel.v.chupin@intel.com> PR gold/15927 * x86_64.cc (Target_x86_64<size>::Scan::global): Use relative relocation for R_X86_64_32 on x32.
2013-09-03 * inf-child.c (inf_child_follow_fork) New parameterLuis Machado9-18/+41
detach_fork. * inf-ptrace.c (inf_ptrace_follow_fork): Likewise. * inf-ttrace.c (inf_ttrace_follow_fork): Likewise. * inferior.h (detach_fork): Remove. * infrun.c (detach_fork): Adjust comment and make it static. (follow_fork): Pass detach_fork parameter to target_follow_fork. * linux-nat.c (linux_child_follow_fork): New parameter detach_fork. * target.c (target_follow_fork): New parameter detach_fork. Pass detach_fork as parameter and print its value. * target.h (struct target_ops) <to_follow_fork>: New int parameter. (target_follow_fork): New parameter detach_fork.
2013-09-03Fix build failure in solib-ia64-hpux.cJoel Brobecker2-1/+7
The field "bfd" no longer exists in struct target_section. Use the_bfd_section->owner instead. gdb/ChangeLog: * solib-ia64-hpux.c (ia64_hpux_relocate_section_addresses): Replace sec->bfd by sec->the_bfd_section->owner.
2013-09-03daily updateAlan Modra1-1/+1
2013-09-02gdb/Yao Qi4-18/+26
* linux-tdep.c (linux_is_uclinux): New function. Code moved from linux_has_shared_address_space. (linux_has_shared_address_space): Call linux_is_uclinux. * linux-tdep.h (linux_is_uclinux): Declare. * m68klinux-tdep.c (m68k_linux_get_sigtramp_info): Call linux_is_uclinux.
2013-09-02gdb/Yao Qi7-8/+13
* config/djgpp/fnchange.lst: Remove entry of i386-interix-nat.c and i386-interix-tdep.c. * configure.ac: Remove '*-*-interix*'. * configure: Re-generated. * defs.h (enum gdb_osabi): Remove GDB_OSABI_INTERIX. * i386-cygwin-tdep.c (i386_cygwin_osabi_sniffer): Remove obsolete comments. * osabi.c (gdb_osabi_names): Remove "Interix".
2013-09-02gdb/Yao Qi2-1/+5
* arch-utils.c: Fix typo in the comment to gdbarch_update_p.
2013-09-02[gdbserver] Fix trace-buffer-size.exp FAILs.Pedro Alves2-4/+20
I'm seeing trace-buffer-size.exp failing (with gdbserver): (gdb) PASS: gdb.trace/trace-buffer-size.exp: tstatus check 2 show trace-buffer-size 4 Requested size of trace buffer is 4. (gdb) PASS: gdb.trace/trace-buffer-size.exp: show trace buffer size set trace-buffer-size -1 memory clobbered past end of allocated block Remote connection closed (gdb) FAIL: gdb.trace/trace-buffer-size.exp: set trace buffer size 2 set trace-buffer-size unlimited (gdb) PASS: gdb.trace/trace-buffer-size.exp: set trace-buffer-size unlimited That "memory clobbered past end of allocated block" is mcheck triggering. Valgrind shows: ==23624== Invalid write of size 1 ==23624== at 0x418DD8: clear_trace_buffer (tracepoint.c:1443) ==23624== by 0x418F3A: init_trace_buffer (tracepoint.c:1497) ==23624== by 0x41D95B: cmd_bigqtbuffer_size (tracepoint.c:4061) ==23624== by 0x41DEEC: handle_tracepoint_general_set (tracepoint.c:4193) clear_trace_buffer does: static void clear_trace_buffer (void) { trace_buffer_start = trace_buffer_lo; trace_buffer_free = trace_buffer_lo; trace_buffer_end_free = trace_buffer_hi; trace_buffer_wrap = trace_buffer_hi; /* A traceframe with zeroed fields marks the end of trace data. */ ((struct traceframe *) trace_buffer_free)->tpnum = 0; ((struct traceframe *) trace_buffer_free)->data_size = 0; traceframe_read_count = traceframe_write_count = 0; traceframes_created = 0; } And the tpnum+data_size fields are over 4 bytes... This fixes it by ensuring we allocate space at least for an EOB. We have code elsewhere that relies on the EOB being present (like e.g., find_traceframe), so this seems simplest. gdb/gdbserver/ 2013-09-02 Pedro Alves <palves@redhat.com> * tracepoint.c (TRACEFRAME_EOB_MARKER_SIZE): New macro. (init_trace_buffer): Ensure at least TRACEFRAME_EOB_MARKER_SIZE is allocated. (trace_buffer_alloc): Use TRACEFRAME_EOB_MARKER_SIZE.
2013-09-02record: upcase record_print_flag enumeration constantsMarkus Metzger4-6/+13
* record.h (record_print_flag) <record_print_src_line, record_print_insn_range>: Rename into ... (record_print_flag) <record_print_src_line, record_print_insn_range>: ... this. Update all users.
2013-09-02 * win32-low.c (child_xfer_memory): Check if ReadProcessMemoryPierre Muller2-6/+21
or WriteProcessMemory complete successfully and handle ERROR_PARTIAL_COPY error.
2013-09-02server.c:gdb_read_memory: Fix error return.Pedro Alves2-1/+6
When I added gdb_read_memory, with bits factored out from elsewhere, I missed adjusting this error return. gdb_read_memory has an interface similar to Like GDB's xfer_partial: > /* Read trace frame or inferior memory. Returns the number of bytes > actually read, zero when no further transfer is possible, and -1 on > error. Return of a positive value smaller than LEN does not > indicate there's no more to be read, only the end of the transfer. Returning EIO, a positive value, is obviously bogus, for the caller will confuse it with a successful partial transfer. Found by inspection. Tested on x86_64 Fedora 17. gdb/gdbserver/ 2013-09-02 Pedro Alves <palves@redhat.com> * server.c (gdb_read_memory): Return -1 on traceframe memory read error instead of EIO.
2013-09-02 Fix small indentation error in last commitPierre Muller1-2/+2
2013-09-02 * windows-nat.c (windows_xfer_memory): Handle ERROR_PARTIAL_COPYPierre Muller2-1/+14
error code.
2013-09-02 * windows-nat.c (windows_xfer_memory): Fix compilation failurePierre Muller2-4/+9
by use of plongest function.
2013-09-022013-09-02 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>Andreas Krebbel2-3/+9
* s390-opc.txt: Fix description for fiebra, fidbra, and fixbra. For the load fp integer instructions only the suppression flag was new with z196 version.
2013-09-022013-09-02 Tristan Gingold <gingold@adacore.com>Tristan Gingold3-1/+788
* NEWS: Add entry mentioning support for native Windows x64 SEH data. * amd64-windows-tdep.c: #include "objfiles.h", "frame-unwind.h", "coff/internal.h", "coff/i386.h", "coff/pe.h" and "libcoff.h". (struct amd64_windows_frame_cache): New struct. (amd64_windows_w2gdb_regnum): New global. (pc_in_range, amd64_windows_frame_decode_epilogue) (amd64_windows_frame_decode_insns, amd64_windows_find_unwind_info) (amd64_windows_frame_cache, amd64_windows_frame_prev_register) (amd64_windows_frame_this_id): New functions. (amd64_windows_frame_unwind): New static global. (amd64_windows_skip_prologue): New function. (amd64_windows_init_abi): Call frame_unwind_prepend_unwinder with amd64_windows_frame_unwind. Call set_gdbarch_skip_prologue with amd64_windows_skip_prologue.
2013-09-02daily updateAlan Modra1-1/+1
2013-09-01daily updateAlan Modra1-1/+1
2013-08-312013-08-31 John David Anglin <dave.anglin@bell.net>Dave Anglin2-1/+6
* elf64-hppa.c (elf_hppa_final_link_relocate): Add missing '%' to format string.
2013-08-31daily updateAlan Modra1-1/+1
2013-08-30GDB 7.6.1 released.gdbadmin1-0/+4
2013-08-30gdb.base/code_elim.exp - force .bss creation.Andrew Burgess2-1/+14
https://sourceware.org/ml/gdb-patches/2013-08/msg00920.html gdb/ChangeLog * gdb.base/code_elim1.c (my_bss_symbol): New variable added. (my_static_symbol): Add comment. (main): Reference my_bss_symbol.
2013-08-30MI -trace-find, print frame with LOC_AND_ADDRESS instead of SRC_AND_LOC.Pedro Alves2-1/+6
When I looked for print_stack_frame calls in MI, I wondered why this one passing down SRC_AND_LOC. print_stack_frame does: /* For mi, alway print location and address. */ if (ui_out_is_mi_like_p (current_uiout)) print_what = LOC_AND_ADDRESS; So it really doesn't matter which value is passed down, but, to avoid confusion in readers, it's better to use the MI standard here. There's another SRC_AND_LOC in mi-interp.c, but that one makes sense. gdb/ 2013-08-30 Pedro Alves <palves@redhat.com> * mi/mi-main.c (mi_cmd_trace_find): Use LOC_AND_ADDRESS instead of SRC_AND_LOC.
2013-08-30restore_selected_frame: tweak warning.Pedro Alves2-2/+7
I noticed SRC_LINE has special handling within print_stack_frame (mid statement handling), so I audited all uses, and noticed the one in restore_selected_frame. I actually added this warning myself back in 2008, but reading back, I think we can do better. "reparsed frame" is probably confusing to users. Old: warning: Couldn't restore frame #2 in current thread, at reparsed frame #0 45 w = 0; (gdb) New: warning: Couldn't restore frame #2 in current thread. Bottom (innermost) frame selected: #0 foo () at foo.c:45 45 w = 0; (gdb) Tested on x86_64 Fedora 17. gdb/ 2013-08-30 Pedro Alves <palves@redhat.com> * thread.c (restore_selected_frame): Use SRC_AND_LOC, and change warning text.
2013-08-30bsd-kvm.c: Fix arguments to print_stack_frame.Pedro Alves2-3/+8
1 is SRC_AND_LOC. Then, this is passing -1 as print_level argument to print_stack_frame. -1 is not a valid print_level value (it's a regular boolean). But, it used to be, before <https://sourceware.org/ml/gdb-patches/2004-04/msg00585.html>. What happened is that bsd-kvm.c did not exist at the time of that patch, but went into the tree about a month after, without being adjusted to the new interface. Fixed now, exactly as e.g., ocd.c had been adjusted: > --- ocd.c 18 Jan 2004 19:26:51 -0000 1.28 > +++ ocd.c 23 Apr 2004 14:29:12 -0000 > @@ -225,7 +225,7 @@ > flush_cached_frames (); > registers_changed (); > stop_pc = read_pc (); > - print_stack_frame (get_selected_frame (), -1, 1); > + print_stack_frame (get_selected_frame (), 0, SRC_AND_LOC); gdb/ 2013-08-30 Pedro Alves <palves@redhat.com> * bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): Adjust arguments to print_stack_frame.
2013-08-30ada-tasks.c: write SRC_AND_LOC instead '1'.Pedro Alves2-1/+6
1 is SRC_AND_LOC. 2013-08-30 Pedro Alves <palves@redhat.com> * ada-tasks.c (task_command_1): Write SRC_AND_LOC instead '1'.
2013-08-30frame.h: Delete stale declaration.Pedro Alves2-3/+4
This is declaring a function that no longer exists. It was deleted back in 2003-01-13: ... show_and_print_stack_frame, print_only_stack_frame_stub, print_only_stack_frame): Delete functions. gdb/ 2013-08-30 Pedro Alves <palves@redhat.com> * frame.h (show_and_print_stack_frame): Delete declaration.
2013-08-302013-08-30 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon4-4/+43
PR python/15461 * python/py-arch.c (ARCHPY_REQUIRE_VALID): New macro. (archpy_name): Check for valid architecture. (archpy_disassemble): Ditto. 2013-08-30 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-arch.exp: Tests for invalid architecture.
2013-08-30daily updateAlan Modra1-1/+1
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.