aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-10-15ld.texinfo: "=" path-prefix forces sysroot in scripts not only SEARCH_DIRHans-Peter Nilsson2-1/+7
* ld.texinfo (input files in linker scripts): When mentioning behavior of first character "/" on scripts within sysroot, also mention that effect can be forced by prefixing with "=" and refer to SEARCH_DIR.
2014-10-15ld.texinfo: Clarify that sysroot affects "=" expansion.Hans-Peter Nilsson2-1/+7
* ld.texinfo (Options): When mentioning "=" and sysroot, mention that --sysroot controls it, not only through the configuration.
2014-10-15ChangeLog typo fixAlan Modra1-1/+1
2014-10-15Fix memory overflow issue about strncatChen Gang2-1/+5
If src contains n or more bytes, strncat() writes n+1 bytes to dest (n from src plus the terminating null byte). Therefore, the size of dest must be at least strlen(dest)+n+1. * config/tc-tic4x.c (md_assemble): Correct strncat size.
2014-10-15daily updateAlan Modra1-1/+1
2014-10-14[Ada] Error adding/subtracting pointer value to/from integral.Joel Brobecker7-0/+121
When trying to evaluate an expression which adds a pointer and an integral, the evaluation succeeds if the pointer is on the left handside of the operator, but not when it is on the right handside: (gdb) p something'address + 0 $1 = (system.address) 0x613418 <pck.something> (gdb) p 0 + something'address Argument to arithmetic operation not a number or boolean. Same issue when doing subtractions: (gdb) p something'address - 0 $2 = (system.address) 0x613418 <pck.something> (gdb) p 0 - something'address Argument to arithmetic operation not a number or boolean. This patch enhances the Ada expression evaluator to handle these two situations. gdb/ChangeLog: * ada-lang.c (ada_evaluate_subexp) <BINOP_ADD>: Add handling of the case where the second operand is a pointer. <BINOP_SUB>: Likewise. gdb/testsuite/ChangeLog: * gdb.ada/addr_arith: New testcase. Tested on x86_64-linux.
2014-10-14gdb.dwarf2: Testsuite 64-bit pointer truncation fixesMaciej W. Rozycki5-35/+74
* gdb.dwarf2/dw2-case-insensitive-debug.S: Handle 64-bit pointers. * gdb.dwarf2/dw2-case-insensitive.exp: Update accordingly. * gdb.dwarf2/dw2-skip-prologue.S: Handle 64-bit pointers. * gdb.dwarf2/dw2-skip-prologue.exp: Update accordingly.
2014-10-14Only call {set,clear}_semaphore probe function if they are not NULLSergio Durigan Junior4-10/+25
This patch is a response to what I commented on: <https://sourceware.org/ml/gdb-patches/2014-10/msg00046.html> When reviewing Jose's USDT probe support patches. Basically, in his patch he had to create dummy functions for the set_semaphore and the clear_semaphore methods of probe_ops (gdb/probe.h), because those functions were called inconditionally from inside gdb/breakpoint.c and gdb/tracepoint.c. However, the semaphore concept may not apply to all types of probes, and this is the case here: USDT probes do not have semaphores (although SDT probes do). Anyway, this is a simple (almost obvious) patch to guard the call to {set,clear}_semaphore. It does not introduce any regression on a Fedora 20 x86_64. I will apply it in a few days in case there is no comment. gdb/ChangeLog: 2014-10-14 Sergio Durigan Junior <sergiodj@redhat.com> * breakpoint.c (bkpt_probe_insert_location): Call set_semaphore only if it is not NULL. (bkpt_probe_remove_location): Likewise, for clear_semaphore. * probe.h (struct probe_ops) <set_semaphore>: Update comment. (struct probe_ops) <clear_semaphore>: Likewise. * tracepoint.c (start_tracing): Call set_semaphore only if it is not NULL. (stop_tracing): Likewise, for clear_semaphore.
2014-10-14Explicitly use language_c when evaluating a SDT probe argumentSergio Durigan Junior6-3/+159
Joel contacted me offlist with a question about a warning that one of his customers was seeing. The message came from the new linker-debugger interface, which uses SDT probes internally. The warning said: (gdb) run [...] warning: Probes-based dynamic linker interface failed. Reverting to original interface. Argument to arithmetic operation not a number or boolean. This should not have happened in the environment the customer was using (RHEL-6.x), so I found it strange. Another thing caught my attention: the last message, saying "Argument to arithmetic operation not a number or boolean.". Joel kindly investigated the issue further, and found the answer for this. To quote him: (gdb) set lang c (gdb) p 48+$ebp $4 = (void *) 0xffffd0f8 So far so good. But... (gdb) set lang ada (gdb) p 48+$ebp Argument to arithmetic operation not a number or boolean. Ooops! Interestingly, if you revert the order of the operands... (gdb) p $ebp+48 $5 = (access void) 0xffffd0f8 So the problem is doing pointer arithmetics when the language is set to Ada. I remembered that, during the parsing and the evaluation of SDT probe arguments, the code sets the language as current_language, because, at that time, I thought it was not necessary to worry about the language given that the code implements its own parser. I was wrong. So here is a patch to fix that, by setting the language as C, which should guarantee that the maths are done in the right way (TM). It was somewhat hard to find a reproducer for this issue. In the end, what I had to do was to create a testcase that used the %ebp register on some displacement (e.g., "-4(%ebp)"), which finally triggered the bug. I am not sure why I could not trigger it when using other registers, but I did not want to spend too much time investigating this issue, which seemed like an Ada issue. Also, because of this peculiar way to trigger the problem, the testcase only covers x86-like targets (i.e., i*86 and x86_64 with -m32). Joel kindly tested this for me, and it worked. I also ran a full regression test here on my Fedora 20 x86_64, and everything is fine. I will push this patch in a few days if there are no comments. gdb/ChangeLog: 2014-10-14 Sergio Durigan Junior <sergiodj@redhat.com> * stap-probe.c (stap_parse_argument): Initialize expout explicitly using language_c, instead of current_language. gdb/testsuite/ChangeLog: 2014-10-14 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.arch/stap-eval-lang-ada.S: Likewise. * gdb.arch/stap-eval-lang-ada.c: Likewise. * gdb.arch/stap-eval-lang-ada.exp: New file.
2014-10-14Convert mov to lea only if r_offset >= 2H.J. Lu3-0/+10
* elf32-i386.c (elf_i386_convert_mov_to_lea): Skip if relocation offset is less than 2. * elf64-x86-64.c (elf_x86_64_convert_mov_to_lea): Likewise.
2014-10-14Fix fail in mi-var-child.exp and mi-var-display.expYao Qi6-10/+69
Hi, I see the following fails on arm-none-eabi target, -var-list-children --simple-values struct_declarations ^M ^done,numchild="11",children=[...,child={name="struct_declarations.func_ptr_struct",exp="func_ptr_struct",numchild="0",value="0x0 <_ftext>",type="struct _struct_decl (*)(int, char *, long)",thread-id="1"},child={name="struct_declarations.func_ptr_ptr",exp="func_ptr_ptr",numchild="0",value="0x0 <_ftext>",type="struct _struct_decl *(*)(int, char *, long)",thread-id="1"},... (gdb) ^M FAIL: gdb.mi/mi-var-child.exp: listing of children, simple types: names, type and values, complex types: names and types -var-set-format weird.func_ptr_ptr natural^M ^done,format="natural",value="0x0 <_ftext>"^M (gdb) ^M FAIL: gdb.mi/mi-var-display.exp: set format variable weird.func_ptr_ptr in natural In the test, "0x0" is expected, but "0x0 <_ftext>" is in the output. Function pointers point to address zero, and tests assume there is no symbol on address zero. However, on my arm-none-eabi target, there is a code symbol _ftext on address zero, and test fails. Note that "set print symbol off" doesn't take effect for function pointer. int (*f) (void); f = main; (gdb) p f $1 = (int (*)(void)) 0x8048400 <main> (gdb) set print symbol off (gdb) p f $2 = (int (*)(void)) 0x8048400 <main> In order to erase the difference, we can assign some function address explicitly to function pointer, so the test behaves in a unique way. In this patch, we assign nothing1 and nothing2 to function pointers func_ptr_struct and func_ptr_ptr respectively, and update test as the source file is changed. gdb/testsuite: 2014-10-14 Yao Qi <yao@codesourcery.com> * gdb.mi/mi-var-child.c (nothing1): New function. (nothing2): New function. (do_children_tests): Set function pointers by nothing1 and nothing2. * gdb.mi/mi-var-child.exp: Step over new added statements. Update test to match the new output. * gdb.mi/var-cmd.c (nothing1): New function. (nothing2): New function. (do_children_tests): Set function pointers by nothing1 and nothing2. * gdb.mi/mi-var-display.exp: Update test to match output. Step to the line specified by $line_dct_nothing. Increase the number of lines to step.
2014-10-14Use mi_varobj_update in mi-var-child.exp and mi2-var-child.expYao Qi3-60/+83
Hi, I modify mi-var-child.exp and find that the pattern to match the output of -var-update * is quite complicated. However, it can be simplified by using mi_varobj_update. That is what this patch does. gdb/testsuite: 2014-10-14 Yao Qi <yao@codesourcery.com> * gdb.mi/mi-var-child.exp: Use mi_varobj_update to simplify tests. * gdb.mi/mi2-var-child.exp: Likewise.
2014-10-14Add NEWS markers for 2.25.Tristan Gingold7-0/+19
binutils/ 2014-10-14 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.25. gas/ 2014-10-14 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.25. ld/ 2014-10-14 Tristan Gingold <gingold@adacore.com> * NEWS: Add marker for 2.25.
2014-10-14Avoid undefined behaviour with signed expressionsAlan Modra9-26/+43
PR 17453 bfd/ * libbfd.c (COERCE16, COERCE32, COERCE64): Use unsigned types. (EIGHT_GAZILLION): Delete. binutils/ * dwarf.c (read_leb128): Avoid signed overflow. (read_debug_line_header): Likewise. gas/ * config/tc-i386.c (fits_in_signed_long): Use unsigned param and expression to avoid signed overflow. (fits_in_signed_byte, fits_in_unsigned_byte, fits_in_unsigned_word, fits_in_signed_word, fits_in_unsigned_long): Similarly. * expr.c (operand <'-'>): Avoid signed overflow. * read.c (s_comm_internal): Likewise.
2014-10-14Correct fscanf char field countAlan Modra2-3/+9
%<number>s as an fscanf format does not include the trailing NULL. PATH_MAX does include the trailing NULL. PR 17453 * readelf.c (process_program_headers): Correct fscanf format used for interpreter.
2014-10-14sparc-aout and sparc-coff breakageAlan Modra2-1/+7
* config/tc-sparc.c (sparc_md_end): Fix unused variable warnings.
2014-10-14daily updateAlan Modra1-1/+1
2014-10-13Change name of file name test in py-objfile.exp.Doug Evans2-1/+5
Tests should each have their own name. gdb/testsuite/ChangeLog: * gdb.python/py-objfile.exp: Change name of file name test.
2014-10-13Fix dw2-op-out-param.S CU offset values.Doug Evans2-20/+25
This test will pass if the CU is the first CU in the binary. If libc debugging info is installed it may not be, in which case the CU offset values are wrong. gdb/testsuite/ChangeLog: * gdb.dwarf2/dw2-op-out-param.S: Make DW_FORM_ref4 values be the offset from the start of the CU.
2014-10-13fix file paths in previous commitDoug Evans1-2/+2
2014-10-13Remove some code duplication in py-objfile.c, py-progspace.c.Doug Evans3-100/+70
gdb/ChangeLog: * py-objfile.c (objfpy_initialize): New function. (objfpy_new, objfile_to_objfile_object): Call it. * py-progspace.c (pspy_initialize): New function. (pspy_new, pspace_to_pspace_object): Call it.
2014-10-13Run eh_frame optimisation for relocatable linkAlan Modra5-17/+44
The idea here is to drop .eh_frame FDEs corresponding to dropped comdat group sections or linkonce sections, but not perform changes in encoding. bfd/ PR 17467 * elf-eh-frame.c (ENSURE_NO_RELOCS): Don't stop at first NONE reloc. (_bfd_elf_parse_eh_frame): When relocatable output, don't set flags enabling conversion of CIEs and FDEs to use relative encoding. (find_merged_cie): Similarly. (_bfd_elf_write_section_eh_frame): Don't edit FDEs when relocatable, except for CIE pointer. * elflink.c (bfd_elf_reloc_symbol_deleted_p): Return true for relocs against symbols in dropped comdat group sections. (bfd_elf_discard_info): Do some eh_frame optimisation when relocatable. ld/ * ldlang.c (lang_add_section): Set up map_head.s and map_tail.s when relocatable.
2014-10-13Fix "save breakpoints" for "catch" commandJan Kratochvil4-6/+29
gdb/ChangeLog 2014-10-13 Miroslav Franc <mfranc@redhat.com> Jan Kratochvil <jan.kratochvil@redhat.com> Fix "save breakpoints" for "catch" command. * break-catch-sig.c (signal_catchpoint_print_recreate): Add trailing newline. gdb/testsuite/ChangeLog 2014-10-13 Jan Kratochvil <jan.kratochvil@redhat.com> Yao Qi <yao@codesourcery.com> Fix "save breakpoints" for "catch" command. * gdb.base/catch-signal.exp: Add gdb_breakpoint "main". Remove -nonewline. Match also the added "main" line.
2014-10-13daily updateAlan Modra1-1/+1
2014-10-12Fix "save breakpoints" for "disable $bpnum" command.Jan Kratochvil5-2/+19
gdb/ChangeLog 2014-10-12 Miroslav Franc <mfranc@redhat.com> Fix "save breakpoints" for "disable $bpnum" command. * breakpoint.c (save_breakpoints): Add $bpnum for disable. gdb/testsuite/ChangeLog 2014-10-12 Jan Kratochvil <jan.kratochvil@redhat.com> Fix "save breakpoints" for "disable $bpnum" command. * gdb.base/save-bp.c (main): Add label. * gdb.base/save-bp.exp: Add 8th disabled breakpoint. Match it.
2014-10-12Use gdb_test_sequence in gdb.base/save-bp.exp.Jan Kratochvil2-2/+17
But IMO it is a functionality regression as: * gdb_test_sequence permits arbitary number of lines of text between those lines being matched. Former regex string did not allow it. This may make a difference if GDB regresses by printing some unexpected line after the breakpoint info line (like a "silent" line). > * \[\r\n\]+ can be used to anchor the beginning of the pattern, in the sense > of Perl regex ^ /m match. At least I have found such cases in existing > *.exp files so I used that. Using ^ really does not work. > > But I am not aware how to do Perl regex $ /m match. Using $ really does > not work. But this means that for example the trailing > ( \\((host|target) evals\\))? > on the line > "\[\r\n\]+\[ \t\]+stop only if i == 1( \\((host|target) evals\\))?" > originally made sense there but now it can be removed as it has no longer > any functionality there - it will match now any trailing line garbage. by Yao Qi: In this test case, ( \\((host|target) evals\\))? isn't needed in the pattern. What we test here is to save breakpoints into file and restore them from file. The contents saved in file are: break save-bp.c:31 condition $bpnum i == 1 the information about the place where the condition is evaluated isn't saved, so we don't need to check. Breakpoint save and restore has nothing to do with where the condition is evaluated (host or target). I am fine to leave it here now. gdb/testsuite/ChangeLog 2014-10-09 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/save-bp.exp (info break): Use gdb_test_sequence.
2014-10-12daily updateAlan Modra1-1/+1
2014-10-11Sync libiberty with upstream GCC.Iain Buclaw19-30/+2576
include/ChangeLog * libiberty.h (PEX_STDOUT_APPEND): New flag. (PEX_STDERR_APPEND): Likewise. * demangle.h (DMGL_DLANG): New macro. (DMGL_STYLE_MASK): Add DMGL_DLANG. (demangling_styles): Add dlang_demangling. (DLANG_DEMANGLING_STYLE_STRING): New macro. (DLANG_DEMANGLING): New macro. (dlang_demangle): New prototype. * longlong.h: Add __udiv_w_sdiv prototype. libiberty/ChangeLog * cp-demangle.c (d_substitution): Handle abi tags on abbreviation. * pex-common.h (struct pex_funcs): Add new parameter for open_write field. * pex-unix.c (pex_unix_open_write): Add support for new parameter. * pex-djgpp.c (pex_djgpp_open_write): Likewise. * pex-win32.c (pex_win32_open_write): Likewise. * pex-common.c (pex_run_in_environment): Likewise. * Makefile.in (CFILES): Add d-demangle.c. (REQUIRED_OFILES): Add d-demangle.o. * cplus-dem.c (libiberty_demanglers): Add dlang_demangling case. (cplus_demangle): Likewise. * d-demangle.c: New file. * testsuite/Makefile.in (really-check): Add check-d-demangle. * testsuite/d-demangle-expected: New file. * simple-object-elf.c (simple_object_elf_write_ehdr): Correctly handle objects with more than SHN_LORESERVE sections. (simple_object_elf_write_shdr): Add sh_link parameter. (simple_object_elf_write_to_file): Correctly handle objects with more than SHN_LORESERVE sections. * cp-demangle.c (d_dump): Only access field from s_fixed part of the union for DEMANGLE_COMPONENT_FIXED_TYPE. (d_count_templates_scopes): Likewise. * testsuite/demangler-fuzzer.c: New file. * testsuite/Makefile.in (fuzz-demangler): New rule. (demangler-fuzzer): Likewise. (mostlyclean): Clean up demangler fuzzer.
2014-10-11Enable qTStatus packet in case it is disabledYao Qi2-0/+10
Nowadays, we are using command "tstatus" to send a packet to GDBserver in order to check the connection. However, on the target doesn't support tracepoint, the following error is emitted before sending any packet to GDBserver. tstatus^M Trace can not be run on this target.^M (gdb) FAIL: gdb.server/server-kill.exp: tstatus qTStatus is disabled after receiving the empty reply during connecting to the remote target. When the test executes command "tstatus" again, remote_get_trace_status returns -1 at the very beginning, and no RSP packet is sent out. This patch is to enable qTStatus packet again. gdb/testsuite: 2014-10-11 Yao Qi <yao@codesourcery.com> * gdb.server/server-kill.exp: Execute command "set remote trace-status-packet on" before "tstatus".
2014-10-11Get GDBserver pid on remote targetYao Qi3-2/+33
Hi, We see the following fail in the real remote testing... (gdb) Executing on target: kill -9 29808 (timeout = 300) spawn [open ...]^M sh: 1: kill: No such process The test tries to kill gdbserver in this way: set server_pid [exp_pid -i [board_info target fileid]] remote_exec target "kill -9 $server_pid" in native testing, we'll get the pid of spawned gdbserver, however, in remote testing, we'll get the pid of ssh session, since we start gdbserver on the remote target through ssh. The pid on build doesn't exist on target. In this patch, we tweak server-kill.c to get the parent pid, which is the pid of GDBserver. GDB gets it and kill GDBserver on target. gdb/testsuite: 2014-10-11 Yao Qi <yao@codesourcery.com> * gdb.server/server-kill.c: Include sys/types.h and unistd.h. (main): Call getppid. * gdb.server/server-kill.exp: Set breakpoint on line "i = 0;" and continue to it. Read variable "server_pid".
2014-10-11Clean up server-kill.expYao Qi2-4/+4
This patch is to remove some lines which looks unnecessary. These lines were added when server-kill.exp was added. In the version 1, https://sourceware.org/ml/gdb-patches/2013-03/msg00691.html the test calls runto_main and delete breakpoint on main, +if ![runto_main] { + return -1 +} + +# Otherwise the breakpoint at 'main' would not cause insert breakpoints during +# first step. +delete_breakpoints However, in the version 2 https://sourceware.org/ml/gdb-patches/2013-03/msg00854.html runto_main is removed but delete_breakpoints is still there. AFAICS, the line of delete_breakpoints can be removed too. gdb/testsuite: 2014-10-11 Yao Qi <yao@codesourcery.com> * gdb.server/server-kill.exp: Remove "delete_breakpoints".
2014-10-11No longer pull thread list explicitlyYao Qi4-21/+9
As the result of the patch below, GDB updates thread list when a stop is presented to user. The tests don't have to fetch thread list explicitly. [PATCH 3/3] Fix non-stop regressions caused by "breakpoints always-inserted off" changes https://sourceware.org/ml/gdb-patches/2014-09/msg00734.html This patch is to remove the test code updating thread list. Run these three tests many times on arm-linux-gnueabi and x86-linux. No regressions. gdb/testsuite: 2014-10-11 Yao Qi <yao@codesourcery.com> * gdb.threads/thread-find.exp: Don't execute command "info threads". * gdb.threads/attach-into-signal.exp (corefunc): Likewise. * gdb.threads/linux-dp.exp: Don't check the condition $threads_created equals to zero.
2014-10-11daily updateAlan Modra1-1/+1
2014-10-10Delete IRIX supportPedro Alves23-1321/+52
This does most of the mechanical removal. IOW, the easy part. This doesn't touch procfs.c as that'd be a harder excision, potentially affecting Solaris. mips-tdep.c is left alone. E.g., I didn't delete the GDB_OSABI_IRIX enum value, nor references to it in mips-tdep.c. Some comments mentioning IRIX ABIs may still be relevant and I wouldn't know what to do with them. in That can always be done on a separate pass, preferably by someone who can test on MIPS. I didn't remove a reference to IRIX in testsuite/lib/future.exp, as I believe that code is imported from DejaGNU. Built and tested on x86_64 Fedora 20, with --enable-targets=all. Tested that building for --target=mips-sgi-irix6 on x86_64 Fedora 20 fails with: checking for default auto-load directory... $debugdir:$datadir/auto-load checking for default auto-load safe-path... $debugdir:$datadir/auto-load *** Configuration mips-sgi-irix6 is obsolete. *** Support has been REMOVED. make[1]: *** [configure-gdb] Error 1 make[1]: Leaving directory `/home/pedro/gdb/mygit/build-irix' make: *** [all] Error 2 gdb/ 2014-10-10 Pedro Alves <palves@redhat.com> * Makefile.in (ALL_TARGET_OBS): Remove mips-irix-tdep.o and solib-irix.o. (ALLDEPFILES): Remove mips-irix-tdep.c and solib-irix.c. (HFILES_NO_SRCDIR): Remove solib-irix.h. * NEWS: Mention that support for mips-sgi-irix5* mips-sgi-irix6* and been removed. * config/mips/irix5.mh, config/mips/irix6.mh: Delete files. * configure.ac: Remove references to IRIX. * configure.host: Add *-*-irix* to the obsolete hosts section. Remove all other references to irix. * irix5-nat.c, mips-irix-tdep.c, solib-irix.c, solib-irix.h: Delete files. gdb/testsuite/ 2014-10-10 Pedro Alves <palves@redhat.com> * gdb.base/bigcore.exp: Remove references to IRIX. * gdb.base/funcargs.exp: Likewise. * gdb.base/interrupt.exp: Likewise. * gdb.base/mips_pro.exp: Likewise. * gdb.base/nodebug.exp: Likewise. * gdb.base/setvar.exp: Likewise. * lib/gdb.exp (gdb_compile_shlib): Remove mips-sgi-irix* case.
2014-10-10Microblaze: Reject invalid target descriptionsAjit Kumar Agarwal2-1/+12
We currently validate the target description, but then forget to reject it if found invalid. Tested that incorrect descriptions are rejected and GDB warns about them. Tested the Microblaze Design with and without stack-protect registers. The gdb command "info registers" displayed the register correctly. If a stack protect design is not selected, only core registers are displayed. When the stack-protect registers are selected in the design, the core registers along with stack-protect registers are displayed. gdb/ 2014-10-10 Ajit Agarwal <ajitkum@xilinx.com> * microblaze-tdep.c (microblaze_gdbarch_init): If the description isn't valid, release the tdesc arch data and return NULL.
2014-10-10Cache the vsyscall/vDSO range per-inferiorPedro Alves2-2/+113
We're now doing a vsyscall/vDSO address range lookup whenever we fetch shared libraries, either through an explicit "info shared", or when the target reports new libraries have been loaded, in order to filter out the vDSO from glibc's DSO list. Before we started doing that, GDB would only ever lookup the vsyscall's address range once in the process's lifetime. Looking up the vDSO address range requires an auxv lookup (which is already cached, so no problem), but also reading the process's mappings from /proc to find out the vDSO's mapping's size. That generates extra RSP traffic when remote debugging. Particularly annoying when the process's mappings grow linearly as more libraries are mapped in, and we went through the trouble of making incremental DSO list updates work against gdbserver (when the probes-based dynamic linker interface is available). The vsyscall/vDSO is mapped by the kernel when the process is initially mapped in, and doesn't change throughout the process's lifetime, so we can cache its address range. Caching at this level brings GDB back to one and only one vsyscall address range lookup per process. Tested on x86_64 Fedora 20. gdb/ 2014-10-10 Pedro Alves <palves@redhat.com> * linux-tdep.c: Include observer.h. (linux_inferior_data): New global. (struct linux_info): New structure. (invalidate_linux_cache_inf, linux_inferior_data_cleanup) (get_linux_inferior_data): New functions. (linux_vsyscall_range): Rename to ... (linux_vsyscall_range_raw): ... this. (linux_vsyscall_range): New function; handles caching. (_initialize_linux_tdep): Register linux_inferior_data. Install inferior_exit and inferior_appeared observers.
2014-10-10PR symtab/14466: Work around PR libc/13097 "linux-vdso.so.1"Pedro Alves5-2/+170
With upstream glibc, GDB prints: warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? A bug's been filed for glibc a few years back: http://sourceware.org/bugzilla/show_bug.cgi?id=13097 but it's still not resolved. It's not clear whether there's even consensus that this is indeed a glibc bug. It would actually be nice if GDB also listed the vDSO in the shared library list, but there are some design considerations with that: - the vDSO is mapped by the kernel, not userspace, therefore we should load its symbols right from the process's start of life, even before glibc / the userspace loader sets up the initial DSO list. The program might even be using a custom loader or no loader. - that kind of hints at that solib.c should handle retrieving shared library lists from more than one source, and that symfile-mem.c's loading of the vDSO would be converted to load and relocate the vDSO's bfd behind the target_so_ops interface. - and then, once glibc links in the vDSO to its DSO list, we'd need to either: a) somehow hand over the vDSO from one target_so_ops to the other b) simply keep hiding glibc's entry. And then b) seems the simplest. With that in mind, this patch simply discards the vDSO from glibc's reported shared library list. We can match the vDSO address range with the addresses found iterating the dynamic linker list, to tell which dynamic linker entry is the vDSO. Tested on x86_64 Fedora 20. gdb/ 2014-10-10 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <palves@redhat.com> PR symtab/14466 * solib-svr4.c (svr4_read_so_list): Rename to ... (svr4_current_sos_1): ... this and change the function comment. (svr4_current_sos): New function. gdb/testsuite/ 2014-10-10 Jan Kratochvil <jan.kratochvil@redhat.com> Pedro Alves <palves@redhat.com> PR symtab/14466 * gdb.base/vdso-warning.c: New file. * gdb.base/vdso-warning.exp: New file.
2014-10-10Split vDSO range lookup to a gdbarch hookPedro Alves10-26/+120
We have a case in solib-svr4.c where we could reuse symfile-mem.c's vDSO range lookup. Since symfile-mem.c is not present in all configurations solib-svr4.c is, move that lookup to a gdbarch hook. This has the minor (good) side effect that we stop even trying the target_auxv_search lookup against targets that don't have a concept of a vDSO, in case symfile-mem.c happens to be linked in the build (--enable-targets=all). Tested on x86_64 Fedora 20. gdb/ 2014-10-10 Pedro Alves <palves@redhat.com> * arch-utils.c (default_vsyscall_range): New function. * arch-utils.h (default_vsyscall_range): New declaration. * gdbarch.sh (vsyscall_range): New hook. * gdbarch.h, gdbarch.c: Regenerate. * linux-tdep.c (linux_vsyscall_range): New function. (linux_init_abi): Install linux_vsyscall_range as vsyscall_range gdbarch hook. * memrange.c (address_in_mem_range): New function. * memrange.h (address_in_mem_range): New declaration. * symfile-mem.c (find_vdso_size): Delete function. (add_vsyscall_page): Use gdbarch_vsyscall_range.
2014-10-10infrun.c:normal_stop: Fix typo in commentPedro Alves2-1/+5
gdb/ 2014-10-10 Pedro Alves <palves@redhat.com> * infrun.c (normal_stop): Fix typo in comment.
2014-10-10daily updateAlan Modra1-1/+1
2014-10-09PR tdep/9390: Fix typo on xstorxstormy16-tdep.cSergio Durigan Junior2-1/+7
This patch fixes the bug described in PR tdep/9390, which is about a wrong check in the following code: ... /* optional copying of args in r2-r7 to r10-r13. */ /* Probably only in optimized case but legal action for prologue. */ else if ((inst & 0xff00) == 0x4600 /* 46SD mov rD, rS */ && (inst & 0x00f0) >= 0x0020 && (inst & 0x00f0) <= 0x0070 && (inst & 0x000f) >= 0x00a0 && (inst & 0x000f) <= 0x000d) ^^^^^^^^^^^^^^^^^^^^^^^^^ ... This condition will never trigger, and the fix proposed in the bug (which made sense to me) was to test against 0x000a. I tried finding documentation about this target, but couldn't find anything. I don't even know if it is still used, but decided to submit the fix anyway. Tested on my x86_64 Fedora 20 GNU/Linux. gdb/ChangeLog: 2014-09-16 Sergio Durigan Junior <sergiodj@redhat.com> PR tdep/9390 * xstorxstormy16-tdep.c (xstormy16_analyze_prologue): Fix possible typo when using logical AND to determine instruction type.
2014-10-09This is a series of patches that add support for the SPARC M7 cpu toJose E. Marchesi26-1513/+2171
binutils. They were discussed and approved here: https://sourceware.org/ml/binutils/2014-10/msg00038.html
2014-10-09Remove unused local variableYao Qi2-1/+5
As a result of commit b57bacec, local variable 'printed' is no longer used. This patch is to remove it. gdb: 2014-10-09 Yao Qi <yao@codesourcery.com> * infrun.c (handle_signal_stop): Remove local variable 'printed'.
2014-10-09daily updateAlan Modra1-1/+1
2014-10-08Add Yao Qi as global maintainerStan Shebs2-0/+5
gdb/ChangeLog: 2014-10-08 Stan Shebs <stan@codesourcery.com> * MAINTAINERS (GLOBAL MAINTAINERS): Add Yao Qi.
2014-10-08include/elf/aarch64.h: Add reloc numbers from ABI release 1.0Will Newton2-0/+86
Add the relocation numbers defined in ABI release 1.0 but missing from the current header. This will allow tools like objdump to dump objects that use these relocations. include/elf/ChangeLog: 2014-10-08 Will Newton <will.newton@linaro.org> * aarch64.h: Sync up relocations with ABI release 1.0.
2014-10-08Do not include unnecessary files in fbsd-tdep.cGary Benson2-3/+4
This commit makes fbsd-tdep.c not include string.h or gdb_assert.h as both are already included by defs.h. gdb/ChangeLog: * fbsd-tdep.c: Do not include string.h or gdb_assert.h.
2014-10-08Include common-exceptions.h in common-defs.hGary Benson5-3/+10
This commit includes common-exceptions.h in common-defs.h and removes all other inclusions. gdb/ChangeLog: * common/common-defs.h: Include common-exceptions.h. * exceptions.h: Do not include common-exceptions.h. gdb/gdbserver/ChangeLog: * server.h: Do not include common-exceptions.h.
2014-10-08Include cleanups.h in common-defs.hGary Benson6-3/+11
This commit includes cleanups.h in common-defs.h and removes all other inclusions. gdb/ChangeLog: * common/common-defs.h: Include cleanups.h. * common/common-exceptions.c: Do not include cleanups.h. * utils.h: Likewise. gdb/gdbserver/ChangeLog: * server.h: Do not include cleanups.h.
2014-10-08Remove spurious exceptions.h inclusionsGary Benson122-126/+124
defs.h includes utils.h, and utils.h includes exceptions.h. All GDB .c files include defs.h as their first line, so no file other than utils.h needs to include exceptions.h. This commit removes all such inclusions. gdb/ChangeLog: * ada-lang.c: Do not include exceptions.h. * ada-valprint.c: Likewise. * amd64-tdep.c: Likewise. * auto-load.c: Likewise. * block.c: Likewise. * break-catch-throw.c: Likewise. * breakpoint.c: Likewise. * btrace.c: Likewise. * c-lang.c: Likewise. * cli/cli-cmds.c: Likewise. * cli/cli-interp.c: Likewise. * cli/cli-script.c: Likewise. * completer.c: Likewise. * corefile.c: Likewise. * corelow.c: Likewise. * cp-abi.c: Likewise. * cp-support.c: Likewise. * cp-valprint.c: Likewise. * darwin-nat.c: Likewise. * dwarf2-frame-tailcall.c: Likewise. * dwarf2-frame.c: Likewise. * dwarf2loc.c: Likewise. * dwarf2read.c: Likewise. * eval.c: Likewise. * event-loop.c: Likewise. * event-top.c: Likewise. * f-valprint.c: Likewise. * frame-unwind.c: Likewise. * frame.c: Likewise. * gdbtypes.c: Likewise. * gnu-v2-abi.c: Likewise. * gnu-v3-abi.c: Likewise. * guile/scm-auto-load.c: Likewise. * guile/scm-breakpoint.c: Likewise. * guile/scm-cmd.c: Likewise. * guile/scm-frame.c: Likewise. * guile/scm-lazy-string.c: Likewise. * guile/scm-param.c: Likewise. * guile/scm-symbol.c: Likewise. * guile/scm-type.c: Likewise. * hppa-hpux-tdep.c: Likewise. * i386-tdep.c: Likewise. * inf-loop.c: Likewise. * infcall.c: Likewise. * infcmd.c: Likewise. * infrun.c: Likewise. * interps.c: Likewise. * interps.h: Likewise. * jit.c: Likewise. * linespec.c: Likewise. * linux-nat.c: Likewise. * linux-thread-db.c: Likewise. * m32r-rom.c: Likewise. * main.c: Likewise. * memory-map.c: Likewise. * mi/mi-cmd-break.c: Likewise. * mi/mi-cmd-stack.c: Likewise. * mi/mi-interp.c: Likewise. * mi/mi-main.c: Likewise. * monitor.c: Likewise. * nto-procfs.c: Likewise. * objc-lang.c: Likewise. * p-valprint.c: Likewise. * parse.c: Likewise. * ppc-linux-tdep.c: Likewise. * printcmd.c: Likewise. * probe.c: Likewise. * python/py-auto-load.c: Likewise. * python/py-breakpoint.c: Likewise. * python/py-cmd.c: Likewise. * python/py-finishbreakpoint.c: Likewise. * python/py-frame.c: Likewise. * python/py-framefilter.c: Likewise. * python/py-function.c: Likewise. * python/py-gdb-readline.c: Likewise. * python/py-inferior.c: Likewise. * python/py-infthread.c: Likewise. * python/py-lazy-string.c: Likewise. * python/py-linetable.c: Likewise. * python/py-param.c: Likewise. * python/py-prettyprint.c: Likewise. * python/py-symbol.c: Likewise. * python/py-type.c: Likewise. * python/py-value.c: Likewise. * python/python-internal.h: Likewise. * python/python.c: Likewise. * record-btrace.c: Likewise. * record-full.c: Likewise. * regcache.c: Likewise. * remote-fileio.c: Likewise. * remote-mips.c: Likewise. * remote.c: Likewise. * rs6000-aix-tdep.c: Likewise. * rs6000-nat.c: Likewise. * skip.c: Likewise. * solib-darwin.c: Likewise. * solib-dsbt.c: Likewise. * solib-frv.c: Likewise. * solib-ia64-hpux.c: Likewise. * solib-spu.c: Likewise. * solib-svr4.c: Likewise. * solib.c: Likewise. * spu-tdep.c: Likewise. * stack.c: Likewise. * stap-probe.c: Likewise. * symfile-mem.c: Likewise. * symmisc.c: Likewise. * target.c: Likewise. * thread.c: Likewise. * top.c: Likewise. * tracepoint.c: Likewise. * tui/tui-interp.c: Likewise. * typeprint.c: Likewise. * utils.c: Likewise. * valarith.c: Likewise. * valops.c: Likewise. * valprint.c: Likewise. * value.c: Likewise. * varobj.c: Likewise. * windows-nat.c: Likewise. * xml-support.c: Likewise.