aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-06-20x86: Don't check if AVX512 template requires AVX512VLH.J. Lu1-3/+2
If the ZMM operand in an AVX12 template also allows XMM or ZMM, this template must require AVX512VL. Drop the AVX512VL requirement check on such AVX512 templates. * config/tc-i386.c (check_VecOperands): Don't check if AVX512 template requires AVX512VL.
2023-06-20Use std::string in do_set_commandTom Tromey1-15/+7
do_set_command manually updates a string, only to copy it to a std::string and free the working copy. This patch changes this code to use std::string for everything, simplifying the code and removing a copy. Reviewed-by: John Baldwin <jhb@FreeBSD.org>
2023-06-20Use byte_vector in remote.c:readahead_cacheTom Tromey1-11/+8
This patch changes the remote.c readahead_cache to use gdb::byte_vector. This simplifies the code by removing manual memory management. Reviewed-by: John Baldwin <jhb@FreeBSD.org>
2023-06-20Use std::string in linux-osdata.cTom Tromey1-36/+15
I found some code in linux-osdata that manually managed a string. Replacing this with std::string simplifies it. Reviewed-by: John Baldwin <jhb@FreeBSD.org>
2023-06-20Use unique_xmalloc_ptr for mi_parse::commandTom Tromey5-20/+20
This changes mi_parse::command to be a unique_xmalloc_ptr and fixes up all the uses. This avoids some manual memory management. std::string is not used here due to how the Python API works -- this approach avoids an extra copy there. Reviewed-by: Keith Seitz <keiths@redhat.com>
2023-06-20Use std::string for MI tokenTom Tromey4-24/+19
This changes the MI "token" to be a std::string, removing some manual memory management. It also makes current_token 'const' in order to support this change. Reviewed-by: Keith Seitz <keiths@redhat.com>
2023-06-20Don't segfault in mips reloc special_functionsAlan Modra4-13/+30
A symbol defined in a section from a shared library will have a NULL section->output_section during linking. * elf32-mips.c (gprel32_with_gp): Don't segfault on NULL symbol->section->output_section. * elf64-mips.c (mips_elf64_gprel32_reloc): Likewise. * elfn32-mips.c (mips_elf_gprel16_reloc): Likewise. (mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise. (gprel32_with_gp, mips16_gprel_reloc): Likewise. * elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Likewise. (_bfd_mips_elf_generic_reloc): Likewise.
2023-06-20Automatic date update in version.inGDB Administrator1-1/+1
2023-06-19Revert "[gdb/testsuite] Clean standard_output_file dir in gdb_init"Tom de Vries2-3/+5
This reverts commit b7b77500dc56e5bc21473dd4f3dde2543d894557.
2023-06-19Fixes 28ab59607ef40b9571c0702ffba8f6aa6fb1b033Simon Farre1-3/+12
Python formatting errors fixed, introduced by this commit.
2023-06-19Fixes f1a614dc8f015743e9fe7fe5f3f019303f8db718Simon Farre1-0/+2
Fixes failure reported by buildbot regarding ill-formatted Python code.
2023-06-19gdb/Python: Added ThreadExitedEventSimon Farre10-0/+172
v6: Fix comments. Fix copyright Remove unnecessary test suite stuff. save_var had to stay, as it mutates some test suite state that otherwise fails. v5: Did what Tom Tromey requested in v4; which can be found here: https://pi.simark.ca/gdb-patches/87pmjm0xar.fsf@tromey.com/ v4: Doc formatting fixed. v3: Eli: Updated docs & NEWS to reflect new changes. Added a reference from the .ptid attribute of the ThreadExitedEvent to the ptid attribute of InferiorThread. To do this, I've added an anchor to that attribute. Tom: Tom requested that I should probably just emit the thread object; I ran into two issues for this, which I could not resolve in this patch; 1 - The Thread Object (the python type) checks it's own validity by doing a comparison of it's `thread_info* thread` to nullptr. This means that any access of it's attributes may (probably, since we are in "async" land) throw Python exceptions because the thread has been removed from the thread object. Therefore I've decided in v3 of this patch to just emit most of the same fields that gdb.InferiorThread has, namely global_num, name, num and ptid (the 3-attribute tuple provided by gdb.InferiorThread.ptid). 2 - A python user can hold a global reference to an exiting thread. Thus in order to have a ThreadExit event that can provide attribute access reliably (both as a global reference, but also inside the thread exit handler, as we can never guarantee that it's executed _before_ the thread_info pointer is removed from the gdbpy thread object), the `thread_info *` thread pointer must not be null. However, this comes at the cost of gdb.InferiorThread believing it is "valid" - which means, that if a user holds takes a global reference to that exiting event thread object, they can some time later do `t.switch()` at which point GDB will 'explode' so to speak. v2: Fixed white space issues and NULL/nullptr stuff, as requested by Tom Tromey. v1: Currently no event is emitted for a thread exit. This adds this functionality by emitting a new gdb.ThreadExitedEvent. It currently provides four attributes: - global_num: The GDB assigned global thread number - num: the per-inferior thread number - name: name of the thread or none if not set - ptid: the PTID of the thread, a 3-attribute tuple, identical to InferiorThread.ptid attribute Added info to docs & the NEWS file as well. Added test to test suite. Fixed formatting. Feedback wanted and appreciated.
2023-06-19gdb/dap - Getting thread namesSimon Farre1-1/+7
Renamed thread_name according to convention (_ first) When testing firefox tests, it is apparent that _get_threads returns threads with name field = None. I had initially thought that this was due to Firefox setting the names using /proc/pid/task/tid/comm, by writing directly to the proc fs the names, but apparently GDB seems to catch this, because I re-wrote the basic-dap.exp/c to do this specifically and it saw the changes. So I couldn't determine right now, what operation of name change that GDB does not pick up, but with this patch, GDB will pick up the thread names for an applications that set the name of a thread in ways that aren't obvious.
2023-06-19Fix illegal memory access implementing relocs in a fuzzed x86_64 object file.Nick Clifton2-0/+21
PR 30560 * elf64-x86-64.c (elf_x86_64_relocate_section): Add more checks for a valid relocation offset.
2023-06-19[gdb/testsuite] Add shared_gnat_runtime_has_debug_infoTom de Vries2-3/+26
Test-case gdb.ada/catch_ex_std.exp passes for me with package libada7-debuginfo installed, but after removing it I get: ... (gdb) catch exception some_kind_of_error^M Your Ada runtime appears to be missing some debugging information.^M Cannot insert Ada exception catchpoint in this configuration.^M (gdb) FAIL: gdb.ada/catch_ex_std.exp: catch exception some_kind_of_error ... The test-case contains a require gnat_runtime_has_debug_info to deal with this, but the problem is that this checks the static gnat runtime, while this test-case uses the shared one. Fix this by introducing shared_gnat_runtime_has_debug_info, and requiring that one instead. Tested on x86_64-linux. PR testsuite/30094 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=30094
2023-06-19[gdb/tui] Simplify tui_update_variablesTom de Vries1-15/+7
Simplify tui_update_variables by using template function assign_return_if_changed. Tested on x86_64-linux.
2023-06-19[gdb] Add template functions assign_return/set_if_changedTom de Vries2-0/+66
Add template functions assign_return_if_changed and assign_set_if_changed in gdb/utils.h: ... template<typename T> void assign_set_if_changed (T &lval, const T &val, bool &changed) { ... } template<typename T> bool assign_return_if_changed (T &lval, const T &val) { ... } ... This allows us to rewrite code like this: ... if (tui_border_attrs != entry->value) { tui_border_attrs = entry->value; need_redraw = true; } ... into this: ... need_redraw |= assign_return_if_changed<int> (tui_border_attrs, entry->value); ... or: ... assign_set_if_changed<int> (tui_border_attrs, entry->value, need_redraw); ... The names are a composition of the functionality. The functions: - assign VAL to LVAL, and either - return true if the assignment changed LVAL, or - set CHANGED to true if the assignment changed LVAL. Tested on x86_64-linux.
2023-06-19riscv: Use run-time endianess for floating point literalsAndreas Schwab4-1/+20
gas/ PR binutils/30551 * config/tc-riscv.c (md_atof): Use target_big_endian instead of TARGET_BYTES_BIG_ENDIAN. * testsuite/gas/riscv/float-be.d: New file. * testsuite/gas/riscv/float-le.d: New file. * testsuite/gas/riscv/float.s: New file.
2023-06-19Automatic date update in version.inGDB Administrator1-1/+1
2023-06-18[gdb/testsuite] Clean standard_output_file dir in gdb_initTom de Vries2-5/+3
In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some files at the start of the test-case: ... remote_file host delete [standard_output_file prog.o] remote_file host delete [standard_output_file prog.ali] ... Replace this with cleaning up the entire directory instead, for all test-cases. Tested on x86_64-linux. Suggested-By: Tom Tromey <tom@tromey.com> Reviewed-By: Tom Tromey <tom@tromey.com>
2023-06-18Automatic date update in version.inGDB Administrator1-1/+1
2023-06-17[gdb/testsuite] Remove f-string in gdb.python/py-unwind.pyTom de Vries1-1/+1
on openSUSE Leap 42.3, with python 3.4, I run into a "SyntaxError: invalid syntax" due to usage of an f-string in test-case gdb.python/py-unwind.py. Fix this by using string concatenation using '+' instead. Tested on x86_64-linux.
2023-06-17[gdb/testsuite] Add nopie in a few test-casesTom de Vries4-3/+18
When running test-case gdb.arch/i386-disp-step.exp with target board unix/-m32/-fPIE/-pie we run into: ... gdb compile failed, ld: i386-disp-step0.o: warning: relocation in read-only section `.text' ld: warning: creating DT_TEXTREL in a PIE ... Fix this by adding nopie in the compilation flags. Likewise in a few other test-cases. Tested on x86_64-linux.
2023-06-17[gdb/testsuite] Use require in gdb.dwarf2/implptr.expTom de Vries1-4/+3
In test-case gdb.dwarf2/implptr.exp I noticed: ... } elseif {![is_x86_like_target]} { # This test can only be run on x86 targets. unsupported "needs x86-like target" return 0 } ... Use instead "require is_x86_like_target". Tested on x86_64-linux.
2023-06-17Automatic date update in version.inGDB Administrator1-1/+1
2023-06-16[gdb/testsuite] Clean up before compilation in gdb.ada/call-no-debug.expTom de Vries1-0/+5
Running test-case gdb.ada/call-no-debug.exp with target board unix/-m64 works fine, but if we run it again with target board unix-m32, we run into: ... gnatlink prog.ali -m32 -g -o prog^M ld: i386:x86-64 architecture of input file `b~prog.o' is incompatible with \ i386 output^M ... This is due to compiling with no-force. The test-case: - first compiles pck.adb into pck.o (without debug info), and - then compiles prog.adb and pck.o into prog (with debug info). Using no-force in the second compilation make sure that pck.adb is not compiled again, with debug info. But it also means it will pick up intermediate files related to prog.adb from a previous compilation. Fix this by removing prog.o and prog.ali before compilation. Tested on x86_64-linux.
2023-06-16[gdb/testsuite] Use %progbits in gdb.arch/thumb*.STom de Vries3-3/+3
In commit 0f2cd53cf4f ("[gdb/testsuite] Handle missing .note.GNU-stack") I updated a gdb.arch/arm*.S test-case to use %progbits rather than @progbits, but failed to do so for gdb.arch/thumb*.S. Fix this oversight. Tested on arm-linux-gnueabihf.
2023-06-16LoongArch: Fix ld "undefined reference" error with --enable-sharedmengqinggang3-1/+10
Because _bfd_read_unsigned_leb128 is hidden visibility, so it can't be referenced out of shared object. The new function loongarch_get_uleb128_length just used to call _bfd_read_unsigned_leb128. bfd/ChangeLog: * elfxx-loongarch.c (loongarch_get_uleb128_length): New function. * elfxx-loongarch.h (loongarch_get_uleb128_length): New function. gas/ChangeLog: * config/tc-loongarch.c (md_apply_fix): Use loongarch_get_uleb128_length.
2023-06-16gdb: update IRC reference from Freenode to Libera.ChatAndrew Burgess1-1/+1
It's been some time since the switch from Freenode to Libera.Chat, however, there's still a reference to Freenode in the 'gdb --help' output. Lets update that.
2023-06-16x86: shrink Masking insn attribute to a single bit (boolean)Jan Beulich4-1664/+1645
The logic can actually be expressed with less code that way, utilizing that there are common patterns of when which form of masking is permitted. This then also eliminates the large set of open-codings of BOTH_MASKING in the opcode table.
2023-06-16Correct ld-elf/eh5 test for hppa64Alan Modra1-17/+21
Commit 3c0afdb78988 regressed this test for hppa64, because the test had been enabled for hppa64 in the time between the mips changes and their reversion. This patch isn't just a simple reapply, I recreated the testsuite change by hand for hppa64: Two lines in eh5.d might need further changes for mips.
2023-06-16Automatic date update in version.inGDB Administrator1-1/+1
2023-06-15binutils/NEWS: Mention Sony Allegrex MIPS CPU supportMaciej W. Rozycki1-0/+5
Mention the addition of Sony Allegrex processor support to the MIPS port. binutils/ * NEWS: Mention Sony Allegrex MIPS CPU support.
2023-06-15MIPS/GAS/testsuite: Fix `-modd-spreg'/`-mno-odd-spreg' test invocationsMaciej W. Rozycki1-5/+8
Reformat `-modd-spreg'/`-mno-odd-spreg' test invocations in mips.exp to fit in 79 columns gas/ * testsuite/gas/mips/mips.exp: Reformat `-modd-spreg'/`-mno-odd-spreg' test invocations.
2023-06-15Add additional missing Allegrex CPU instructionsDavid Guillen Fandos4-14/+123
Allegrex supports some MIPS32 and MIPS32r2 instructions (albeit with some encoding differences) such as bit manipulation (ins/ext) and MLA (madd/msub). It also features some new instructions like wsbw and min/max or device-specific ones such as mfic. Signed-off-by: David Guillen Fandos <david@davidgf.net>
2023-06-15Add rotation instructions to MIPS Allegrex CPUDavid Guillen Fandos3-9/+9
The Allegrex CPU supports bit rotation instructions as described in the MIPS32 release 2 CPU (even though it is a MIPS-2 based CPU). Signed-off-by: David Guillen Fandos <david@davidgf.net>
2023-06-15Add MIPS Allegrex CPU as a MIPS2-based CPUDavid Guillen Fandos22-44/+685
The Allegrex CPU was created by Sony Interactive Entertainment to power their portable console, the PlayStation Portable. The pspdev organization maintains all sorts of tools to create software for said device including documentation. Signed-off-by: David Guillen Fandos <david@davidgf.net>
2023-06-15GAS/doc: Correct Tag_GNU_MIPS_ABI_MSA attribute descriptionMaciej W. Rozycki1-3/+4
Rewrite the paragraph to match the style of Tag_GNU_MIPS_ABI_FP text immediately above, correcting grammar and formatting at the same time. gas/ * doc/as.texi (MIPS Attributes): Correct Tag_GNU_MIPS_ABI_MSA attribute description.
2023-06-15Revert "MIPS: gas: alter 64 or 32 for mipsisa triples if march is implicit"Maciej W. Rozycki2-162/+122
This reverts commit 094025a30bb2da19df3990e0c0ff8167af823aa1. It was applied unapproved.
2023-06-15Revert "MIPS: default r6 if vendor is img"Maciej W. Rozycki3-15/+3
This reverts commit be0d391f22fe6009c3be907753975a984cbbcc23. It was applied unapproved.
2023-06-15Revert "MIPS: fix r6 testsuites"Maciej W. Rozycki182-621/+349
This reverts commit ffc528aed56b9e2c171137da28690a9bb6861b0b. It was applied unapproved.
2023-06-15Revert "MIPS: fix -gnuabi64 testsuite"Maciej W. Rozycki58-797/+524
This reverts commit cb81e84c72933a7fad10b75b7e270d92d8d65251. It was applied unapproved.
2023-06-15Revert "MIPS: fix some ld testcases with compiler"Maciej W. Rozycki11-77/+16
This reverts commit a0631c1501c113c04891c9a24a9ff5276257f28d. It was applied unapproved.
2023-06-15Revert "MIPS: add MT ASE support for micromips32"Maciej W. Rozycki8-730/+18
This reverts commit acce83dacff0ce43677410c67aaae32817afe991. It was applied unapproved.
2023-06-15Revert "MIPS: sync oprand char usage between mips and micromips"Maciej W. Rozycki2-30/+12
This reverts commit 5b207b919483f67311a73dfc1de8897ecfd8e776. It was applied unapproved.
2023-06-15Re: Add some expected failures for bfin linker testsAlan Modra16-17/+19
After commit 7ade0f1582c4 I was seeing bfin-elf +XPASS: weak symbols, and on looking into the bfin targets a little, discovered we have two bfin-linux targets. One, bfin-uclinux, is like bfin-elf in that ld -m elf32bfin is the default, and the other, bfin-linux-uclibc where ld -m elf32bfinfd is the default. So putting bfin-*-*linux* in test xfails or elsewhere is wrong. We want bfin-*-linux* instead to just select the fdpic bfin target. This patch corrects wrong bfin target triples in the ld testsuite, not just the recent change but others I'd added to xfails too. It also fixes the bfin-linux-uclibc ld-elf/64ksec fail
2023-06-15vms write_archive memory leaksAlan Modra1-0/+2
This fixes two memory leaks in the vms archive handling. * vms-lib.c (_bfd_vms_lib_build_map): Free input symbols. (_bfd_vms_lib_write_archive_contents): Free archive map symbols.
2023-06-15Automatic date update in version.inGDB Administrator1-1/+1
2023-06-14[gdb/testsuite] Fix gdb.base/step-over-exit.exp with glibc debuginfoTom de Vries1-1/+1
In test-case gdb.base/step-over-exit.exp, we set a breakpoint on _exit and continue, expecting to hit the breakpoint. Without glibc debug info installed, we have with target board unix/-m64: ... Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0x00007ffff7d46aee in \ _exit () from /lib64/libc.so.6^M (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit ... and with target board unix/-m32: ... Thread 2.1 "step-over-exit" hit Breakpoint 2.2, 0xf7d84c25 in _exit () from \ /lib/libc.so.6^M (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit ... However after installing debug info (packages glibc-debuginfo and glibc-32bit-debuginfo), we have for -m64 (note: __GI__exit instead of _exit): ... Thread 2.1 "step-over-exit" hit Breakpoint 2.2, \ __GI__exit (status=<optimized out>) at \ ../sysdeps/unix/sysv/linux/_exit.c:27^M 27 {^M (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit ... and -m32 (note: _Exit instead of _exit): ... Thread 2.1 "step-over-exit" hit Breakpoint 2.2, _Exit () at \ ../sysdeps/unix/sysv/linux/i386/_exit.S:24^M 24 ../sysdeps/unix/sysv/linux/i386/_exit.S: No such file or directory.^M (gdb) FAIL: gdb.base/step-over-exit.exp: continue to exit ... The gdb_test allows for both _exit and __GI__exit, but not _Exit: ... gdb_test "continue" \ "Continuing\\..*Breakpoint $decimal.*_exit \\(.*\\).*" \ "continue to exit" ... Fix this by allowing _Exit as well. Tested on x86_64-linux.
2023-06-14Add some expected failures for bfin linker testsNick Clifton17-15/+22