aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2025-05-29gdb: update corner case when canonicalizing riscv syscall namesGuinevere Larsen1-1/+1
The script syscalls/riscv-canonicalize-syscall-gen.py has been recently introduced to help support record-full in riscv systems. However, it was developed before commit 432eca4113d5748ad284a068873455f9962b44fe, which made the GDB enum more consistent, which forced the python script to have a corner case for the "gdb_old_mmap" case. Since the aforementioned commit has already been merged, we need to update the special case for the mmap syscall. A special case is still needed because the script would expect that the glibc sources call the syscall "old_mmap", or that gdb call it "gdb_sys_mmap", neither of which happens unfortunately. This commit doesn't change the .c file because it was already fixed by a different commit, 65ab41b7d5c612b6000b28f4c50bb256b2a9e22b, which was pushed as obvious to fix the build issues. Approved-By: Tom Tromey <tom@tromey.com>
2025-05-29gdb/dap: fix completion request for empty stringsJorenar1-2/+5
When DAP completion requests receives empty string to complete, the script crashes due trying to access element -1 from list being a result of `text.splitlines()` (which for `text == ""` evaluates into empty list). This patch adds simple check if `text` is populated, and when it is not, skips transformations and assigns correct result directly. Approved-By: Tom Tromey <tom@tromey.com>
2025-05-29gdb, gdbsupport: fix all `;;` instancesSimon Marchi7-7/+7
I forgot to fix a `;;` typo when pushing a previous patch. Fix it, and fix all the other instances I could find in the code base. Change-Id: I298f9ffb1a5157925076ef67b439579b1aeeaa2b
2025-05-29Fix build when RUSAGE_THREAD is not available & add warningPedro Alves4-3/+87
Building current GDB on Cygwin, fails like so: /home/pedro/gdb/src/gdbsupport/run-time-clock.cc: In function ‘void get_run_time(user_cpu_time_clock::time_point&, system_cpu_time_clock::time_point&, run_time_scope ’: /home/pedro/gdb/src/gdbsupport/run-time-clock.cc:52:13: error: ‘RUSAGE_THREAD’ was not declared in this scope; did you mean ‘SIGEV_THREAD’? 52 | who = RUSAGE_THREAD; | ^~~~~~~~~~~~~ | SIGEV_THREAD Cygwin does not implement RUSAGE_THREAD. Googling around, I see Cygwin is not alone, other platforms don't support it either. For example, here is someone suggesting an alternative for darwin/macos: https://stackoverflow.com/questions/5652463/equivalent-to-rusage-thread-darwin Fix this by falling back to process scope if thread scope can't be supported. I chose this instead of returning zero usage or some other constant, because if gdb is built without threading support, then process-scope run time usage is the right info to return. But instead of falling back silently, print a warning (just once), like so: (gdb) maint set per-command time on ⚠️ warning: per-thread run time information not available on this platform ... so that developers on other platforms at least have a hint upfront. This new warning also shows on platforms that don't have getrusage in the first place, but does not show if the build doesn't support threading at all. New tests are added to gdb.base/maint.exp, to expect the warning, and also to ensure other "mt per-command" sub commands don't trigger the new warning. Change-Id: Ie01b916b62f87006f855e31594a5ac7cf09e4c02 Approved-By: Simon Marchi <simon.marchi@efficios.com> Approved-By: Tom Tromey <tom@tromey.com>
2025-05-29gdb/solib: make solib_ops::solib_create_inferior_hook optionalSimon Marchi2-8/+3
The solib-target implementation of solib_create_inferior_hook is empty. Make that method / function pointer optional. Change-Id: Ie27b8d2c4fc6df74069ac8f88fbe69cf88a6662d Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/solib: make solib_ops::in_dynsym_resolve_code optionalSimon Marchi3-21/+6
Two solib ops implementations have dummy implementations for the in_dynsym_resolve_code callback. Make it optional, to avoid this. Change-Id: I786776fb82ce1b96335a97713fbfe8074c84c00c Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/solib: make implementation of solib_ops::open_symbol_file_object optionalSimon Marchi6-50/+7
The only solib implementation that implements open_symbol_file_object is SVR4. All others just return 0. Make it optional, to avoid having these empty functions. Change-Id: I835197a73323d39231d071f9a9eaac2553f10726 Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/solib: boolify in_dynsym_resolve_code functionsSimon Marchi12-31/+30
Change-Id: I66f5986e1a2452e3817f326d908b2e49f99e2fc6 Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/solib: move solist.h content to solib.hSimon Marchi28-260/+211
I don't think that the file solist.h is useful. It would make sense to have `struct solib` in solib.h. And then, all that would remain is `struct solib_ops` and some solib-related function declarations. So, move it all to solib.h. Change-Id: I20ecf19787c378066f2c7a6a8a737c1db7c55d9a Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/progspace: rename progspace::so_list, make privateSimon Marchi2-12/+12
Rename the field to m_solib_list, make it private. Update users to go through the accessor. Change-Id: Id720c3a0b1781f4acf31e0dc626f1bd23ed8b39a Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb: fix stale references to so_listSimon Marchi11-27/+27
Adjust some comments and function names that refer to the ancient so_list type. Update some other stale comments in solib-svr4.c at the same time. Change-Id: Ia42efa6554d0cc6abb4183b6bffc96c6358c5735 Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29gdb/solib: remove so_ prefix from so_name and so_original_nameSimon Marchi14-67/+66
The `so_` prefix is unnecessary here, it's already clear by the fact that they are field of the solib type (and previously so_list). Change-Id: I2c6773afc121d7631901e602913ea8a068840d0b Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-29Automatic date update in version.inGDB Administrator1-1/+1
2025-05-28[gdb/symtab] Note errors in process_skeletonless_type_unitsTom de Vries3-19/+26
With a hello world a.out, and using the compiler flags from target board dwarf5-fission-debug-types: ... $ gcc -gdwarf-5 -fdebug-types-section -gsplit-dwarf ~/data/hello.c ... I run into: ... $ gdb -q -batch a.out terminate called after throwing an instance of 'gdb_exception_error' ... What happens is that an error is thrown due to invalid dwarf, but the error is not caught, causing gdb to terminate. In a way, this is a duplicate of PR32861, in the sense that we no longer run into this after: - applying the proposed patch (work around compiler bug), or - using gcc 9 or newer (compiler bug fixed). But in this case, the failure mode is worse than in PR32861. Fix this by catching the error in cooked_index_worker_debug_info::process_skeletonless_type_units. With the patch, we get instead: ... $ gdb -q -batch a.out Offset from DW_FORM_GNU_str_index or DW_FORM_strx pointing outside of \ .debug_str.dwo section in CU at offset 0x0 [in module a.out] ... While we're at it, absorb the common use of cooked_index_worker_result::note_error: ... try { ... } catch (gdb_exception &exc) { (...).note_error (std::move (exc)); } ... into the method and rename it to catch_error, resulting in more compact code for the fix: ... (...).catch_error ([&] () { ... }); ... While we're at it, also use it in cooked_index_worker_debug_info::process_units which looks like it needs the same fix. Tested on x86_64-linux. PR symtab/32979 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32979
2025-05-28elfedit: segv with --enable-x86-featureAlan Modra1-1/+12
PR 33024 PR 33025 * elfedit.c (update_gnu_property): Sanity check program headers.
2025-05-28Further rs_code_align support refinementAlan Modra7-17/+39
Don't write the repeating nop pattern if it won't be used.
2025-05-28Call restore_original_signal_state after GDB forks.Alexandra Hájková1-0/+4
When I run GDB under Valgrind, GDB seems to segfault displaying: Fatal signal: Segmentation fault ----- Backtrace ----- 0x2803f7 ??? 0x3c9696 ??? 0x3c9899 ??? 0x55f8fcf ??? 0x486c000 ??? --------------------- A fatal error internal to GDB has been detected, further debugging is not possible. GDB will now terminate. This is a bug, please report it. For instructions, see: <https://www.gnu.org/software/gdb/bugs/>. warning: linux_ptrace_test_ret_to_nx: PC 0x5821c09d is neither near return address 0x486c000 nor is the return instruction 0x4f8f4a! but then, acts like nothing happened and excutes normally. This is because it's the child from linux_ptrace_test_ret_to_nx that segfaults and parent GDB carries on normally. Restore the original signal states to not to print confusing backtrace. After restoring, only such warning is displayed: warning: linux_ptrace_test_ret_to_nx: WSTOPSIG 19 is neither SIGTRAP nor SIGSEGV!
2025-05-28PR 33029 segv in dwarf2_finish with --gdwarf-5Alan Modra1-2/+6
Specifying --gdwarf-5 with a source lacking a ".file 0" directive results in this segfault. * dwarf2dbg.c (out_debug_str): Use files[1] if files[0] is empty regardless of dwarf level.
2025-05-28PR 33023 memory leak in objdump when specifying --endianAlan Modra1-7/+13
* objdump.c (disassemble_data): Free modified xvec and replace original.
2025-05-28PR 33021, buffer overflow in write_dwarf_eh_frame_hdrAlan Modra1-1/+1
* elf-eh-frame.c (write_dwarf_eh_frame_hdr): Use size of contents, not section size, in bfd_set_section_contents call.
2025-05-28PR 33018 segv in elf_x86_64_scan_relocsAlan Modra1-1/+7
* elf64-x86-64.c (elf_x86_64_scan_relocs): Error on NULL howto. Use bfd_reloc_offset_in_range.
2025-05-28Automatic date update in version.inGDB Administrator1-1/+1
2025-05-27gdb: make objfile_has_full_symbols and objfile_has_symbols methods of objfileSimon Marchi5-23/+20
They seem like good candidates to become methods, just like objfile::has_partial_symbols. Change-Id: Ic6df83012629c1137708b8ceb327f9868d8abcb5 Reviewed-By: Guinevere Larsen <guinevere@redhat.com>
2025-05-26gdb/testsuite: Clarify -lbl option in gdb_test_multipleThiago Jung Bauermann1-1/+4
I was a bit confused about the -lbl option in gdb_test_multiple, and needed to read its implementation to determine that it would be useful for my needs. Explicitly mention what the option does and why it's useful to hopefully help other developers. Reviewed-By: Keith Seitz <keiths@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-26gdb/testsuite: Fix flakiness in gdb.base/default.expThiago Jung Bauermann1-60/+147
The Linaro CI runs the GDB testsuite using the read1 tool, which significantly increases the time it takes DejaGNU to read inferior output. On top of that sometimes the test machine has higher than normal load, which causes tests to run even slower. Because gdb.base/default.exp tests some verbose commands such as "info set", it sometimes times out while waiting for the complete command output when running in the Linaro CI environment. Fix this problem by consuming each line of output from the most verbose commands with gdb_test_multiple's -lbl (line-by-line) option — which causes DejaGNU to reset the timeout after each match — and also by breaking up regular expressions that try to match more than 2000 characters (the default Expect buffer size) in one go into multiple matches. Some tests use the same regular expression, so I created a procedure for them. This is the case for "i" / "info", "info set" / "show", and "set print" tests. The tests for "show print" don't actually test their output, so this patch improves them by checking some lines of the output. Reviewed-By: Keith Seitz <keiths@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-27Automatic date update in version.inGDB Administrator1-1/+1
2025-05-27ALPHA_R_OP_STOREAlan Modra1-55/+62
In commit db4ab410dec3 I rewrote OP_STORE handling to support writing near the end of a section. The rewrite had some bugs, fixed in commit 3e02c4891dcb. However I wasn't entirely happy with the code writing the bitfield: - it doesn't support 64-bit fields with a bit offset, - the code is duplicated and inelegant, - the stack ought to be popped whenever seeing one of these relocs, even if the reloc can't be applied. This patch fixes all of the above. In addition, it is clear from the OP_STORE description in the ABI that a 64-bit field is encoded as 0 in r_size, so I've decoded that in alpha_ecoff_swap_reloc_in. The aborts there are not appropriate as they can be triggered by user input (fuzzed object files). Also, stack underflow wasn't checked in alpha_relocate_section. * coff-alpha.c (alpha_ecoff_swap_reloc_in): Replace aborts with asserts. Decode ALPHA_R_OP_STORE r_size of zero. (write_bit_field): New function. (alpha_ecoff_get_relocated_section_contents): Use it. (alpha_relocate_section): Here too. Catch stack underflow.
2025-05-26libsframe: handle SFrame FRE start/end IP offsets as unsignedJens Remus1-6/+10
The SFrame FRE start address (fre_start_addr) is defined as unsigned 32-bit integer, as it is an offset from SFrame FDE function start address (sfde_func_start_address) and functions only grow upwards (towards higher addresses). The SFrame FRE start IP offset is a synonym to the SFrame FRE start address. The SFrame FRE end IP offset is either the value of the subsequent FDE start address minus one, if that exists, or the FDE function size minus one otherwise. Both should therefore be handled as unsigned 32-bit integer. In libsframe the "lookup PC" (pc) and SFrame FDE function start address (sfde_func_start_address) are both signed integers, as they are actually offsets from the SFrame section. The unsigned FDE start/end IP offsets may therefore only be safely compared against the offset of the lookup PC from FDE function start address if the FDE function start address is lower or equal to the lookup PC, as this guarantees the offset to be always positive: Given: lookup_pc = pc - sframe_addr sfde_func_start_address = func_start_addr - sframe_addr If the FDE function start address is lower or equal than the lookup PC, which both are signed offsets from SFrame section, then the function start address is also lower or equal to the PC, which are both unsigned: sfde_func_start_address <= lookup_pc func_start_addr - sframe_addr <= pc - sframe_addr func_start_addr <= pc With that the offset of the lookup PC from FDE function start address (lookup_pc - sfde_func_start_address) must always be positive, if FDE function start address is lower or equal to the lookup PC: lookup_pc - sfde_func_start_address = pc - sframe_addr - (func_start_addr - sframe_addr) = pc - func_start_addr libsframe/ * sframe.c (sframe_find_fre): Define and handle start_ip_offset and end_ip_offset as unsigned (same as FRE fre_start_addr). (sframe_fre_check_range_p): Likewise. Define PC offset (from function start address) as unsigned. Signed-off-by: Jens Remus <jremus@linux.ibm.com>
2025-05-26libsframe: stop search for SFrame FRE if its start IP is greater than PCJens Remus1-6/+3
The SFrame FREs for an SFrame FDE are sorted on their start address. Therefore the linear search for a matching SFrame FRE can be stopped, if its start address is greater than the searched for PC. libsframe/ * sframe.c (sframe_find_fre): Stop search if FRE's start IP is greater than PC. Signed-off-by: Jens Remus <jremus@linux.ibm.com>
2025-05-26libsframe: correct binary search for SFrame FDEJens Remus2-10/+11
sframe_get_funcdesc_with_addr_internal erroneously returns the last FDE, if its function start address is lower than the searched for address. Simplify the binary search for a SFrame FDE for a given address. Only return an FDE, if the searched for address is within the bounds of the FDE function start address and function size. libsframe/ * sframe.c (sframe_get_funcdesc_with_addr_internal): Correct binary search for SFrame FDE. libsframe/testsuite/ * libsframe.find/plt-findfre-1.c: Add test for out of range PLT6. Signed-off-by: Jens Remus <jremus@linux.ibm.com>
2025-05-26libsframe: testsuite: improve findfunc-1 testcaseIndu Bhagat1-46/+95
The testcase had usages of some magic numbers, making it difficult to keep up when format changes come along. libsframe/testsuite/ * libsframe.find/findfunc-1.c: Restructure a bit. Run test for two ways of placement of .sframe and .text.
2025-05-26libsframe: testsuite: improve findfre-1 testcaseIndu Bhagat1-36/+75
The testcase had usages of some magic numbers, making it difficult to keep up when format changes come along. libsframe/testsuite/ * libsframe.find/findfre-1.c: Restructure a bit. Run test for two ways of placement of .sframe and .text.
2025-05-26libsframe: fix issue finding FRE in PCMASK type SFrame FDEsIndu Bhagat2-50/+58
SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK are used for repetitive code patterns, e.g., pltN entries. For SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK, sframe_fre_check_range_p erroneously tested the given PC instead of the masked PC offset from function start address. Therefore it only worked correctly by chance, e.g., if the function start address was aligned on the repetition block size. For regular SFrame FDEs the PC offset from function start address must be within a SFrame FRE's start IP offset and end IP offset. For SFrame FDEs of type SFRAME_FDE_TYPE_PCMASK, the masked PC offset must be within that range. SFrame FRE start/end IP offsets are relative to the SFrame FDE function start address. For regular SFrame FDEs, the PC offset from function start address must be within a SFrame FRE's start IP offset and end IP offset. For SFRAME_FDE_TYPE_PCMASK type FDEs, the masked PC offset must be within that range. Exercise the testcase for a variety of placements; without the fix some of these tests will fail. Also, make the testcase itself easier to follow by adding appropriate vars where applicable. libsframe/ * sframe.c (sframe_fre_check_range_p): Fix logic for SFRAME_FDE_TYPE_PCMASK type FDE. libsframe/testsuite/ * libsframe.find/plt-findfre-1.c: Adjust the test for a variety of placements of .sframe and .plt. Co-Authored-by: Jens Remus <jremus@linux.ibm.com>
2025-05-26gas: sframe: handle .cfi_same_valueIndu Bhagat4-3/+93
Fix PR gas/32953 - sframe: incorrect handling of .cfi_same_value in gas As per documentation, .cfi_same_value indicates that the current value of register is the same like in the previous frame, i.e. no restoration needed. gas/ * gen-sframe.c (sframe_xlate_do_same_value): New definition. (sframe_do_cfi_insn): Handle DW_CFA_same_value. gas/testsuite/ * gas/cfi-sframe/cfi-sframe.exp: Add new tests. * gas/cfi-sframe/cfi-sframe-common-11.d: New test. * gas/cfi-sframe/cfi-sframe-common-11.s: New test.
2025-05-26[gdb] Factor out compare_pointersTom de Vries1-16/+15
Factor out compare_pointers, use it in compare_symbols and compare_msymbols, and add comments about unstable sorting result. Tested on x86_64-linux. Reviewed-By: Guinevere Larsen <guinevere@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-26[gdb] Partially stabilize sort in compare_{symbols,msymbols}Tom de Vries1-17/+33
In compare_symbols in gdb/linespec.c: ... uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace (); uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace (); if (uia < uib) return true; if (uia > uib) return false; ... we compare pointers to struct program_space, which gives unstable sorting results. The assumption is that this doesn't matter, but as PR32202 demonstrates, sometimes it does. While PR32202 is fixed elsewhere, it seems like a good idea to stabilize this comparison, because it comes at a small cost and possibly prevents hard-to-reproduce user-visible ordering issues. Fix this by comparing the program space IDs instead of the pointers. Likewise in compare_msymbols. Tested on x86_64-linux. Reviewed-By: Guinevere Larsen <guinevere@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-26[gdb/breakpoints] Stabilize info breakpoints outputTom de Vries1-3/+10
With test-case gdb.multi/pending-bp-del-inferior.exp, occasionally I run into: ... (gdb) info breakpoints^M Num Type Disp Enb Address What^M 3 dprintf keep y <MULTIPLE> ^M printf "in foo"^M 3.1 y 0x004004dc in foo at $c:21 inf 2^M 3.2 y 0x004004dc in foo at $c:21 inf 1^M (gdb) FAIL: $exp: bp_pending=false: info breakpoints before inferior removal ... The FAIL happens because the test-case expects: - breakpoint location 3.1 to be in inferior 1, and - breakpoint location 3.2 to be in inferior 2 but it's the other way around. I managed to reproduce this with a trigger patch in compare_symbols from gdb/linespec.c: ... uia = (uintptr_t) a.symbol->symtab ()->compunit ()->objfile ()->pspace (); uib = (uintptr_t) b.symbol->symtab ()->compunit ()->objfile ()->pspace (); - if (uia < uib) + if (uia > uib) return true; - if (uia > uib) + if (uia < uib) return false; ... The order enforced by compare_symbols shows up in the "info breakpoints" output because breakpoint::add_location doesn't enforce an ordering for equal addresses: ... auto ub = std::upper_bound (m_locations.begin (), m_locations.end (), loc, [] (const bp_location &left, const bp_location &right) { return left.address < right.address; }); m_locations.insert (ub, loc); ... Fix this by using new function bp_location_is_less_than (forwarding to bp_location_ptr_is_less_than) in breakpoint::add_location. Tested on x86_64-linux. Reviewed-By: Guinevere Larsen <guinevere@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com> PR gdb/32202 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32202
2025-05-26[gdb/breakpoints] Rename bp_location_is_less_than to ↵Tom de Vries1-10/+14
bp_location_ptr_is_less_than In breakpoint.c, we have: ... /* A comparison function for bp_location AP and BP being interfaced to std::sort. Sort elements primarily by their ADDRESS (no matter what bl_address_is_meaningful says), secondarily by ordering first permanent elements and tertiarily just ensuring the array is sorted stable way despite std::sort being an unstable algorithm. */ static int bp_location_is_less_than (const bp_location *a, const bp_location *b) ... There are few problems here: - the return type is int. While std::sort allows this, because int is convertible to bool, it's clearer to use bool directly, - it's not abundantly clear from either function name or comment that we can use this to sort std::vector<bp_location *> but not std::vector<bp_location>, and - the comment mentions AP and BP, but there are no such parameters. Fix this by: - changing the return type to bool, - renaming the function to bp_location_ptr_is_less_than and mentioning std::vector<bp_location *> in the comment, and - updating the comment to use the correct parameter names. Tested on x86_64-linux. Reviewed-By: Guinevere Larsen <guinevere@redhat.com> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-26alpha, bfd: Fixes for ALPHA_R_OP_STOREJanne Ramstedt1-4/+2
ALPHA_R_OP_STORE copies one byte too many and also will cause out of range error when it tries to copy from the end of section. Since "endbyte" is already rounded to next full byte, there is enough bits to copy and the additional "+ 1" is erroneous in bytes count. I also believe size is incorrectly decreased.
2025-05-26gdb, btrace: remove record_btrace_target::supports_*()Markus Metzger1-27/+0
Let's not introduce support for breakpoint types the target beneath does not support, even though we could while replaying. Otherwise, users may set breakpoints during replay that then couldn't be inserted into the target when switching back to recording. Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-26LoongArch: overflow and underflow checks for R_LARCH_32_PCRELLulu Cai6-6/+32
Relocation overflows can silently write incorrect value to the file, so overflow checks are added to avoid this.
2025-05-26Automatic date update in version.inGDB Administrator1-1/+1
2025-05-25Automatic date update in version.inGDB Administrator1-1/+1
2025-05-24gdb/solib-svr4: check that solib is SVR4 in tls_maybe_fill_slot and ↵Simon Marchi1-2/+8
tls_maybe_erase_slot Functions tls_maybe_fill_slot and tls_maybe_erase_slot blindly assume that the passe solibs come from solib-svr4. This is not always the case, because they are called even on the systems where the solib implementation isn't solib-svr4. Add some checks to return early in that case. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32990 Change-Id: I0a281e1f4826aa1914460c2213f0fae1bdc9af7c Tested-By: Hannes Domani <ssbssa@yahoo.de> Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-24gdb: use local addrmap_mutable in addrmap selftestSimon Marchi1-14/+13
There is no need to allocate the addrmap_mutable on the heap. Change-Id: Ia6ec17101a44ae5eaffbf3382c9639414ce5343e Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-24gdb: turn CHECK_ADDRMAP_FIND into a functionSimon Marchi1-23/+23
Replace the macro with a function. I don't see a need to use a macro here, a function is easier to read. Change-Id: I22370040cb546470498d64939b246b03700af398 Approved-By: Andrew Burgess <aburgess@redhat.com>
2025-05-24[gdb/build] Fix unused var in lookup_dwo_unit_in_dwpTom de Vries1-1/+1
On x86_64-linux, with gcc 7.5.0 I ran into a build breaker: ... gdb/dwarf2/read.c: In function ‘dwo_unit* lookup_dwo_unit_in_dwp()’: gdb/dwarf2/read.c:7403:22: error: unused variable ‘inserted’ \ [-Werror=unused-variable] auto [it, inserted] = dwo_unit_set.emplace (std::move (dwo_unit)); ^ ... Fix this by dropping the unused variable. Tested on x86_64-linux, by completing a build.
2025-05-23gdb: guard <mutex> include with CXX_STD_THREADSimon Marchi1-0/+2
Change-Id: I4335fbfdabe49778fe37b08689eec59be94c424b
2025-05-24Automatic date update in version.inGDB Administrator1-1/+1
2025-05-23gdb/NEWS: minor white space fixAndrew Burgess1-1/+1
Spotted a small white space mistake in the NEWS file. Fixed.