Lines Matching +refs:po +refs:team +refs:name +refs:to +refs:code

25 … register) and a0aa6f4ab (LoongArch: ld: Add support for TLS LE symbol with addend) to 2.42 branch.
45 relocations, start a new frag to get correct eh_frame Call Frame Information
52 b20c7ee066cb7d952fa193972e8bc6362c6e4063. To write 54525952 (NOP) to object
68 "--hash-style=both" for these tests to cancel the effect of
73 no-aliases" to fix them.
81 For two register macros (e.g. la.local $t0, $t1, symbol) used in extreme code
124 I create a script to run gprofng. Inside this script, LD_LIBRARY_PATH,
126 putenv_libcollector_ld_misc() first uses $GPROFNG_PRELOAD_LIBDIRS to create
128 to set up LD_PRELOAD).
136 $GPROFNG_PRELOAD_LIBDIRS first to build SP_COLLECTOR_LIBRARY_PATH.
137 * testsuite/config/default.exp: Create a script to run gprofng.
159 Append "#pass" to APX tests for targets which pad text sections with NOPs.
171 long as the immediate has the top 4 bits clear, they are equivalent to
172 the earlier VEX-encoded insns, and hence can be used to permit use of
174 these insns, also alter the resulting diagnostic to complain about the
188 …Add multilib.am to the list of top level files included in any release created by the src-release.…
198 should be applied on PC for these reloc types to avoid wrong relocation
215 This corrects a counting problem, where prior to relocate_section relr
229 Pass --hash-style=both to ld for -z mark-plt tests to support linker
233 to ld.
301 Along with the relevant unit tests and updates to the existing
329 instructions, this patch adds the necessary logic to teach
330 `general_constraint_met_p` how to proper handle these.
336 for RCPC3 instructions lead to the requirement of a new set of operand
341 always equivalent to the amount of data read/stored by the
355 created the need for an operand type similar to
365 Beyond the need to encode any registers involved in data transfer and
366 the address base register for load/stores, it is necessary to specify
368 to be pre/post-indexed, whereby loads may be post-indexed and stores
371 The use of a single bit to specify both the indexing mode and indexing
372 value requires a novel function be written to accommodate this for
395 implicitly equivalent to the amount of data loaded/stored by the
398 This leads to the requirement that this quantity be calculated based on
411 extension flag is added to the list of possible `-march' options in
419 currently fails on riscv because a local label name is assumed
420 to be the current function name.
432 *nxs operations, and use the F_REG_128 flag to filter tlbi operations that
434 to reduce duplication between the 'nxs' and non-'nxs' variants, and added a
435 test to verify that no invalid combinations are accepted.
443 Add an aarch64_feature_set field to aarch64_sys_ins_reg, and use this for
511 along with +sve2p1 optional flag to enabe this feature.
532 Move and zero two ZA tile slices to vector registers.
533 Move and zero four ZA tile slices to vector registers.
578 Some testcases are used to highlight those asm constructs that the SCFI
588 - Using Dynamically Realigned Arguement Pointer (DRAP) register to
592 Some testcases are used to highlight some diagnostics that the SCFI
593 machinery in GAS currently issues, with an intent to help user correct
595 GAS finds that input asm is not amenable to correct CFI synthesis.
603 code.
738 opcodes: i386-reg.tbl: Add a comment to reflect dependency on ordering
741 of these register entries in the table. Add a comment to make it clear.
749 Add a new listing option, -i, to emit ginsn in the listing output. We
762 This patch adds support in GAS to create generic GAS instructions
773 Since the current use-case of ginsn is to synthesize CFI, the x86 target
774 needs to generate ginsns necessary for the following machine
779 - All register saves and unsaves to the stack.
782 register for CFA tracking is limited to REG_SP and REG_FP only for
787 - GAS instruction has GINSN_NUM_SRC_OPNDS (defined to be 2 at this time)
791 - GAS instructions carry location information (file name and line
794 addtion to the list. This can be used as a proxy for the static
820 to adhere to some pre-requisites for their asm:
822 It is highly recommended to, additionally, also ensure that:
831 - If using dynamic stack allocation, the function must switch to
841 These heuristics/rules are architecture-independent and are meant to
864 (x86_ginsn_new): New functionality to generate ginsns.
885 * symbols.c (colon): Invoke ginsn_frob_label to convey
886 user-defined labels to ginsn infrastructure.
896 operand constraint to reflect this. This will be useful for SCFI
897 implmentation to ensure its correctness.
911 implementation in GAS, we need to identify operations which implicitly
929 gas: scfidw2gen: new functionality to prepare for SCFI
940 * Makefile.am: Add new files to GAS_CFILES and HFILES.
950 When the command line option --scfi=experimenta is passed to the GNU
961 To use SCFI, a target will need to:
964 - provide means to help GAS understand the target specific instruction
967 The upcoming support for SCFI is inteded to be experimental, hence the
973 ignore) the compiler generated CFI for the code surrounding the inline
1001 gas: dw2gencfi: move some tc_* defines to the header file
1002 Move the following three defines to the header file, so the SCFI
1010 * dw2gencfi.h: ... to here.
1026 The code in dw2gencfi.c was checking variable cfi_sections and
1028 to the correct variable to access.
1030 The data in cfi_sections has already been propagated to all_cfi_sections
1042 cfi_sections_set is best set to true in cfi_dot_startproc (). Setting
1043 it to true again in other APIs (dot_cfi_endproc, dot_cfi_fde_data, and
1051 cfi_set_sections to true.
1077 …-re "\\^error,msg=\"'stderr' has unknown type; cast it to its declared type\"\r\n$::mi_gdb_prompt$…
1084 which uses a gdb_test_multiple that is supposed to use the mi prompt, but
1085 doesn't use -prompt to indicate this. Consequently, the default patterns use
1095 - gcc and clang (to trigger both the has_stderr_symbol true and false cases)
1112 The question is supposed to be handled by the question and response arguments
1113 to this gdb_test call:
1138 Per RISC-V spec, the lr/sc sequence can consist of up to 16 instructions, and we
1148 Add myself to gdb/MAINTAINERS
1157 * src/util.h (O_LARGEFILE): Define to 0, if not defined.
1168 overview and caller-callee parts of the code.
1202 adding the symbol value to the relocation entry addend, when the correct
1203 relocation value was already stored in the addend. This could lead to a
1206 Fix that by making bpf_elf_generic_reloc () more similar to the flow of
1208 which is how it ought to behave.
1212 (R_BPF_64_NODYLD32): Set partial_inplace to true.
1235 thread, and then, later in the test, expects this Python object to
1241 The mistake I made in the original commit was to assume that the order
1244 thread to be first in the list, and "other" threads to appear ... not
1249 list has no obvious relationship to the thread creation order, and can
1250 vary from host to host.
1259 Fixed in this commit by taking more care to correctly find a non-main
1277 - Running gdb/copyright.py to update all of the copyright headers to
1280 - Manually updating a few files the copyright.py script told me to
1284 - Regenerating gdbsupport/Makefile.in to refresh it's copyright
1287 - Using grep to find other files that still mentioned 2023. If
1288 these files were updated last year from 2022 to 2023 then I've
1289 updated them this year to 2024.
1291 I'm sure I've probably missed some dates. Feel free to fix them up as
1296 aarch64: Remove unused code
1297 Most of this code became redundant in my previous commits, but ARMV8_6A_SVE was
1301 There's no reason to disallow the aliases when the aliased instructions are
1305 Additionally, change FEAT_XS tlbi variants to be gated on "+xs" instead of
1319 aarch64: Fix option parsing to disallow prefixes of valid options
1320 Add "+rdm" as an explicit alias for "+rdma", to maintain existing compatibility
1330 This commit updates the Python example code in the gdb.Progspace and
1336 2. Use @group...@end group to split the example code into
1339 3. Add parenthesis to the Python print() calls in the examples. In
1340 Python 2 it was OK to drop the parenthesis, but now GDB is Python 3
1341 only, example code should include the parenthesis.
1349 In previous commits I've added Object.__dict__ support to gdb.Inferior
1350 and gdb.InferiorThread, this is similar to the existing support for
1353 This commit extends the documentation to offer the user some guidance
1366 clearly the user would need to start and end with a double
1367 underscore, but it seemed easier just to say no double underscores.
1380 types already have a __dict__ attribute, which allows users to create
1382 user wants to cache information within an object.
1384 This commit adds the same functionality to the gdb.InferiorThread
1406 a __dict__ attribute, which allows users to create user defined
1407 attributes within the objects. This is useful if the user wants to
1410 This commit adds the same functionality to the gdb.Inferior type.
1429 gdb/python: remove users ability to create gdb.Progspace objects
1430 I noticed that it is possible for the user to create a new
1446 sense to consume an invalid gdb.Progspace created in this way, for
1447 example, the gdb.Progspace could be passed as the locus to
1451 In this commit I propose to remove the ability to create new
1452 gdb.Progspace objects. Attempting to do so now gives an error, like
1461 Of course, there is a small risk here that some existing user code
1462 might break ... but if that happens I don't believe the user code can
1482 <gdb.Frame level=0 frame-id={stack=0x7ffff7da0ed0,code=0x000000000040115d,!special}>
1526 gdb/python: hoist common invalid object repr code into py-utils.c
1531 I thought it might be a good idea to move the formatting of this
1533 of our existing code to call the new function.
1539 That said, I think it would be fine to switch to using the standard
1555 implementation goes to Lancelot, any bugs in this new iteration belong
1556 to me.
1564 and then hit TAB, GDB completes this to:
1576 I now see the completed directory name, but the trailing '/' is
1579 readline never gets the chance to add the trailing '/' character.
1581 The above patch added filename option support to GDB, which included
1584 solution to this problem, but this solution only applied to filename
1585 options (which have still not been added to GDB), and was mixed in
1589 applies it to GDB's general filename completion. This patch does not
1590 add filename options to GDB, that can always be done later, but I
1599 added a call to gdb_tilde_expand which was missing from the original
1607 on the command being completed for the test name. This is fine for
1609 command in this case the test name will (potentially) include the name
1614 new (optional) testname argument to many of the procedures, this
1615 allows me to give a unique test name, that doesn't include the path
1624 expected to match the name of two functions 'f1' and 'f2' the
1627 after each function name.
1657 which actually converts a ptid (not pid) to a string.
1663 Having access to this string from Python is useful for allowing
1664 extensions identify threads in a similar way to how GDB core would
1672 [gdb/testsuite] Use require in gdb.dwarf2/assign-variable-value-to-register.exp
1673 In test-case gdb.dwarf2/assign-variable-value-to-register.exp a return is
1707 the PC decrease but the symbol address to remain unchanged due to section
1727 gdb: fix frame passed to gdbarch_value_to_register in value_assign
1730 `get_prev_frame_always (next_frame)` with `next_frame`in the call to
1733 This is the result of a merge error, since I previously had a patch to
1734 change gdbarch_value_to_register to take the next frame, and later
1735 decided to drop it. Revert that change.
1737 Add a test based on the DWARF assembler to expose the problem and test
1738 the fix. I also tested on ppc64le to make sure the problem reported in
1755 The test-case attemps to emulate additional entry points of a function, with
1771 it ends up in foobar instead of in foo, due to prologue skipping, and
1798 Error while executing Python code.^M
1813 - gdb switches to process B, in other words, it restarts checkpoint 1
1814 - while restarting checkpoint 1, gdb tries to call lseek in the inferior
1828 The FAIL did not always reproduce, so extend the test-case to reliably
1840 LoongArch: ld: Adjusted some code order in relax.exp.
1848 Due to the formatted output of objdump, some instructions
1852 Determine whether to output operands through the format
1859 We don't want to fallthru and use cooked_buf when we haven't initialized
1860 it to anything. Returning 0 indicates the register wasn't recognized.
1868 The m32r trap code was written for a 32-bit Linux host (and really, one
1869 whose Linux ABI matched pretty exactly). This has lead to conversions
1872 Clean up some of the functions where possible to avoid unnecessary
1873 conversions, use uintptr_t to cast 32-bit target pointers to host
1881 The ftime syscall should not fallthrough to the sync syscall.
1882 Clearly the code was missing a break statement.
1886 sim: m32r: migrate ftime() to clock_gettime()
1894 So let's stop using the function and switch to clock_gettime. gnulib
1904 sim: igen: add printf attributes to the prototypes too
1906 doesn't seem to, so add it to the prototypes themselves too. We
1912 gdbsupport: tighten up libiberty code a bit with dnl
1919 sim: build: switch to gdbsupport/libiberty.m4
1920 Leverage this common logic to find all the libiberty settings rather
1923 sim: ppc: rework defines.h to handle HAVE symbols defined to 0
1924 The HAVE_DECL_xxx defines are always defined to 0 or 1. The current
1926 defined to 1 which causes this to break. Tweak the sed logic to only
1931 gdb: libiberty: switch to AC_CHECK_DECLS_ONCE
1938 gdb: move libiberty.m4 to gdbsupport
1939 This is used by gdb, gdbsupport, and gdbserver. We want to use it
1940 in the sim tree too. Move it to gdbsupport which is meant as the
1952 This directory contains example programs for the user to experiment with.
1953 Initially there is one application written in C. The plan is to include
1955 In addition to the sources and a make file, a sample script how to make
1966 gprofng: 31123 improvements to hardware event implementation
1973 created a function to read /proc/cpuinfo.
1993 In AIX we were missing some hooks needed to catch a fork () event
1994 in rs6000-aix-nat.c. Due to their absence we were returning 1 while we
1995 insert the breakpoint/catchpoint location. This patch is a fix to the same.
2006 Pass GUILE down to subdirectories
2009 to run cgen using 'guile'. However, on my host, guile is guile 2.2,
2010 which doesn't work for me -- I have to use guile3.0.
2012 This patch arranges to pass "GUILE" down to subdirectories, so I can
2034 will attempt to create site.exp if it doesn't exist and will interfere with
2043 Config,Darwin: Allow for configuring Darwin to use embedded runpath.
2049 This change allows the user to configure a Darwin build to use
2050 '@rpath/libraryname.dylib' in library names and then to add an
2051 embedded runpath to executables (and libraries with dependents).
2054 '-nodefaultrpaths' to the link line.
2058 compiler (equivalent to hard-coding the library path into the name
2061 During build-time configurations any "-B" entries will be added to
2064 Since the install name is set in libtool, that decision needs to be
2066 so we need to export a conditional).
2100 Pass 'SYSROOT_CFLAGS_FOR_TARGET' down to target libraries [PR109951]
2102 ..., where we need to use it (separate commits) for build-tree testing, similar
2103 to 'gcc/Makefile.in:site.exp':
2105 # TEST_ALWAYS_FLAGS are flags that should be passed to every compilation.
2106 # They are passed first to allow individual tests to override them.
2163 According to the docs, each of these (0-10) is a checkpoint.
2165 But the pc address (as well as the file name and line number) is missing for
2200 Make this explicit by changing the variable type to bool.
2225 Make cooked_index_entry::parent_entry private, and add member functions to
2244 Fix ASAN failure in DWO code
2245 Simon pointed out that my recent change to the DWO code caused a
2248 The bug here was I updated the code to use a different search type in
2249 the hash table; but then did not change the search code to use
2272 Pass GUILE down to subdirectories
2274 to run cgen using 'guile'. However, on my host, guile is guile 2.2,
2275 which doesn't work for me -- I have to use guile3.0.
2277 This patch arranges to pass "GUILE" down to subdirectories, so I can
2288 Add --enable-mark-plt linker configure option to mark PLT entries with
2300 (LDEMUL_BEFORE_PARSE): New. Set to elf_x86_64_before_parse for
2306 When -z mark-plt is used to add DT_X86_64_PLT, DT_X86_64_PLTSZ and
2317 According to x86-64 psABI, r_addend should be ignored for R_X86_64_GLOB_DAT
2318 and R_X86_64_JUMP_SLOT. Since linkers always set their r_addends to 0, we
2324 Although this commit has been backported to glibc 2.33/2.34/2.35 release
2325 branches, it is safer to require glibc 2.36 for such binaries.
2327 Extend the glibc version dependency of GLIBC_ABI_DT_RELR for DT_RELR to
2331 * elflink.c (elf_find_verdep_info): Moved to ...
2339 * elflink.c (elf_link_add_dt_relr_dependency): Renamed to ...
2340 (elf_link_add_glibc_verneed): This. Modified to support other
2360 Update x86 ELF linker to skip R_386_NONE/R_X86_64_NONE when scanning
2383 Fix two bugs in gdbserver thread name handling
2384 Simon pointed out that my earlier patch to gdbserver's thread name
2385 code:
2407 unrelocated address. This patch changes the interface to use the
2408 unrelocated_addr type, just to be a bit more type-safe.
2414 x86: add missing APX logic to cpu_flags_match()
2417 assembled to APX encodings even when APX_F is turned off.
2419 While there also extend the respective comment in the opcode table, to
2424 x86: FMA insns aren't eligible to VEX2 encoding
2428 that C aliases StaticRounding, and hence build_vex_prefix() now needs to
2452 Tobias reported on IRC that the linker fails to build with GCC 4.8.5.
2453 In configure I've tried to use everything actually used in the sha1.c
2458 intentionally compile time only) due to implicit function declaration,
2459 but then failed to link when linking the linker, because
2463 to make sure the functions are declared.
2498 We need to mangle constraints to be able to distinguish between function
2499 templates that only differ in constraints. From the latter link, we want to
2500 use the template parameter mangling previously specified for lambdas to also
2505 and C++11 patterns, so I've limited template_parm_natural_p to avoid two
2525 I aim to resolve these with the ABI committee before GCC 14.1.
2527 We also need to resolve https://github.com/itanium-cxx-abi/cxx-abi/issues/38
2528 (mangling references to dependent template-ids where the name is fully
2529 resolved) as references to concepts in std:: will consistently run into this
2530 area. This is why mangle-concepts1.C only refers to concepts in the global
2533 The library changes are to avoid trying to mangle builtins, which fails.
2571 Nick has approved this patch (+ small ld change to use it for --build-id=),
2572 so I'm commiting it to GCC as master as well.
2574 If anyone from ARM would be willing to implement it similarly with
2612 vfork+exec code path.
2630 the usual late checking and can lead to hard errors, so let's not do that
2635 to actually substitute in the case of a non-template friend. But we don't
2636 actually need to do the substitution anyway, because [temp.friend] says that
2640 overload error, fixed by allowing constrained hidden friends to coexist
2645 these friends as a member function with an extra 'F' before the name. I
2646 demangle this by just adding [friend] to the name of the function because
2647 it's not feasible to reconstruct the actual scope of the function since the
2700 Add tests to cover the full range of behaviors observed around
2708 optional register needs to be specified with a non-xzr value.
2711 second operand should default to xzr too, while in the latter, it
2712 should default to n + 1.
2717 With the addition of 128-bit system registers to the Arm architecture
2741 The 2020 Architecture Extensions to the Arm A-profile architecture
2742 added FEAT_XS, the XS attribute feature, giving cores the ability to
2743 identify devices which can be subject to long response delays. TLB
2750 extension. These are added to aarch64_sys_regs_tlbi[] for use
2760 "invalidate translation table entry" instructions are needed to cope
2769 name, tlbip operation). This creates the need for adequate qualifiers
2770 to handle this.
2773 specifiers, which expand to `QLF3(NIL,X,X)' and `QLF3(X,X,NIL)',
2780 are thus able to accommodate values in the range 0-15, the
2781 specifications for the SYSP instructions limit their ranges to 8-9 for
2784 This led to the need to signal in some way to the operand parser that
2802 sets both of these to xzr.
2812 add the flexibility to have two optional operands. Prior to the
2817 for any optional operands, while others allow for both to be optional.
2820 Therefore, a considerable degree of flexibility needed to be added to
2821 the way operands were parsed. It was, however, possible to achieve
2822 this with relatively few changes to existing code.
2834 it is impossible to mark both operands 1 and 2 as optional for an
2838 the first. Thus, it suffices for us to flag that there is a second
2846 values assigned to the two registers when one (or both) are omitted
2848 register is specified), Xt2 defaults to the same value, otherwise Xt2
2851 also necessary to look at the value assigned to the
2853 `process_omitted_operand' needs not only access to its `operand'
2854 argument, but also to the global `inst' struct.
2867 given it corresponds to register number 31.
2871 omitted, this is the default value assigned to it. When this
2878 * The index of the second register is equal to that of the first,
2886 `operand_general_constraint_met_p' to allow the pair to both take on
2891 aarch64: Expand maximum number of operands from 5 to 6
2897 and by extension the need to encode 6 assembly operands, extend
2898 Binutils to handle instructions taking 6 operands, up from a previous
2906 the "+d128" architectural extension flag is added to the list of
2915 the rest of the sim code, we need to maintain & test a separate list.
2917 Only bother when not cross-compiling so we don't have to test all the
2934 Leave the igen code in place as it's meant to be used with newer
2935 (to-be-written) code ported from the ppc version.
2937 The sh code isn't really necessary as the opcodes enums have been
2956 likely to be needed at some point.
2961 The previous patches are nearly enough to enable background DWARF
2965 /* If currently in Ada mode, and the lookup name is wrapped in
2966 '<...>', hijack all symbol name comparisons using the Ada
2973 checks, or promoting the verbatim mode to not be a purely Ada feature
2974 -- but in the end found that the few calls to this during startup
2977 In the JIT code, and in create_exception_master_breakpoint_hook, gdb
2979 linkage name. Changing the lookup here is clearer and probably more
2983 done by linkage name (it would require relying on a certain mangling
2985 this spot is C++-specific, and so the language ought to be temporarily
2986 set to C++ here.
3001 function to loop over the minimal number of objfiles in the latter
3007 When gdb starts up with a symbol file, it uses the program's "main" to
3009 DWARF reading, this means that gdb has to wait for a significant
3010 amount of DWARF to be read synchronously.
3018 Change current_language to be a macro
3019 This changes the 'current_language' global to be a macro that wraps a
3028 removed. This allows for other functions to be removed as well.
3031 it here -- but could if that's desirable. I tend to think that this
3053 functionality to defer even starting to read. This patch instead
3054 changes the reader to start reading immediately, but doing more in
3075 map to avoid objfile loops like the one in expand_symtab_containing_pc
3084 This changes the cooked index code to wait for threads in its
3087 it easier to wait for other events here as well.
3092 For testing, it's sometimes convenient to be able to request that
3100 Move cooked_index_storage to cooked-index.h
3101 This moves cooked_index_storage to cooked-index.h. This is needed by
3105 This adds gdb::task_group, a convenient way to group background tasks
3109 This adds a new compute_main_name method to quick_symbol_functions.
3113 Add deferred_warnings parameter to read_addrmap_from_aranges
3117 a new deferred_warnings parameter to the function, letting the caller
3130 Add thread-safety to gdb's BFD wrappers
3131 This changes gdb to ensure that gdb's BFD cache is guarded by a lock.
3136 for some DWARF scanning to be completed before returning. The only
3138 lock to this end in dwarf2/read.c.
3142 DWARF reader and other code on the main thread to both attempt to open
3148 This adds a couple of calls to bfd_cache_close at points where a BFD
3155 This changes the DWZ code to pre-read the section data and somewhat
3156 simplify the DWZ API. This makes it easier to add the bfd_cache_close
3157 call to the new dwarf2_read_dwz_file function -- after this is done,
3158 there shouldn't be a reason to keep the BFD's file descriptor open.
3162 Don't use objfile::intern in DWO code
3163 The DWO code in the DWARF reader currently uses objfile::intern. This
3166 background reading could provoke this, and in any case it's better to
3167 avoid this, just to be sure.
3169 This patch changes this code to just use a std::string. A new type is
3170 introduced to do hash table lookups, to avoid unnecessary copies.
3177 This logic dates back to the original import, and seems to be for
3184 is being used uninitialized. Zero it out explicitly to workaround it.
3186 small stack buffer, and shouldn't be that relevant relative to all the
3193 We just want to create a bitmask here, so cast the mask to unsigned
3194 to avoid left shifting a negative value which is undefined behavior.
3197 We just want to create a bitmask here, so cast the mask to unsigned
3198 to avoid left shifting a negative value which is undefined behavior.
3202 sim: cgen: rework DI macros to avoid signed left shifts
3203 The cgen code uses DI as int64_t and UDI as uint64_t. The DI macros
3204 are used to construct 64-bit values from 32-bit values (for the low
3205 and high parts). The MAKEDI macro casts the high 32-bit value to a
3207 value, this would be undefined behavior according to the C standard.
3208 All we care about is shifting the 32-bits as they are to the high
3210 to shift into), and the low 32-bits being empty. This is what we
3211 get from shifting an unsigned value, so cast it to unsigned 32-bit
3212 to avoid undefined behavior.
3214 While we're here, change the SETLODI macro to truncate the lower
3215 value to 32-bits before we set it. If it was passing in a 64-bit
3219 Similarly, tweak the SETHIDI macro to cast the value to an unsigned
3221 the behavior would be the same. If it happened to be signed 64-bit,
3231 This patch adds linker support to patch R_BPF_64_NODYLD32 relocations.
3232 The implementation was based on comments and code in LLVM, as the GNU
3250 due to that, the output is set as NO_ABI instead of O32, then
3264 are technically redundant but it including them for macro code
3284 [Switching to inferior 1 [process 26606] (vfork-follow-parent-exit)]^M
3285 [Switching to thread 1.1 (process 26606)]^M
3304 The ld/emulparams/aarch64gnu.sh file is (for now) identical to aarch64fbsd.sh,
3305 or to aarch64linux.sh with Linux-specific logic removed; and mainly different
3328 The FAIL is generated by this code in the test-case:
3341 - uses the "right" version to generate a core file,
3342 - uses the "wrong" version to interpret the core file, and
3345 The intent is that the backtrace is incorrect due to using the "wrong"
3372 of .byte to describe test cases.
3381 Since 0x66 is the opcode prefix for adcx, it is wrong to use the 'S'
3414 sim: cris: change temp var name slightly to avoid shadowing
3415 Rename the temp var to avoid shadowing another one:
3427 The condition & swap code decoder only checks known bits and sets
3442 To support -z mark-plt enabled by default, adjust x86 tests to accept
3443 non-zero r_addend for JUMP_SLOT relocation and pass -z nomark-plt to
3451 to linker.
3473 * testsuite/ld-x86-64/x86-64.exp: Pass -z nomark-plt to linker
3478 gas: sframe: fix some typos in code comments
3487 One item was too strict for PE/COFF, and there's really no need to check
3513 Arm/doc: separate @code from @item for older makeinfo
3516 x86: corrections to CPU attribute/flags splitting
3536 - .previous still works correctly (requiring such targets to invoke
3543 consistently: csky, mcore, and spu handle .bss similar to .lcomm.
3546 It doesn't look to be a good idea to override the custom handlers that
3554 copied from another target). It also doesn't look to be a good idea to
3567 While there doesn't look to be anything wrong with this override,
3575 another target). It also doesn't look to be a good idea to override the
3587 also doesn't look to be a good idea to override the custom handler that
3591 It doesn't look to be a good idea to override the custom handler that
3595 It doesn't look to be a good idea to override the custom handler that
3603 While only ELF is supported right now, (stub) code generally is in place
3605 unlikely to be a good idea anyway and prevented the sub-section
3614 also doesn't look to be a good idea to override the custom handler that
3618 It doesn't look to be a good idea to override the custom handler that
3622 It doesn't look to be a good idea to override the custom handlers that
3631 It doesn't look to be a good idea to override the custom handler that
3640 to be a good idea to override the custom handlers that ELF and COFF
3643 As to the mapping state update - such also doesn't appear to be done
3652 also doesn't look to be a good idea to override the custom handlers that
3658 The attempt in 5e9091dab885 to correct gold for modern LLVM has broken
3660 changing the build system to require a C++ compiler. More importantly
3678 * elfnn-loongarch.c (loongarch_relax_align): Rename "index" to
3686 dead code.
3693 The ld lexer converts strings to integers without overflow checking,
3706 due to instruction coding errors. According to T-Head SPEC ([1]), the
3711 We have set up tens of thousands of test cases to ensure that no
3757 due to the PAC marker showing up:
3768 $lr is pointing to an PAC function its value will be masked. When GDB prints
3774 Update the test-case to allow the PAC marker.
3791 Adds two new external authors to etc/update-copyright.py to cover
3792 bfd/ax_tls.m4, and adds gprofng to dirs handled automatically, then
3797 author I haven't committed, 'Kalray SA.', to cover gas testsuite
3800 4) Check out */po/*.pot which we don't update frequently.
3810 …commit 021155df7fad97a5ae1baa354e15a03ea14500b4 config.guess: Detect Android (as opposed to GNU…
3813 …commit 39c49ea712cba8ae6613ef85ab22fe7c552b48b0 config.sub: Systematize parsing of machine code
3823 With old "medium" code model, we call a function with a pair of PCALAU12I
3854 end of the expression GDB just reports the empty string to the user.
3866 error. So I've not worried about this case in my new code either,
3869 I did consider trying to have multi-line errors here, in the style
3871 line to indicate where the error occurred; but I rejected this due to
3875 significant work in order to make all our error handling multi-line
3885 Many (all?) of the expression parsers implement yyerror to handle
3889 implements the common error handling code, this function can then be
3902 gdb: don't try to style content in error calls
3904 error() function doesn't support output styling. Due to the way that
3907 obvious to me if we should be trying to support styling in this
3910 On inspection, I found one place in GDB where we apparently try to
3914 Rather than try to implement styling in the error() output, right now
3915 I'm proposing to just remove the attempt to style error() output.
3918 future, but right now, I'm not planning to do that, I just wanted to
3932 Suppose we want to use la.got to generate 32 pcrel and
3933 32 abs instruction sequences respectively. According to
3934 the existing conditions, to generate 32 pcrel sequences
3935 use -mabi=ilp32*, and to generate 32 abs use -mabi=ilp32*
3938 Due to the fact that the conditions for generating 32 abs
3953 The common igen code was forked from the ppc long ago. The filter
3958 The common igen code doesn't seem to have an equiv API as this only
3960 easy enough to leave behind to unfork the rest.
3965 The common igen code was forked from the ppc long ago. The lf module
3969 Some of the generated ppc code is now slightly different, but that's
3970 because of fixes the common igen code has gained, but not the ppc igen
3971 code (e.g. fixing of #line numbers).
3973 The ppc code retains lf_print__c_code because the common igen code
3974 rewrote the logic to a new table.c API. Let's delay that in the ppc
3975 code to at least unfork all this code.
3984 sim: ppc: switch to common endian code
3985 The common sim-endian is a forked & updated version of the ppc code.
3993 order to unify ppc's sim-endian code, we need this include here. Plus,
3994 it's the directly we generally want to go to get away from one header
3995 that defines all APIs and causes hard to untangle dependencies.
3998 The common/ code has macros with the same name but different behavior:
4001 to avoid conflicts.
4004 This will make it easier to share common/ code that rely on these
4009 sim: configure: switch to m4_map
4013 Now that all ports have been merged to the top-level, we no longer need
4014 this framework to pass settings down to sub-makefiles. Delete it all.
4016 sim: ppc: hoist compilation up to top-level
4024 sim: ppc: move libsim.a creation to top-level
4027 can move compilation itself up, and makes it easier to review.
4035 sim: ppc: move main.o compilation to top-level
4049 line of source code, GDB stops in the middle of the line. Thus requiring
4050 multiple commands to reach the previous line. GDB should stop at the first
4105 Dump of assembler code for function main:
4133 Dump of assembler code for function main:
4162 Dump of assembler code for function main:
4183 stepped back all the way to the beginning of the line. The "reverse-next"
4191 The test case gdb.reverse/func-map-to-same-line.exp is added to testsuite
4192 to verify this fix when the line table information is and is not available.
4201 The failure happens around the following code:
4238 The test case gdb.reverse/map-to-same-line.exp is added to test the fix
4246 This patch adds two new options to gdb_compile to specify if the compile
4255 This commit adds a mechanism for GDB to detect the linetable opcode
4256 DW_LNS_set_epilogue_begin. This opcode is set by compilers to indicate
4264 This commit also changes amd64_stack_frame_destroyed_p_1 to attempt to
4268 Finally, this commit also changes the dwarf assembler to be able to emit
4269 epilogue-begin instructions, to make it easier to test this patch
4275 sim: ppc: hoist pk.h creation to top-level
4277 sim: ppc: hoist hw.[ch] creation to top-level
4279 sim: ppc: hoist igen execution to top-level
4284 move it to ppc/acinclude.m4 and include it directly in the top-level
4287 sim: ppc: scope configure options to --enable-sim-ppc-xxx
4289 then with the port name like we do with all other ports.
4292 Switch from ad-hoc $silent checks & echo calls to standard
4296 sim: ppc: switch to AS_HELP_STRING for automatic formatting
4300 sim: ppc: move defines.h generation to the top-level
4307 logic to greatly simplify the configure script.
4310 Now that everything has moved to the top-level, we can drop the
4314 The common sim code doesn't snoop in gdb/, and the ppc code doesn't
4315 need to either. Any common code we pull from gnulib/ now only.
4317 sim: ppc: move termios probes to top-level
4320 sim: ppc: switch to AC_CACHE_CHECK
4324 sim: ppc: switch struct member checks to AC_CHECK_MEMBER
4328 sim: ppc: move termio defines to config.h
4329 Move the defines from explicit -D options to config.h defines to simplify
4330 the build and make it easier to move to the top-level configure.
4332 sim: ppc: move struct statfs to top-level
4334 sim: ppc: move long long test to top-level
4335 While the sim code doesn't utilize HAVE_LONG_LONG itself, other code
4336 (like libiberty) seem to, so check for it in the top-level for all
4337 ports to leverage.
4339 sim: ppc: hoist sysv tests to top-level
4341 checks that, we can move the tests to the top-level and out of the
4347 Move the stub logic to the device files themselves. This makes the
4348 configure & build logic more static which will make it easier to move
4349 to the top-level build, and matches what we did with the common/ hw
4353 both sem & shm in order to enable the device models, but now each one
4354 is tied to its own independent knob. Practically speaking, this will
4359 sim: ppc: change SysV sem & shm tests to compile-time
4360 Instead of executing code to see if SysV semaphores & shared memory
4361 are available, switch to just a compile-time test. The system used
4362 to compile might not match the system used to run the code wrt the
4364 the failures from compile-time to runtime so the program is more
4371 define to before the semaphore check, and use it in the test so that
4376 about whether the overall code is usable.
4381 The first arg is the cache var name, and this one was typoed relative
4382 to what the call actually set. We also don't need the manual call to
4396 The common igen code provides the same misc APIs as the ppc version,
4397 so delete the ppc code and pull in the common one. There is one
4398 minor difference: the ppc code has a unique dumpf function. The
4399 common code switched to lf_printf for the same functionality, but
4403 sim: ppc: rework igen error to match common
4404 Switch to an ERROR macro and tweak the error signature to match the
4407 sim: igen: extend error to take arguments
4409 the common one to do the same.
4412 We want to avoid conflicts with the common igen enums. This should
4413 get migrated over to the common parsing logic, but for now, switch
4414 the name to avoid redefinition.
4417 Copy some improvements from the ppc igen code.
4422 (literally the same code).
4426 custom function. The common/ code already made the switch, so make
4427 the same change to the ppc code to avoid target duplication.
4435 This header is only used by the igen tool, and none of the igen code
4436 depends on the configure-time checks. Delete the logic to simplify
4437 to prepare for moving it to the local.mk code.
4440 Switch this from a build-time generation to a static include. This
4441 makes the build rules a bit simpler, especially as we move them to
4450 This code sets up the cc variable based on the comparison of other
4452 never initializes the cc variable. Initialize it to 0 which the
4456 Move it into read-only data sections to avoid constructing them on the
4478 Mark pointed out that a recent patch of mine caused the buildbot to
4479 complain about the formatting of some Python test code. This patch
4480 re-runs 'black' to fix the problem.
4492 Catchpoint 5 (call to syscall 59), 0x0000fffff7e04578 in pipe () from \
4497 In the test-case, this pattern handles either the syscall name or number for
4500 -re -wrap "Catchpoint $decimal \\(call to syscall (pipe|$SYS_pipe)\\).*" {
4505 -re -wrap "Catchpoint $decimal \\(call to syscall (pipe2|$SYS_pipe)\\).*" {
4519 Add keywords to TuiWindow.write
4531 try to write index to a non-writable directory
4533 try to write index to a non-writable directory
4541 but apparently the root user is still able to write in it.
4577 x86: Append "#pass" to APX tests
4578 Append "#pass" to APX tests for targets which pad text sections with NOPs.
4605 added a new field, fx_tcbit3, to fix. But it didn't initialize it.
4625 to some wrong line info generated for the entry points in ifort.
4627 After this patch it is possible to set a breakpoint in gdb with the
4631 As gcc and ifx do not emit the tag I also added a test to gdb.dwarf2
4632 which uses some underlying c compiled code and adds some Fortran style DWARF
4633 to it emitting the DW_TAG_entry_point. Before this patch it was not
4634 possible to actually define breakpoint at the entry point tags.
4645 but its review/pinging got lost after a while. I reworked it to fit the
4652 gdb, dwarf: add assert to dwarf2_get_pc_bounds
4653 In dwarf2_get_pc_bounds we were writing unchecked to *lowpc. This
4654 commit adds a gdb_assert to first check that lowpc != nullptr.
4662 a second variation to retrieve the pc bounds for DIEs tagged with
4738 New relocation related explanation can refer to the following url:
4754 is similar to the macro RELOCATE_CALC_PC32_HI20 method.
4760 * bfd-in2.h: Add relocs related to tls le relax.
4766 (loongarch_elf_relocate_section): Handle new relocs related to relax.
4769 (LOONGARCH_HOWTO (R_LARCH_TLS_LE_ADD_R)): New reloc how to type.
4772 * libbfd.h: Add relocs related to tls le relax.
4778 In order to make it easier to complete the compiler's support for
4779 the XTheadVector extension and to be as compatible as possible
4820 add name@gottpoff(%rip), %reg
4821 mov name@gottpoff(%rip), %reg
4823 to
4825 add $name@tpoff, %reg
4826 mov $name@tpoff, %reg
4830 lea name@tlsdesc(%rip), %reg
4832 to
4834 mov $name@tpoff, %reg
4835 mov name@gottpoff(%rip), %reg
4862 * testsuite/x86_64_gd_to_le.sh: Check GDesc to LE conversion.
4871 add name@gottpoff(%rip), %reg
4872 mov name@gottpoff(%rip), %reg
4880 lea name@tlsdesc(%rip), %reg
4887 They are similar to R_X86_64_GOTTPOFF and R_X86_64_GOTPC32_TLSDESC,
4888 respectively. Linker can covert GOTTPOFF to
4890 add $name@tpoff, %reg
4891 mov $name@tpoff, %reg
4893 and GOTPC32_TLSDESC to
4895 mov $name@tpoff, %reg
4896 mov name@gottpoff(%rip), %reg
4954 mov name@GOTPCREL(%rip), %r31
4956 to
4958 lea name@GOTPCREL(%rip), %r31
4988 mov name@GOTPCREL(%rip), %reg
4989 test %reg, name@GOTPCREL(%rip)
4990 binop name@GOTPCREL(%rip), %reg
4998 similar to R_X86_64_GOTPCRELX. Linker can treat R_X86_64_CODE_4_GOTPCRELX
4999 as R_X86_64_GOTPCREL or convert the above instructions to
5001 lea name(%rip), %reg
5002 mov $name, %reg
5003 test $name, %reg
5004 binop $name, %reg
5024 * write.h (fix): Add fx_tcbit3. Change fx_unused to 1 bit.
5063 Define NT_X86_SHSTK which is the note for x86 Shadow Stack (SHSTK) to
5084 * i386-dis.c (JMPABS_Fixup): New Fixup function to disassemble jmpabs.
5094 This patch aims to optimize:
5253 Note: The promoted versions of MOVBE will be extended to include the “MOVBE
5287 promote to apx to use gpr32
5308 promote to evex.
5311 to evex.
5319 legacy insn promote to EVEX insn.
5325 APX uses the REX2 prefix to support EGPR for map0 and map1 of legacy
5418 This patch fixes simulator to align with latest recommendations from TI.
5420 The new carry.s test was also validated to pass on real hardware -
5423 to ensure simulator handles all edge cases exactly as the real hardware
5442 the above commit, since the calculation is changed to support .reloc *SUB*
5445 We encourage people to rebuild their stuff to get the non-zero addend of
5446 SUB_ULEB128, but that might need some times, so report warnings to inform
5447 people need to rebuild their stuff if --check-uleb128 is enabled.
5449 Since the failed .reloc cases for ADD/SET/SUB/ULEB128 are rarely to use,
5458 (riscv_elf_relocate_section): Report warnings to inform people need
5459 to rebuild their stuff if --check-uleb128 is enabled. So that can
5465 --[no-]check-uleb128, to enable/disable checking if the addend of
5466 uleb128 is non-zero or not. So that people will know they need to
5467 rebuild the objects with binutils 2.42 and up, to get the right zero
5487 it's worth wasting a little more space to get faster lookup.
5503 const from name_list.name. Unlink output element on bfd_close
5504 error, and NULL list->name to indicate file is removed. Adjust
5505 cleanup to prevent rmdir on non-existent file.
5510 Since newlib allows people to opt-in to extra errno names, pull them
5533 The pcalau12i + addi.d of TLS LD/GD/DESC relax to pcaddi.
5557 to IE and uses the same GOT entry as IE.
5563 space to TLSDESC.
5564 2. When using multiple ways to access the same TLS variable, a
5566 and IE to access the same TLS variable, GD always uses the first
5595 Some spots loop on the frame chain to find the first next non-inline
5596 frame, and pass that as the "next frame" to
5599 "this frame". If the frame next to "this frame" is inlined into "this
5601 to go past that to find the next non-inline frame, which will have a
5604 In other cases, it's fine to store the id of an inline frame as the
5605 "next frame id" in a register struct value. When trying to unwind a
5607 will forward the request to the next next frame, until we hit the next
5610 I think it would make things simpler to just never store the id of an
5612 the first next non-inline frame directly. This way, we don't have to
5613 wonder which code paths have to skip inline frames when creating
5616 So, change value::allocate_register_lazy to do that work, and remove the
5645 non-nullptr frame to gdbarch_value_from_register in
5653 really need to set its VALUE_NEXT_FRAME_ID. Therefore, we re-implement
5657 frame id, so change address_from_register to use value_from_register.
5666 value::allocate_register_lazy), so there should be no need to pass a
5667 frame alongside the value to read_frame_register_value. Remove the
5677 gdb: add type parameter to value::allocate_register and add value::allocate_register_lazy
5679 to obtain the value type. This prevents them from using the current
5684 to value::allocate_register and value::allocate_register_lazy, to let
5685 the caller specify the type to use for the value. The parameters
5686 default to nullptr, in which case we use register_type to obtain the
5693 gdb: pass non-nullptr frame to gdbarch_value_from_register in address_from_register
5694 address_from_register used to pass null_frame_id to
5696 for it to be called during unwind, when "this frame"'s id is not yet
5699 to be consistent and have all register struct values to have a valid
5707 However, it's possible for the "this frame"'s next frame to be an
5709 id is also not known. So, loop until we get to the next non-inline
5713 out this "while next frame is inline" loop to apply it to all register
5720 gdb: pass frame_info_ptr to gdbarch_value_from_register
5721 Pass a frame_info_ptr rather than a frame_id. This avoids having to do
5726 frame was set to `VALUE_NEXT_FRAME_ID (v)`.
5733 I don't think that setting the next frame id is needed there, all code
5745 Since this function never returns, mark it as such to fix some unused
5746 variable warnings in error code paths.
5762 return early to avoid doing any common processing at the end as
5766 The plds Dz,MACL insn stores the Dz bit into MACL. The current code
5768 setting "res" to anything. Delete that logic and make it match the
5778 The -Wshadow=local is too new for some compilers, so move it to a var
5806 Rename the var to avoid shadowing & clobbering the higher context.
5809 Inline the one usage of sd in these macros to avoid possible shadowing.
5812 Use a local name in the macro to avoid shadowing wherever it's used.
5825 Easiest way around it is to rename the per-substep vars as needed as
5826 anything more would require substantial changes to the opc logic.
5833 name & type for this exact use.
5839 Rename shadowed vars with different types to avoid confusion.
5846 Fixing this looks fairly non-trivial as it appears to be interplay
5847 between the common CGEN code and how this particular set of cris
5859 And the code looks like:
5869 Since the CGEN code treats "opval" as an internal variable that the cpu
5870 definitions don't have direct access to, the likelihood of this being a
5871 real bug is low, so leave it be. The warning is suppressed for more code
5873 file is the easiest way to suppress while keeping it on everywhere else in
5885 Rename the shadowed var to avoid confusion with the function argument
5886 as to which address this code is using.
5889 Remove duplicate nested variable declarations, rename some to avoid
5905 This changes the test suite to look for rogue DAP exceptions in the
5921 is the right thing to do.
5928 This adds a new parameter to control the DAP logging level. By
5932 This also changes a couple of spots to avoid logging the stack trace
5936 forgot to document this before.
5945 spots in the DAP implementation to wrap "expected" exceptions in this.
5955 these operators to be declared starting with C++14, but apparently
5958 This patch reverts the earlier change and then updates the comment to
5967 (9fc79b42369), *_register_to_value functions were made to (a) call
5968 get_next_frame_sentinel_okay (frame) (b) pass that next frame to
5976 … we get "optimized_out" for val. Passing next_frame to
5983 Add 'program' to DAP 'attach' request
5984 In many cases, it's not possible for gdb to discover the executable
5992 sim: cgen: regenerate decode tables to avoid shadow warnings
5993 Use latest cgen to regenerate the decode tables which has some shadow
5996 sim: cris: regen cgen decoders to fix build warnings [PR sim/31181]
6003 Approved-By (ab) for some time, but there has been no information to be
6005 information about all git trailers to the MAINTAINERS file, so that it
6012 looked at the code
6013 * Reviewed-by: The code looks good, but the reviewer has not approved
6014 the patch to go upstream
6015 * Approved-by: The patch is ready to be pushed to master
6017 These last 3 trailers can also be restricted to one or more areas of GDB
6038 obj_elf_{text,data}() need calling, just like .code vectors to that
6042 they're meaningless. This matches what other targets' code does.
6047 It doesn't look to be a good idea to override the custom handler that
6058 Permit their use outside of 64-bit code though, as "new" registers
6065 the diagnostic to trigger when there was no other need for a REX prefix;
6070 The latter requires splitting out code from md_assemble(), for it to
6071 become re-usable. Besides the addition to address the first issue, that
6072 code then also needs generalizing to account for immediate operands, as
6075 two non-immediate operands, though). While moving the code also simplify
6084 If the symbol index is not zero, the addend is used to represent
6087 The lowest 8 bits are used to represent the first expression.
6088 Other bits are used to represent the third expression.
6096 We weren't using the enable_p flag to see whether the option should
6104 sim: m32c: fix initial #line number in generated code
6108 This will make compiler diagnostics much better with generated code
6113 sim: common: add $LINENO rewriting support to genmloop scripts
6115 be difficult to see/understand where the original code is coming from
6116 as all the diagnostics point to the generated output. Using #line
6117 pragmas, we can point people to the original source files.
6119 Unfortunately, this code is written in POSIX shell, and that lacks
6123 wrapper script that will uses awk to rewrite the $LINENO variable
6124 to the right value to avoid all that.
6128 name), and then executes the temporary script.
6130 This commit doesn't actually add #line pragmas to any files. That
6141 "status" in the documentation. Whenever I've needed to find the code,
6142 I've had to search to "locate" it (ha, ha). This patch renames the
6143 window to match the public name of the window.
6148 named "tui-stack", which to me makes it sound like they have something
6149 to do with backtraces. This patch renames them to "tui-status".
6154 GNU ld currently fails to link 32-bit executables on FreeBSD/amd64 when
6162 /usr/lib/../lib32/libexecinfo.so: undefined reference to `elf_begin@R1.0'
6173 destructor to cached_reg_t.
6182 This is is not really a problem for our code, which allocates the
6184 with in-place new, and then takes care to call the destructor
6198 Meanwhile, to unbreak the build, this commit switches from C99-style
6199 flexible array member to 0-length array. It behaves the same, and
6225 Seems like this code was meant to fallthru.
6236 Seems like these cases were meant to fallthru.
6239 Seems like these decodes were intended to fallthru.
6248 Add the attribute where it seems to make sense.
6254 Add the attribute to places where we want to fall thru.
6270 sim: add ATTRIBUTE_FALLTHROUGH for local code
6272 actually understand what the code is doing.
6279 some useless abort calls to make the compiler happy.
6281 sim: sh: add missing breaks to bit processing
6282 Doesn't seem like we want to cascade in this section when bit processing.
6286 sim: rx: add missing break to memory write
6287 It doesn't seem like we want to keep executing the next block of code
6291 Make sure this syscall always exits regardless of the exit code.
6294 Doesn't seem to make sense for this to fall through
6297 sim: arm: add missing breaks to SWI processing
6298 Seems unlikely we want the remove syscall to fallthrough into the
6304 sim: ppc: phb: add missing break to address decoder
6316 set LAST_TIMER_REG to the wrong register. Fix the typo.
6320 sim: bfin: clean up astat reg name decode a little
6321 The compiler pointed out we checked AZ twice. Sort by name to avoid
6322 that in the future, and to make it clearer that we have coverage of
6332 nor are they documented as inputs to the callbacks, so delete them
6333 to avoid unused variable compiler warnings.
6337 code. This will make it easier to add more, and make the per-port
6346 gprofng: 31169 Source code locations can not be found in a C++ application
6350 References that use the attribute form DW_FORM_ref_addr are specified to
6366 can't be added upstream yet, unfortunately, due to dependency on DWARF
6385 thread to the GDB thread list, because it got an event for a thread
6388 i.e., the wave was already gone when infrun.c added the thread to the
6395 wave 1 terminated previously, and a previous call to
6398 was stepping when it terminated (due to the displaced step over the
6403 amd-dbgapi-target.c:process_one_event, we return it to the core as a
6419 know about, it adds the thread to the thread list, resulting in that:
6428 The fix is to make amd_dbgapi_target::update_thread_list() _not_
6434 * A command for a wave was not able to complete because the wave has
6444 * It is the client's responsibility to know what command was being performed
6445 * and was unable to complete due to the wave terminating.
6449 As the comment says, it's GDB's responsability to know whether the
6451 with one entry for each wave, that seems like the place to store that
6452 information. However, I still decided to put all the coordinate
6454 existing wave_info to wave_coordinates, and then added a new wave_info
6456 This seemed cleaner as there are places where we only need to
6467 A problem internal to GDB has been detected,
6496 The testcase thus tries both running to exit after the first kernel
6497 exits, and running to a breakpoint in a second kernel after the first
6530 We need instead to clear the wave info when the thread is ultimately
6585 TARGET_WAITKIND_THREAD_EXITED, and in that case it is not possible to
6588 This patch moves the get_thread_regcache calls to branches that
6591 It also adds an assertion to get_thread_regcache, to help catching
6603 thread exited.", GDB also switches focus to a random thread, instead
6614 The previous patch extended gdb.threads/step-over-thread-exit.exp to
6617 without this fix, but that's just a concidence, there's a code path
6618 that happens to select the exiting thread for an unrelated reason.
6631 This commit makes the following improvements to
6634 - Add a third axis to stepping over the breakpoint with displaced vs
6652 I was not able to reproduce it, but I believe that what happens is
6662 The fix here is to not loop and start a new thread at all in the
6663 scenario where the race can happen. We only need to loop and spawn
6687 really want to peek into it. The code further below that even says:
6696 This commit reverts that hunk back, adjusted to use unique_ptr::get().
6705 code paths that still use raw pointers. This commit makes all of the
6720 managed manually. Convert it to use a unique_xmalloc_ptr.
6736 s390: Add suffix to conditional branch instruction descriptions
6742 Due to the added text the maximum description length is increased from
6743 80 to 128 characters (including the trailing '\0' character).
6746 * s390-mkopc.c: Add suffix to conditional branch extended
6775 Note that the instruction descriptions add about 128 KB to s390-opc.o:
6785 * opcode/s390.h (struct s390_opcode): Add field to hold
6790 into generated operation code table s390-opc.tab.
6827 to strerr and either continues processing or exists with a non-zero
6828 return code. If it continues without detecting any further error the
6829 final return code was zero, potentially hiding the detected error.
6831 Introduce a global variable to hold the final return code and initialize
6832 it to EXIT_SUCCESS. Introduce a helper function print_error() that
6833 prints an error message to stderr and sets the final return code to
6834 EXIT_FAILURE. Use it to print all error messages. Return the final
6835 return code at the end of the processing.
6837 While at it enhance error messages to state more clearly which mnemonic
6852 69341966def ("IBM zSystems: Add support for z16 as CPU name."). Use
6868 Change the bitwise operations names "and" and "or" to lower case. Change
6869 the register name abbreviations "FPR", "GR", and "VR" to upper case.
6879 Suffix the s390-mkopc build utility executable file name with
6887 * Makefile.am: Add target to build s390-mkopc.o. Correct
6888 target to build s390-mkopc$(EXEEXT_FOR_BUILD).
6896 Fix one minor pointer-sign warning to enable warnings in general
6907 Revert most of this patch, it isn't correct to free the BFD_IN_MEMORY
6962 gdbarches usually register functions to check when a frame is destroyed
6969 when a frame is destroyed. This patch re-adds the code to register the
6971 the producer is LLVM, so gcc code isn't affected. The logic that
6976 This can also remove the XFAIL added to gdb.python/pq-watchpoint tests
6984 sim: common: delete unused argbuf in generated mloop code
6985 This function only uses prev_abuf, not abuf, and doesn't inline code
7071 Then the la.got in a.o should be relaxed to la.pcrel, and the resulted f
7082 check is enough not to wrongly relax preemptable symbols (for e.g.
7085 Note that on x86_64 this is also relaxed and the produced code is like:
7101 Basically to optimize some CRC loops into table lookups or carryless
7102 multiplies, we may need to do a bit reflection, which on the mcore
7107 extended from 32 to 64 bits. When we rotate the extended value, we get
7127 to true. Add --disable-threads --disable-libasprintf.
7148 Add %E to error messages.
7152 gdb/testsuite: another attempt to fix gdb.threads/thread-specific-bp.exp
7180 FAIL: gdb.threads/thread-specific-bp.exp: non_stop=on: continue to end (timeout)
7184 still only occurs sometimes. I've had to leave the test running in a
7185 loop for 10+ minutes sometimes in order to see the failure.
7187 The problem is that we use gdb_test_multiple to try and match two
7198 to, and including the matched text is discarded from the input
7203 Then expect will first try to match <PATTERN 1>, which succeeds, and
7204 then expect discards the entire input buffer up to the end of the
7212 I think the easiest solution here is just to have the
7222 LoongArch: Add call36 and tail36 pseudo instructions for medium code model
7223 For tail36, it is necessary to explicitly indicate the temporary register.
7237 R_LARCH_CALL36 is used for medium code model function call pcaddu18i+jirl, and
7249 …program memory starts at 0x8000, so allow to specify program memory start at __TEXT_REGION_ORIGIN_…
7251 If ok, please apply to master.
7252 This one is also fine to back-port.
7281 PR28987 notes that optimized code sometimes shows the wrong
7283 code was optimized away and the variable has multiple values
7371 There is precedent for this, but it's something we want to get rid of
7384 [gdb/tui] Show regs when switching to regs layout
7385 When starting gdb in CLI mode, running to main and switching into the TUI regs
7414 It also turned out to be necessary to set scrollok to false, otherwise writing
7437 but no description of what they do, what the insn name means, or the
7439 Let's mark the fields to avoid unused variable warnings.
7454 but then forgetting to set it in the PSW. Add it like the other
7472 to the "=" function for packed boolean arrays.
7481 This changes ada_type_match to return bool.
7512 Now, the readability is improved thanks to the itemization of the options:
7522 Ok for binutils-master? I don't have commit access so I need someone to commit on my behalf.
7532 This patch adds support for the Cortex-X3 CPU to binutils.
7536 Ok for binutils-master? I don't have commit access so I need someone to commit on my behalf.
7550 behavior. Leverage ELF's section change hook to switch state as
7551 necessary, limiting overhead to the bare minimum when subsections aren't
7558 only look at now_seg, for a few others it looks as if failing to do so
7560 subsequent x86 change is going to require the sub-section to be properly
7563 This primarily means for obj_elf_section() to pass the new subsection
7564 into change_section(), for it to be set right away (ahead of invoking
7567 Also adjust obj_elf_ident() to invoke the hook after all section
7580 the adjacent boolean one to "bool".
7588 revert "x86: allow 32-bit reg to be used with U{RD,WR}MSR"
7590 specification is going to by updated in a way rendering this change
7596 this shrinks i386_opcode_modifier back to 2 32-bit words (albeit that's
7619 Addendum to PR31124
7620 This is a small addendum to PR31124 "rodata in flash for
7623 It adds some symbols so the startup code can set a lock
7627 computations / decisions would have to be performed at
7630 It approved, please apply to master.
7645 The migration to local.mk in commit 0a129eb19a773d930d60b084209570f663db2053
7653 sim: m32r: use @cpu@_fill_argbuf_tp to set trace & profile state
7654 The mloop.in code does this, but these variants do not. Use it to
7656 also looks off, but that'll require a bit more work to fixup.
7674 When generating semantics.c from .igen source files, indenting the code
7703 (bfd_make_readable): Delete unnecessary code.
7707 Commit b05efa39b479 removed checks I added in commit f22f27f46c75 to
7724 (riscv_supported_std_z_ext) Add 'Zicntr' and 'Zihpm' to the list.
7733 Removed incorrect unnecessary code.
7743 Spotted what appears to be a copy&paste error in string_option_def,
7744 the code for string handling writes the address fetching callback
7749 and all of its members are function pointers, so they're going to be
7752 But it doesn't hurt to be correct, so fixed in this commit.
7759 This patch adds tests to exercise the previous patches' changes.
7781 gdb: migrate arm to new gdbarch_pseudo_register_write
7783 pseudo registers to non-current frames for that architecture.
7791 gdb: migrate arm to gdbarch_pseudo_register_read_value
7801 gdb: migrate aarch64 to new gdbarch_pseudo_register_write
7803 writing pseudo registers to non-current frames on this architecture.
7813 It seems like the intention here is to read the contents of the ZA
7815 the ZA register, so it looks like we'll write uninitialized bytes to the
7817 pseudo register. Add a call to raw_read to fix this.
7819 I don't know how to test this though.
7828 This is not necessary, but it seems more natural to me to make
7838 gdb: migrate i386 and amd64 to the new gdbarch_pseudo_register_write
7840 fixes writing to pseudo registers in non-current frames for those
7850 frame_info in order to write raw registers. Use this new method when
7853 - in put_frame_register, when trying to write a pseudo register to a given frame
7856 No implementation is migrated to use this new method (that will come in
7859 The objective is to fix writing pseudo registers to non-current
7868 gdb: rename gdbarch_pseudo_register_write to gdbarch_deprecated_pseudo_register_write
7870 that takes a frame instead of a regcache for implementations to write
7871 raw registers. Rename to old one to make it clear it's deprecated.
7878 gdb: change parameter name in frame_unwind_register_unsigned declaration
7887 Change gdbarch_pseudo_register_read_value to take a frame instead of a
7888 regcache. The frame (and formerly the regcache) is used to read raw
7889 registers needed to make up the pseudo register value. The problem with
7893 Let's say the user wants to read the ebx register on amd64. ebx is a pseudo
7922 In other to make this work properly, make the following changes:
7925 to unwind a register and that register is a pseudo register.
7928 in frame 0", which is obviously false. Return nullptr as a way to
7932 dwarf2_frame_prev_register) returns nullptr, and we are trying to
7933 read a pseudo register, try to get the register value through
7935 If using gdbarch_pseudo_register_read, the behavior is known to be
7936 broken. Implementations should be migrated to use
7937 gdbarch_pseudo_register_read_value to fix that.
7939 - Change gdbarch_pseudo_register_read_value to take a frame_info
7946 - Add some helpers in value.{c,h} to implement the common cases of
7950 - Update readable_regcache::{cooked_read,cooked_read_value} to pass the
7951 current frame to gdbarch_pseudo_register_read_value. Passing the
7957 - I do not plan on changing gdbarch_pseudo_register_read to receive a
7959 Instead, we should be working on migrating implementations to use
7962 - In frame_unwind_register_value, we still ask the unwinder to try to
7964 debug info to provide information about [1] pseudo registers, so we
7965 want to try that first, before falling back to computing them
7976 Add value::allocate_register, to facilitate allocating a value
7979 changed one relatively obvious spot that could use it, to at least
7980 exercise the code path.
7988 Similar to the previous patches, change get_frame_register_bytes to take
7997 Similar to the previous patches, change put_frame_register_bytes to take
8006 Similar to the previous patches, change put_frame_register to take the
8015 I was going to change frame_register to take the "next frame", but I
8025 gdb: change value_of_register and value_of_register_lazy to take the next frame
8026 Some functions related to the handling of registers in frames accept
8027 "this frame", for which we want to read or write the register values,
8029 to that. The later is needed because we sometimes need to read register
8030 values for a frame that does not exist yet (usually when trying to
8031 unwind that frame-to-be).
8036 need to call one of these functions (which happens later in this
8037 series). You need to get the previous frame only for those functions to
8041 I propose to change these functions (and a few more functions in the
8042 subsequent patches) to operate on "the next frame". Things become a bit
8046 to take "the next frame" instead of "this frame". This adds a lot of
8048 to also use "the next frame" instead of "this frame", it will get simple
8057 Change put_frame_register to take an array_view instead of a raw
8060 Add an assertion to verify that the number of bytes we try to write
8070 {get,put}_frame_register_bytes is reset to `buffer.data ()` at each
8072 beginning of `buffer` to read or write to the registers, instead of
8075 Fix this by re-writing the functions to chip away the beginning of the
8083 things, it could end up silently reading or writing to the next
8086 If I could change it, I would prefer to have functions specifically made
8088 that) and make {get,put}_frame_register_bytes only able to write within
8103 gdb: change regcache interface to use array_view
8104 Change most of regcache (and base classes) to use array_view when
8106 further, it enables having some runtime checks to make sure the what we
8107 read from or write to regcaches has the expected length (such as the one
8111 Add some overloads of the methods using raw pointers to avoid having to
8114 I tried to do this change in small increments, but since many of these
8115 functions use each other, it ended up simpler to do it in one shot than
8121 Changing the reg_buffer_common interface to use array_view caused some
8127 code will have the same endianness as the debugged process. To
8132 Change it to use `gdb_byte` pointers instead. Add overloads of
8135 be converted to use array_view with not much work, in which case these
8136 overloads could be removed, but I didn't want to do it in this patch, to
8137 avoid starting to dig in arch-specific code.
8140 behavior to not accept an offset equal to the register size. This
8142 caught by the AArch64 SME core tests. Add a selftest to make sure that
8153 1. When checking if we need to do nothing, if the length is 0, we don't
8154 need to do anything, regardless of the value of offset. Remove the
8158 to the register size, then we transfer the whole register, no need to
8161 3. In the gdb_asserts, it is unnecessary to check for:
8178 Change store_integer, store_signed_integer and store_unsigned_integer to
8179 accept an array_view. Add some backwards compatibility overloads to
8192 These abstractions allow code to be written for both gdb and gdbserver,
8196 different abstractions is impractical. If some common code has a regcache,
8197 and wants to use an operation defined on reg_buffer_common, it can't.
8198 It would be better to have just one. Change all instances of `regcache
8199 *` in gdbsupport/common-regcache.h to be `reg_buffer_common *`, then fix
8202 Implementations in gdb and gdbserver now need to down-cast (using
8203 gdb::checked_static_cast) from reg_buffer_common to their concrete
8205 (like regcache_register_size) to be virtual methods on
8206 reg_buffer_common. I tried it, it seems to work, but I did not include
8207 it in this series to avoid adding unnecessary changes.
8218 What tipped me off is the code in i386_pseudo_register_read_into_value:
8227 We take regnum (the pseudo register number we want to read), subtract
8228 k0_regnum, add k0_regnum, and pass the result to raw_read. So we would
8235 - Printing $k0 doesn't cause i386_pseudo_register_read_into_value to be
8237 - There's code in i387-tdep.c to save/restore the k registers.
8251 Currently, it's not possible to call a variadic C++ function:
8254 Cannot resolve function sum_vararg_int to any overloaded instance
8256 Cannot resolve function sum_vararg_int to any overloaded instance
8264 them to be called:
8316 This changes explicit_location_spec to use unique_xmalloc_ptr,
8324 This changes linespec_location_spec to use unique_xmalloc_ptr,
8342 to
8356 to change the direction of execution.
8368 We are making use of _PyOS_ReadlineTState in order to re-acquire the
8370 variable is set in Python's outer readline code prior to calling the
8375 Instead of using _PyOS_ReadlineTState, I propose that we switch to
8388 commit wants to make use of this class from a file other
8396 While making recent changes to 'save gdb-index' command I triggered
8397 some errors -- of the kind a user might be expected to trigger if they
8415 detail. The user doesn't care what function failed, but wants to know
8416 what was wrong with their input, and what they should do to fix
8419 Similarly, for a directory that does exist, but can't be written to:
8446 checks the case where a user tries to use an executable that already
8447 contains an index in order to generate an index. As part of the new
8448 test I've factored out some code from ensure_gdb_index (lib/gdb.exp)
8454 have_index (lib/gdb.exp) is similar to the new get_index_type proc, so
8455 I've rewritten have_index to also use get_index_type, I've confirmed
8460 to get an error anyway.
8471 to support APX NDD,
8495 Clean base_reg and assign correct values to regs for input_output_operand (%dx).
8497 the state of some variables needs to be cleaned.
8501 * config/tc-i386.c (i386_att_operand): Assign values to regs and
8517 ../../gdbserver/inferiors.cc:160: A problem internal to GDBserver has been detec
8521 This application has requested the Runtime to terminate it in an unusual way.
8522 Please contact the application's support team for more information.
8528 Fix gdb.FinishBreakpoint when returning to an inlined function
8540 The reason is that the frame_id of a breakpoint has to be the
8560 When using $_thread in info threads to showonly the current thread,
8587 * configure.tgt: Add eavrxmega2_flmap and eavrxmega4_flmap to avr's targ_extra_emuls list.
8601 Some psABIs define a relaxation to turn a GOT load into a PC-relative
8603 adrp+ldr to be rewritten to nop+adr to eliminate the memory load.
8604 This patch is part of the effort to make such optimization possible
8607 For RISC-V, we use the la assembly pseudo instruction to load a symbol
8608 address from the GOT. The pseudo instruction is expanded to auipc+ld.
8610 link-time constant, we want the linker to rewrite the instruction pair
8614 linker because there might be code that jumps to the middle of the
8616 you can at least in theory write a program in assembly that jumps to
8617 the ld instruction of the instruction pair. We need a marker to
8621 This patch is to annotate R_RISCV_GOT_HI20 with R_RISCV_RELAX only
8626 Proposal to the RISC-V psABI:
8632 (append_insn): Updated source_macro to tc_fix_data, to record
8635 source_macro to -1 at the end.
8639 Defined to record source_macro into fixups for riscv target.
8646 files. However, due to the large amount of relax and local relocation
8651 The implemntation is based on the code from bfd/elfnn-riscv.c. We probably
8652 can move the code to bfd/elfxx-riscv.c, so that can reduce duplicate code,
8657 may also be able to perform related optimizations.
8663 PC-relative high-part relocation that we have encountered to help us
8665 (riscv_pcrel_hi_fixup_hash): The hash table to record pcrel_hi fixups.
8688 racy, this code attempts to make it so that gdb doesn't inadvertently
8698 Cancellation will generally be seen by the DAP code as a
8700 Exception, so a small change is needed to send_gdb_with_response, to
8701 forward the exception to the DAP server thread.
8708 This renames a couple of DAP procs in the testsuite, to clarify that
8716 DAP cancellation needs a way to interrupt whatever is happening on
8718 or Python code.
8731 Move DAP JSON reader to its own thread
8732 This changes the DAP server to move the JSON reader to a new thread.
8733 This is key to implementing request cancellation, as now requests can
8742 DAP implementation of "not stopped" to use it. I was already touching
8743 some code in this area and I thought this looked a little cleaner.
8744 This also has the advantage that we can now choose not to log the
8752 Simplify DAP stop-reason code
8753 Now that gdb adds stop-reason details to stop events, we can simplify
8754 the DAP code to emit correct stop reasons in its own events. For the
8761 This changes Python stop events to carry a "details" dictionary, that
8770 Move py_ui_out to a new header
8771 This moves the declaration of py_ui_out to a new header, so that it
8772 can more readily be used by other code.
8796 I found some spots using "target:"; I think it's better to use the
8797 define everywhere, so this changes these to use TARGET_SYSROOT_PREFIX.
8805 Add DAP items to NEWS
8806 Now that DAP is in GDB 14, significant changes to it should be noted
8902 in link-time generally. We can use `.option relax/norelax' to enable/disable
8905 of `riscv_opts.relax' for every relocation. Therefore, set `relaxable' to
8919 * config/tc-riscv.c (md_apply_fix): Set the value of `relaxable' to
8927 to operate on a half-word by the howtos in elf32-mips.c, elfn32-mips.c
8928 and elf64-mips.c, but is incorrectly subject to shuffle/unshuffle in
8929 code like _bfd_mips_elf32_gprel16_reloc.
8931 Current behaviour when applying the reloc to .byte 0x11,0x22,0x33,0x44
8932 is to apply the reloc to byte 0x22 when big-endian, and to byte 0x33
8934 patch and little-endian correctly applies the reloc to byte 0x11.
8954 (Target_mips::Relocate::relocate): Adjust to suit.
8972 I've reimplemented the .debug_names code in GDB -- it was quite far
8973 from being correct, and the new implementation is much closer to what
8976 However, the new writer in GDB needs to emit some symbol properties,
8978 DW_IDX_* constants, and tries to document the existing extensions as
8979 well. (My patch series add more documentation of these to the GDB
8999 decoding instructions in the H8 simulator. It's not hard to see why --
9000 basically we take a blob of instruction data, then try to match it to every
9005 Naturally my first thought was to sort the table and use a binary search to
9006 find the right entry. That's made excessively complex due to the encoding on
9010 Another thought was to build a mapping to the right entry for all the
9017 zero" bit in the offset to encode new semantic information. So we can't select
9020 We could always to a custom decoder. I've done several through the years, they
9021 can be very fast. But no way I can justify the time to do that.
9023 So what I settled on was to first sort the opcode table by the first nibble,
9025 that index to start its search. This cuts the overall build/test by more than
9032 The net of the two changes is on my fastest server we've gone from 4:30 to 1:40
9074 window has the focus. Instead, you have to notice the absence of highlighting
9079 Likewise if highlighting is switched off by setting active-border-kind to the
9098 to print a global variable stub without a running inferior, because of
9100 check before it was converted to a method).
9120 in the stabs test I've switched to using the multi_line proc as that
9123 In gdb.ada/info_types.exp I did need to add an extra use of $eol as
9125 place we were actually expecting to match multiple newlines. The
9126 tighter pattern only matches a single newline, so we now need to be
9145 The problem is an attempt to match the entire output from GDB within a
9149 This commit changes the gdb_test_multiple to process the output line
9152 start of each line rather than the end, I think it's much clearer to
9157 line regexp ... except that $eol was set to '[\r\n]*', which isn't
9158 that helpful, so I've updated $eol to be just '\r\n' the actual end of
9171 option to the gdbserver command line, this commit updates the monitor
9172 command to allow for general:
9177 be any one of all, threads, remote, event-loop, and correspond to the
9180 While on the command line it is possible to do:
9184 the components have to be entered one at a time with the monitor
9186 grouping within the monitor command, but (to me) what I have here
9191 which is what the 'monitor set debug' command used to use. The 0/1
9213 gdbserver: allow the --debug command line option to take a value
9214 Currently, gdbserver has the following command line options related to
9221 This doesn't scale well. If I want an extra debug component I need to
9224 This commit changes --debug to take a list of components.
9232 is not really threads related. In the future I'd like to split this
9239 The component list is parsed left to write, and you can prefix a
9240 component with '-' to disable that component, so I can write:
9244 to get debug for all components except the event-loop component.
9247 command line options, these are equivalent to --debug=remote and
9248 --debug=event-loop respectively, or --debug=remote,event-loop to
9252 commit I'll update the monitor commands to support a similar
9262 flags, which can be passed to make in order to enable debugging within
9275 Appear to enable gdbserver debugging.
9277 I tracked this down to the GDB_DEBUG and GDBSERVER_DEBUG flags being
9280 RUNTESTFLAGS and TESTS, so I think it makes sense to add GDB_DEBUG and
9321 Since commit 03893ce67b5 ("[gdb/tui] Fix resizing of terminal to 1 or 2 lines")
9322 we're able to resize the TUI to 1 line without crashing.
9324 I noticed that if TUI is displaying main, and we resize to 1 line (destroying
9325 the src window) and then back to a larger terminal (reconstructing the src
9328 Fix this by moving the responsibility for showing main from tui_enable to
9337 Allow cast of 128-bit integer to pointer
9338 PR rust/31082 points out that casting a 128-bit integer to a pointer
9340 converted to use GMP.
9343 against the negative value here makes sense, but I opted to just
9354 or LOC_CONST_BYTES symbol will fail, leading to output like:
9361 Thanks to tpzker@thepuzzlemaker.info for a first version of this
9375 compiled binaries, since gcc only adds statements to the line table, but
9384 set the end of the SAL to before the next statement or the first
9385 instruciton in the next line, instead of naively assuming that to be the
9426 cpu file has a hack to workaround a cgen bug, but that generates a set
9432 Rework the code to use static inline functions when it's disabled
9440 The function returns void, not int. We only pass one argument to
9464 sim: m32r: add more cgen prototypes to enable -Werror in most files
9469 The cgen code mixes virtual insn enums with insn enums, and there isn't
9470 an obvious (to me) way to unravel this atm, so disable the warning.
9474 to different enumeration type 'CGEN_INSN_TYPE' (aka 'enum cgen_insn_type')
9486 Debugging applications with "record full" fail to record with the error
9497 sim: cris: move generated file to right place
9502 our own to catch recent issues. Comment out the C++-specific flags
9507 Add more 'step' tests to gdb.base/watchpoint.exp
9509 which claims to "Test stepping and other mundane operations with
9514 However, that final 'step' command steps to (but not over/through) the
9515 line at which the assignment to ival2 takes place. At no time while
9518 This commit adds a test to see what happens when stepping over/through
9519 the assignment to ival2. The watchpoint on ival2 should be triggered
9520 during this step. I've added another 'step' to make sure that the
9526 'test_stepping' to stop at the particular statement at which it had
9530 been able to identify a(nother) test case which tests what happens
9551 I noticed it when I was trying to set a breakpoint at ExitProcess:
9578 where VMA was then calculated relative to FORWARD_DLL_NAME, while it was
9579 relative to DLL_NAME before.
9581 Fixed by calculating VMA relative to DLL_NAME again.
9598 The recent changes to the way Ada names are matched means that
9605 name matching, by having a subset of matches call
9607 it seemed to me that expand_matching_symbols should not be needed at
9611 to use the decoded name, rather than the encoded name. In order to
9614 wide characters. The latter change is done so that changes to the Ada
9617 With this in place, we can change ada-lang.c to always use
9622 Improve performance of Ada name searches
9624 structure -- could be slow. I tracked this down to
9626 Specifically, calls like the one to look for a parallel "__XVZ"
9639 faster because it is more selective about which index entries to
9666 doesn't convert enabled watchpoints to use hardware.
9669 possible to use hw watchpoints in restored recordings anyways.
9693 and is caused by this block of code:
9699 n_threads=5 to 8. Therefore, clamp the default value to 8 to avoid an
9705 The arguments to std::clamp are VALUE, LOW, HIGH, but in the above, if
9709 I believe std::clamp is the wrong tool to use here. Instead std::min
9720 to a regression reported in PR29572, and implements a different fix for PR29453.
9722 The fix is to not use the CU table in a .debug_names section to construct
9739 Prior to commit 0e3c1eebb2 nm output depended on the host unsigned
9743 of course a bug, but it is reasonable to expect 32-bit target output
9745 it was on 32-bit hosts prior to 0e3c1eebb2.
9762 Tobias reported on IRC that the linker fails to build with GCC 4.8.5.
9763 In configure I've tried to use everything actually used in the sha1.c
9768 intentionally compile time only) due to implicit function declaration,
9769 but then failed to link when linking the linker, because
9773 to make sure the functions are declared.
9788 other out in search_minsyms_for_name, which makes it impossible to set
9797 [Inferior 1 (process 10004) exited with code 03]
9806 [Inferior 1 (process 5532) exited with code 03]
9809 The fix is to simply ignore other trampoline symbols when looking for
9837 number of worker threads. However, it neglected to update the assertions
9838 using this text, which caused index-file.exp to fail. This commit
9850 code.
9870 This patch changes it to the correct len-1.
9875 Fix some of the sim_fpu calls to use the right types. While I'm
9877 simple oversights due to the name/type mismatches. This at least
9880 sim: sh: trim trailing whitespace in generated code
9881 No functional change here, but makes it a little easier to read the
9882 generated code when editors aren't highlighting all the spurious
9887 values, not a signal constant. Fix the logic to pass the right
9896 do the bare min conversion to keep it compiling.
9917 * config.bfd (targ_selvecs): Add riscv64_pei_vec to all riscv*
9965 I've also rewritten ALPHA_R_OP_STORE handling to support writing to
9984 _bfd_elf_slurp_version_tables, a variable added to tag the case where
9987 better to do without the extra variable entirely. It's easy to infer
9996 This adds the efi target name handling for riscv64 to objcopy.
9999 * binutils/objcopy.c: add riscv64 handling to
10013 Reuse the bfd/development.sh script like most other project to
10020 This code tries to use attach_type enums as hw_phb_decode, and while
10021 they're setup to have compatible values, the compiler doesn't like it
10026 (aka 'enum _attach_type') to different enumeration type
10038 to include the header and nothing else. Use the former to determine
10039 whether to use the function and nothing else. If we find a system
10041 figure out how to support it then. The manual local definition is
10042 clashing with the system ones and leading to build failures with
10052 aarch64-elf: FAIL: indirect call stub to BTI stub relaxation
10053 aarch64-elf fails the ld-aarch64/bfd-far-3.d test, due to the stubs
10054 being emitted in a different order to that of aarch64-linux. They are
10055 emitted in a different order due to stub names for local symbols
10056 having the section id in the stub name. aarch64-linux-ld generates
10058 the stub names differ and are hashed to different slots in
10063 the start of a group of stubs to not care about the symbol, for all
10075 gdb/testsuite: fix directory name in test name
10083 I added a test which has a directory name within the GDB command,
10084 which then appears in the test name as I failed to give the test a
10085 better name.
10118 I think it is clearer for binutils to follow this, particularly
10119 because DW_IDX_parent refers to this number.
10122 Currently the dumping code assumes there is always an array of hashes.
10138 in progress that change gdb both to omit the hash table and to use
10148 gdb: add Ciaran Woodward to gdb/MAINTAINERS
10162 - jumpsr: Jump / branch relative to subroutine.
10170 instructions are annotated as jumpsr (jump to subroutine).
10175 For non-code it is set to dis_noninsn. Otherwise it defaults to
10178 instruction type needs to be provided before printing of the
10179 instruction, as it is used in print_address_func() to translate the
10180 argument value into an address if it is assumed to be a PC-relative
10188 * opcode/s390.h: Define opcode flags to annotate instruction
10200 * s390-mkopc.c: Add opcode flags to annotate information
10213 the code here cannot in fact fall through.
10219 should have been converted to use the annotation instead.
10226 This commit enables the early initialization commands (92e4e97a9f5) to
10229 The motivation here is to prevent gdb from spawning a detrimental number
10235 1. Thread pool size is initialized to 0.
10238 set to the number of system cores (if it has not already been set).
10250 to set the required number of threads without needing to default to the
10253 There does exist a configure option (added in 261b07488b9) to disable
10254 multithreading, but this does not allow for an already deployed gdb to
10258 to control the number of worker threads spawned on many-core systems.
10277 prior to this change.
10288 The next commit wants to use a 'show' command within an early
10294 interpreter is responsible to installing the default uiout (accessed
10295 through current_uiout), and as a result code that depends on
10304 handling has to occur before Python is setup -- that's the whole point
10305 of this feature (to allow customisation of how Python is setup).
10330 I noticed that after resizing to a narrow window, I got:
10363 to detach an inferior, the inferior may have been exited or have been
10373 The bug which brought this problem to my attention is one in which the
10374 pwntools library uses GDB to to debug a process; as the script is
10376 also sends GDB a SIGTERM signal, which causes GDB to detach all
10377 inferiors prior to exiting. Here's a link to the bug:
10382 reproducer script does (with regard to shutting things down), but
10383 reproduces the bug much less reliably. I have found it necessary to
10385 see it within 5-10 repetitions.) If you choose to try this command,
10394 So, basically, the idea here is to kill both gdb and cat at roughly
10395 the same time. If we happen to attempt the detach before the process
10427 problems as well. In addition to testing detach when the inferior has
10428 terminated due to a signal, it also tests detach when the inferior has
10437 For the checkpoint detach problem, I chose to pass the lwp_info
10438 to linux_fork_detach in linux-fork.c. With that in place, suitable
10442 modified the caller code so that the newly added asserts shouldn't
10446 Lastly, I'll note that the checkpoint code needs some work with regard
10447 to background execution. This patch doesn't attempt to fix that
10449 the situation with detach because, due to the check noted above,
10452 the checkpoint code when there are multiple inferiors. See:
10457 primary author of this test case. Its design is similar to that of
10462 occur when GDB attempts to detach an inferior process. The process
10463 can exit or be terminated (e.g. via SIGKILL) prior to GDB's event
10464 loop getting a chance to remove it from GDB's internal data
10480 binutils: Fix documentation typo in the --set-sect-name option
10481 Fix a --set-sect-name typo in the description of objcopy
10495 changed some C compiler tests to assembler/linker tests which introduced
10498 1. It broke x32 binutils tests since --64 was passed to assembler, but
10499 -m elf_x86_64 wasn't passed to linker.
10500 2. -nostdlib was passed to C compiler driver to exclude standard run-time
10503 Fix them by passing -m elf_x86_64 to linker and removing -nostdlib for
10507 * testsuite/ld-x86-64/x86-64.exp: Pass -m elf_x86_64 to linker
10518 kernel. In particular, it's possible to ptrace just a single thread.
10519 If gdb tries to attach to a multi-threaded inferior, where a non-main
10521 into an infinite loop attempting to attach.
10524 fails to attach to any thread of the inferior.
10529 This changes linux_proc_attach_tgid_threads to use gdb_dir_up. This
10537 linux_proc_attach_tgid_threads computes a file name, and then
10538 re-computes it for a warning. It is better to reuse the
10539 already-computed name here.
10548 regcache::transfer_regset and regcache_map_entry_size to work properly.
10564 I said "seems like the intent is", because there appears to be a small
10579 partly due to aarch64_linux_iterate_over_regset_sections failing to add
10583 The sequence to the crash is:
10592 - transfer_regset detects that the register to transfer wouldn't fit in
10594 - The outer loop tries to go read the next regcache_map_entry, but
10613 register in the remaining buffer space, and transfer it from/to there.
10614 This is very likely not an expected behavior, we wouldn't expect to
10615 read/write this sequence of registers from/to the buffer.
10620 to do.
10628 Add link to Debugger Adapter Protocol node in documentation
10629 I noticed that the interpreters node in the docs links to the DAP
10630 protocol docs, but I thought the DAP node ought to as well. This
10638 If the value to be shifted has the sign bit set, the sign
10657 Sending the command "break foo<tab>" to GDB will return
10666 That change was added because we wanted to avoid forcing a completion
10667 failure to fail through timeout, which it had to do because there is no
10668 way to verify that the output is done, mostly because when I was trying
10669 to solve a different problem I kept getting reading errors and testing
10672 This commit implements a better way to avoid that frustration, by first
10676 prompt again, so we don't need to rely on timeouts. With this, the
10677 change to test_gdb_complete_tab_unique has been removed as that test
10686 …This is a patch to simplify the pd_activate () in aix-thread.c incase of a failure to start a thre…
10695 * nm.c (main): Remove spurious colon after U in the call to getopt_long
10703 binutils/Dwarf: avoid "shadowing" of glibc function name
10713 Just like avoiding to do certain transformations potentially affected by
10719 Warning without knowing what's going to follow isn't useful, the more
10726 .nop and .nops generate code, not data. Hence them invoking
10731 Just like avoiding to do other transformations potentially affected by
10739 Note, however, that intermediate sub-section switches will continue to
10742 While there also add recording of state to s_insn().
10746 x86: allow 32-bit reg to be used with U{RD,WR}MSR
10747 ... as MSR index specifier: It is unreasonable to demand that people
10748 write less readable / understandable code, just because the present
10749 documentation mentions only Reg64. Whether to also adjust the
10751 to what the spec says.
10758 CXX cp-name-parser.o
10759 …/Users/smarchi/src/binutils-gdb/gdb/cp-name-parser.y:1644:7: error: fallthrough annotation does no…
10802 coprocessor, it able to encoding opcode like .insn but with predefined
10843 A frozen specification is allowed to change within tight bounds
10867 [gdb/build] Fix adding -DNDEBUG to python flags of release build
10872 intends to ensure that -DNDEBUG is added to the python flags of a release
10877 configure:22024: checking compiler flags for python code
10883 to GDB_AC_COMMON"), which introduced a reference before assignment:
10891 [ This was not obvious to me, but apparently evaluating an empty or undefined
10892 variable in this context is similar to using ':' or 'true', so the line is
10898 Fix this by moving GDB_AC_COMMON up in gdb/configure.ac, similar to how that
10901 [ Unfortunately, the move might introduce issues similar to the one we're
10902 fixing, and I'm not sure how to check for this. Shellcheck doesn't detect
10904 src/gdb directory to make sure ../bfd/development.sh is taken into account)
10912 configure:25214: checking compiler flags for python code
10924 MIPS/GAS: Add -march=loongson2f to loongson-2f-3 test
10935 We don't support mips64*-img* due to GCC doesn't support it,
11003 symbol of interest, we can reduce the time to dump a 4k insn file of .norvc and
11004 .rvc insns from ~47 seconds to ~0.13 seconds.
11009 and rename to riscv_is_valid_mapping_symbol.
11010 (riscv_update_map_state): Add state updating logic to seperate function.
11017 This patch makes the BPF assembler to support double-slash line
11024 This patch also adds a couple of tests to make sure all the comment
11026 updated to mention double-slash line comments.
11035 C++17 makes the second parameter to static_assert optional, so we can
11049 gdbsupport/scope-exit.h has a couple of comments about being able to
11072 Enable some C++14 code in array-view.h
11073 This changes gdbsupport/array-view.h to enable some code that is
11080 Switch to -Wimplicit-fallthrough=5
11081 This changes the various gdb-related directories to use
11091 This changes gdb to use the C++17 [[fallthrough]] attribute rather
11097 I suspect this fixes the bug mentioned below, by switching to a
11109 modified to support the GNU style long option syntax. Compatibility with
11112 In addition to this, various lay-out changes have been implemented. In
11113 particular to reduce the number of lines that extend beyond column 79.
11125 addressed. In addition to fixes for typos, the texts have been expanded
11153 it comes to error handling.
11155 Previous to this commit if any commands implemented in Python
11160 This makes is difficult to debug any errors encountered when writing
11164 I don't think this is a good idea. GDB should encourage extensions to
11168 In this commit I've gone through the Python command completion code,
11169 and added calls to gdbpy_print_stack() or gdbpy_print_stack_or_quit()
11175 method; this routine includes a call to gdbpy_is_string to check a
11178 I was tempted to remove this check, attempt to complete each result to
11185 such, and to avoid (what I think is pretty unlikely) breakage of
11186 existing code, I've retained the gdbpy_is_string check.
11191 string, but still can't convert it to a string, then I think it's OK
11192 to display the error in that case.
11195 cmdpy_completer_helper, and the call to PyObject_CallMethodObjArgs,
11202 most useful change. If the user code is wrong in some way, such that
11205 them, making it, I think, much easier to debug their extension. But,
11206 if there is user code in the wild that relies on raising an exception
11207 as a means to indicate there are no completions .... well, that code
11208 is going to break after this commit. I think we can live with this
11214 to stop. Within GDB the completion code is called twice, the first
11215 time to compute the work break characters, and then a second time to
11222 call the Python completion code again, which results in another call
11223 to PyObject_CallMethodObjArgs, which might raise the same exception
11232 I've added some tests to cover this case, as I think this is the most
11260 gdb: fix call to breakpoint_inserted_here_p in darwin-nat.c
11265 …binutils-gdb/gdb/darwin-nat.c:1169:7: error: no matching function for call to 'breakpoint_inserted…
11283 or attached to. gdb was not emitting this (several DAP clients appear
11284 to ignore it entirely), but it looked easy and harmless to implement.
11302 drawback is that it makes the expression harder to read.
11304 Use const std::string to encapsulate the string literals, and use
11317 sim: bpf: do not use semicolon to begin comments
11318 The BPF assembler has been updated to follow the clang convention in
11325 The BPF assembler in clang uses semi-colon (;) to separate statements,
11326 not to be begin line comments. This patch adapts the GNU assembler
11349 The following patch attempts to use x86 SHA ISA if available to speed
11356 a bad idea to lie to users, if they choose --buildid=sha1, we should
11385 great, it makes it super easy to run some test(s) using all the
11388 This commit aims to make this script even easier to access by adding a
11389 check-all-boards target to the GDB Makefile. This new target checks
11398 that should be passed to the make-check-all.sh --target-user and
11401 My personal intention is to set these variables in my environment, so
11402 all I'll need to do is:
11406 The make rule always passes --keep-results to the make-check-all.sh
11407 script, as I find that the most useful. It's super frustrating to run
11414 I have been making more use of the make-check-all.sh script to run
11418 board, I have to run make-check-all.sh with --verbose and --dry-run in
11419 order to see what RUNTESTFLAGS I should be using.
11423 written out to a file within the stored results directory, like:
11427 then, if I want to rerun a test, I can just:
11436 Similar to the previous commit, this commit ensures that the dwarf-5
11441 bucket_hash local within debug_names::build(). Entries are added to
11443 by calls to debug_names::insert() in write_debug_names. The insert
11448 My proposal is to sort each chain within the bucket_hash closed hash
11449 table prior to using this to build the dwarf-5 index.
11456 I've extended the index creation test to cover this case.
11467 The cause seems to be how the CU are distributed between threads, and
11483 I would like to suggest that yes, this does matter. At Red Hat we
11485 ideally like to have reproducible builds: for the same source,
11489 Now we could simply force GDB to only use a single worker thread when
11501 I've extended the existing index-file test to check that the generated
11504 to the worker-thread count. Maybe this test should be changed to use
11505 a smaller binary, which is quicker to load, and for which we could
11516 Fold an additional snippet of code from write_gdbindex into
11517 mapped_symtab::minimize, this code relates to minimisation, so this
11521 mapped_symtab private. Provide a new obstack() member function to
11522 provide access to the obstack when needed, and also add member
11527 I've also taken this opportunity to split out the logic for whether
11542 which don't actually result in new items being added to the hash
11556 Obviously, not every gdb-index file is going to see such big savings,
11569 bothered to check the upper limit, and over full hash table isn't
11579 Split out the code that makes a copy of the GDB executable ready for
11580 self testing into a new proc. A later commit in this series wants to
11582 index), but doesn't need to make use of the full do_self_tests proc.
11591 Add proper support for option completion to the 'save gdb-index'
11592 command. Update save_gdb_index_command function to make use of the
11600 Add a call to gdb_tilde_expand in the save_gdb_index_command function,
11635 ppc_linux_nat_target::auxv_parse to misinterpret the auxv vector.
11664 /* Switch to no-thread while running clone_program_space, so
11665 that clone_program_space doesn't want to read the
11672 but moving the maybe_new_address_space call to before that gives us the
11727 - a second program space is about to be created. maybe_new_address_space
11737 Hardcoding linux_is_uclinux to false makes the test-case pass.
11746 A better solution might be to have the address spaces be reference counted
12291 We have a target board cc-with-gdb-index that uses the gdb-add-index script to
12292 add a .gdb_index index to an exec.
12300 index-cache does: the index-cache can add an index to an exec with a
12304 this target board extends the test coverage to the entire test suite. This
12317 Change serial_readchar to throw
12318 This changes serial_readchar to throw an exception rather than trying
12319 to set and preserve errno.
12325 Change serial_send_break and serial_write to throw
12326 This changes serial_send_break and serial_write to throw exceptions
12327 rather than attempt to set errno and return an error indicator. This
12330 Both functions had to be converted in a single patch because one
12333 This also introduces remote_serial_send_break to handle error checking
12334 when attempting to send a break. This was previously ignored.
12340 Change serial "open" functions to throw exception
12341 remote.c assumes that a failure to open the serial connection will set
12342 errno. This is somewhat true, because the Windows code tries to set
12344 the "pex" code sets it, and the tcp code seems to do the wrong thing.
12345 It seems better to simply have the serial open functions throw on
12352 Change serial_setbaudrate to throw exception
12353 remote.c has this code:
12357 /* The requested speed could not be set. Error out to
12358 top level after closing remote_desc. Take care to
12359 set remote_desc to NULL to avoid closing remote_desc
12363 perror_with_name (name);
12368 This patch changes serial_setbaudrate to throw an exception instead.
12376 perror_with_name, and changes various places in gdb to call it.
12405 and arranges for this to emit continue and stop events when
12406 appropriate. It also fixes the original bug, by adding a check to
12423 sequence are used as the completions. It is up to 'complete'
12424 to ensure that the contents actually do complete the word. A
12452 else in the Python completion code, we instead just return with the
12558 for cmdline to contain \0s, so switch to target_fileio_read_alloc().
12570 allowing to shrink the table even on 32-bit builds, this results in
12595 would merely resolve to a sequence of hint insns (and hence not cause
12598 symbol as address and hence causing runtime issues. Refuse to assemble
12601 preferable over converting match_never() to match_always()), while
12602 other matching functions now (also) used for macro insns need to avoid
12608 want to err on the safe side.
12633 s390: Correct prno instruction name
12639 * s390-opc.txt: Correct prno instruction name.
12650 The following added extended mnemonics are synonyms to a base mnemonic
12659 mnemonic, but disassemble into their base mnemonic due to design
12678 should better be added together, not to confuse the user, which of those
12697 * config/tc-s390.c: Add support to insert operand for format
12722 s390: Align optional operand definition to specs
12724 operand(s) of some (extended) mnemonics to be optional. Align the
12725 mnemonic definitions in the opcode table according to specification.
12727 This changes the last operand of the following (extended) mnemonics to
12732 erroneously been defined to have two. For backwards compatibility the
12741 * s390-opc.txt: Align optional operand definition to
12757 s390: Make operand table indices relative to each other
12759 the operands table without having to renumber all operand indices.
12770 * s390-opc.c: Make operand table indices relative to each other.
12776 s390: Add brasl edge test cases from ESA to z/Architecture
12804 Use regular expressions with backreferences to verify results of test
12823 MIPS/GAS: Fix test failures due to jr encoding changes on r6
12834 A recent change to 'struct field' caused a build failure with GCC
12838 ‘field::m_accessibility’ is too small to hold all values of ‘enum
12846 This patch works around the bug by changing several members not to be
12850 I also changed m_bitsize to no longer be a bitfield -- that was done
12855 gdb to have these dummy fields to keep track of any available padding.
12856 However, since the advent of "ptype/o", there doesn't seem to be any
12866 it makes sense to group them into smaller chunks in form of
12896 it makes sense to group them into smaller chunks in form of
12926 it makes sense to group them into smaller chunks in form of
12952 it makes sense to group them into smaller chunks in form of
12983 it makes sense to group them into smaller chunks in form of
13014 it makes sense to group them into smaller chunks in form of
13045 it makes sense to group them into smaller chunks in form of
13084 makes sense to group them into smaller chunks in form of vendor
13089 extension, but belongs to the "XTheadVector" extension. The 'th' prefix
13115 it makes sense to group them into smaller chunks in form of
13145 Therefore it makes sense to group them into smaller chunks
13170 Therefore it makes sense to group them into smaller chunks
13205 Therefore it makes sense to group them into smaller chunks
13213 Here are some things that need to be explained:
13255 …The reason for the same was GDB core trying to switch to a child thread with tid not set that does…
13256 …exist, since child's ptid was changed to ptid_t (pid, 0, tid) in sync_threadlists() as it was thre…
13266 [gdb/tui] Fix resizing of terminal to 1 or 2 lines
13273 and resizing the terminal to 2 lines we run into a segfault.
13279 This discrepancy eventually leads to a call to newwin in make_window with:
13298 that get_windows only returns visible windows, which leads to tui_windows
13332 This discrepancy eventually leads to a call to newwin in make_window with:
13346 The easiest way to fix this is to change the minimum height of the command
13347 window to 1. However, that would also change behaviour for the case that the
13350 cannot increase the source window height to the point that the command window
13385 to install it.^M
13425 The C++ type-printing code had its own variant of the accessibility
13426 enum. This patch removes this and changes the code to use the new one
13429 This patch also changes the C++ code to recognize the default
13431 lets us remove a chunk of questionable code.
13439 This changes nested types and member functions to use the new
13442 code in the next patch.
13481 to use it.
13492 A new 'enum accessibility' is added to hold some of this information.
13497 optimized out -- unfortunately nobody has updated the stabs reader to
13501 gdbtypes.h to this effect.
13509 This changes recursive_dump_type to print field accessibility
13518 Use .def file to stringify type codes
13519 This changes recursive_dump_type to reuse the type-codes.def file when
13522 This version of the patch changes the "unknown" case to an assert.
13530 This changes parse_bpf_register to detect possible symbols that start with valid
13531 register name, however due some following characters are not.
13538 Recently, -Walloc-size warnings started to kick in. Fix these two
13539 calloc() calls to match the intended usage pattern.
13557 …/Users/smarchi/src/binutils-gdb/gdb/darwin-nat.c:1290:9: error: too many arguments to function cal…
13571 A couple of spots in the DAP code use the same workaround for the
13581 According to the function comment though, it should return -1 on error:
13588 similar to how that was fixed for arm in commit eb42bb14895 ("[gdb/tdep] Fix
13662 Given that C++17 is now a requirement for GDB, update gdb/disasm.h to
13686 Now that all places using gdb::string_view have been updated to use
13702 use the std::string ctor or implicit conversion from std::string_view to
13724 Two places are manually adjusted to account for this difference:
13745 The previous patch migrated all the uses of gdb::optional to use
13797 Catchpoint 18 (call to syscall execve), 0xf7726318 in execve () from \
13816 execve, and the pc is at the first insn of the new exec, which also happens to
13817 be the first insn in the code segment, so consequently we cannot read the
13821 to what is done in aarch64_linux_get_syscall_number.
13845 In AIX, we are not able to see the message of a signal recieved if a debugee recieves a signal.
13846 This is a patch to fix the signal handling done incorrectly in AIX.
13848 … remove the status that represent program recieving a signal and allow host_status_to_waitstatus to
13862 This binary causes a segfault in GDB. GDB is trying to write the .dynamic
13864 allocation silently fails and the subsequent access to the memory is
13868 no control over. So I changed the code to heap allocation.
13870 In addition, I changed the type of sect_size to the type that bfd actually
13891 * dwarf.c (display_gdb_index): Restore v9 display code.
13897 r3 contains the address of where the data structure to be returned is to
13900 function at the end of the function. GDB needs to use the
13901 DW_TAG_call_site information to determine the value of r3 on entry to
13902 the function to correctly print the return value at the end of the
13904 DW_TAG_call_site information to be included in the executable file.
13906 This patch adds the -fvar-tracking option to the compile line if the
13919 The intent of the obscure "cu-mapped link" feature is to allow you to
13923 larger components are hidden from name lookup so you can only look up (an
13924 arbitrary one of) them by name, but can still be found by chasing type graph
13928 ctf_link_add_cu_mapping (fp, "CU name", "bigger lump name"), repeatedly,
13929 with different "CU name"s: the ctf_link() following that will put all
13930 conflicting types found in "CU name"s sharing a "bigger lump name" into a
13931 child dict in an archive member named "bigger lump name".
13934 "bigger lump name" more than once, because that's the whole point of it: but
13935 what if you call it with the same "CU name" repeatedly?
13937 ctf_link_add_cu_mapping (fp, "CU name", "bigger lump name");
13938 ctf_link_add_cu_mapping (fp, "CU name", "other name");
13940 This is meant to be the same as just doing the second of these, as if the
13945 Fix this to work the right way round.
13947 (I plan to add support for CU-mapped links to GNU ld, mainly so that we can
13966 In this commit I update reopen_exec_file to correctly handle
13968 system 'stat' call, which obviously isn't going to work for files with
13971 By switching to bfd_stat we will use remote fileio to stat the remote
13976 result of bfd_stat is set with a call to bfd_get_mtime, which in turn
13977 calls bfd_stat, so comparing to the result of calling bfd_stat makes
13985 I don't believe that GDB can set the main executable to an in-memory
13987 not in-memory. If this ever changes then we would need to decide how
13988 to handle this case -- always reload, or never reload. The assert
13989 doesn't appear to trigger for our current test suite.
13996 In the following commit I ran into a problem. The next commit aims to
14012 to check if the underlying, on-disk file has changed, then the bfd
14015 the on-disk file name.
14030 before the bfd_stat call that I plan to add in the next commit, that
14033 Better I think would be to track down where the bfd is being opened
14035 once we've finished doing whatever it is that caused us to open the
14039 problem down to elf_locate_base and fixed that. But that just exposed
14045 .... And so, I wonder, is there a _better_ way to handle these
14050 1. It's fragile. Folk aren't always aware that they need to clear
14051 the bfd cache, and this feels like something that is easy to
14052 overlook in review. So adding new code to GDB can innocently touch
14054 lie hidden until an on-disk file just happens to change at the wrong
14055 time ... and GDB fails to spot the change. Additionally,
14057 2. It's in efficient. The caching is intended to stop the bfd
14058 library from continually having to re-open the on-disk file. If we
14060 obvious place to call bfd_cache_close_all. But if a single GDB
14071 completing a command, and GDB is about to enter an idle state
14074 changes the on-disk file(s) then we would like GDB to notice this
14081 inferior event arrives we want GDB to notice any changes to on-disk
14086 thought was that I should attach to these observers in gdb_bfd.c, and
14096 GDB command (using gdb.execute), so Python code might end up causing
14097 some bfds to be reopened, and inserted into the cache.
14099 To solve this one solution would be to add a bfd_cache_close_all()
14105 So instead, I think a better solution might be to not use observers
14120 The previous commit introduced some local variables to make some if
14122 process_event_stop_test in order to simplify the function a little more.
14131 function due to a recursive call, it doesn't print frame information, as
14133 leaves the current frame, GDB decides to refresh the step information,
14134 clobbering the original step_frame_id, making it impossible to figure
14141 information to be read when it normally wouldn't before, which showed up
14143 isn't a problem, the test was changed to allow for the new output.
14158 gas: bpf: do not allow referring to register names as symbols in operands
14169 to refer to register names as symbols in instruction operands.
14180 cases this can cause the parser to incorrectly parse part of the
14181 instruction opcode as an expression, which leads to the creation of a
14186 during the process are added to the symbol table and are not removed
14190 directly to the Linux kernel, without being linked. These erroneous
14198 those symbols are committed to the real symbol table.
14203 RISC-V: adjust logic to avoid register name symbols
14205 Many thanks to Jan for recognizing the problem as similar, and pointing
14206 me to that patch.
14217 symbols to symbol table on successful parse.
14218 * config/tc-bpf.h (md_parse_name): Define to...
14226 gdb: pass address_space to target dcache functions
14227 A simple refactor to make the reference to current_program_space bubble
14235 Remove get_current_regcache, inlining the call to get_thread_regcache in
14237 the local context. Otherwise, fall back to passing `inferior_thread ()`.
14239 This makes the reference to global context bubble up one level, a small
14240 step towards the long term goal of reducing the number of references to
14242 to the top of the call tree).
14251 While looking at the regcache code, I noticed that the address space
14252 (passed to regcache when constructing it, and available through
14254 regcache::aspace use that method because it appears to be a convenient
14256 regcache. But there is always another way to get the address space, as
14258 The regcache code itself doesn't use the address space.
14260 This patch removes anything related to address_space from the regcache
14261 code, and updates callers to get it from the thread in context. This
14262 removes a bit of unnecessary complexity from the regcache code.
14269 Maybe this method was just added because we needed a way to get an
14271 address space), and this seemed like the right way to do it, I don't
14280 assume that it's fine to use the inferior's address space everywhere.
14281 Callers of regcache::aspace are updated to get the address space from
14285 So, to summarize:
14287 - remove everything in regcache related to address spaces
14289 get_thread_arch_aspace_regcache to get_thread_arch_regcache
14292 - adjust all users of regcache::aspace to get the address space another
14301 These read weirdly to me, and since they aren't necessary, this patch
14316 Hannes' patch to show local variables in the TUI pointed out that
14327 This patch implements this for gdb. Most requests are assumed to
14333 request, the request may be processed at any time relative to a stop.
14342 ExecutionInvoker is no longer really needed, due to the previous DAP
14352 Nearly every DAP request implementation forwards its work to the gdb
14354 'request' decorator to make this automatic, and to provide some
14358 In a few spots this simplifies the code by removing an unnecessary
14364 the parameterization of 'request' makes it easy to handle the
14376 DAP specifies a StackFrameFormat object that can be used to change how
14377 the "name" part of a stack frame is constructed. While this output
14382 While implementing this, I discovered that the current code does not
14384 iteration to preserve this, and it turned out to be simpler to combine
14403 mistaken to mean something that isn't meant. Replace most of its uses by
14411 x86: don't allow pseudo-prefixes to be overridden by legacy suffixes
14416 {disp16} is invalid to use in 64-bit mode, while {disp32} is invalid to
14427 ELF-only functions don't need to be built when dealing with a non-ELF
14428 target. md_section_align() also doesn't need to be a function when
14432 Furthermore x86_elf_abi is already used in ELF-only code sections, with
14434 can also be confined to just ELF builds.
14439 Simplify the code follow ing what check_{,q}word_reg() already do. This
14447 Due to a missing check "crc32q %al, %rax" was wrongly translated to the
14452 Note that check_{word,long}_reg() do not (currently) appear to require
14464 LoongArch: Modify link_info.relax_pass from 3 to 2
14470 To remove the limitation, we need to update program header size and
14474 If deleting instructions in one relax_trip, set again to true to start the
14488 Remove uses of obstack in the code generating the libraries XML for
14489 Windows and AIX. Use std::string instead. I'm not able to test this
14503 sent a GCC patch to fix the plugin crash. With that patch, I get this
14508 This patch adds a cast to compile.exp. This makes the test pass.
14524 This commit switches to use curses.ascii.isascii(), as this was
14541 Extension to Translation Control Registers (FEAT_TCR2)
14553 aarch64: Add support to new features in RAS extension.
14556 RASv2 feature is enabled by passing +rasv2 to -march
14577 aarch64: Add features to the Statistical Profiling Extension.
14578 This patch adds features to the Statistical Profiling Extension,
14598 I've changed to use that.
14608 sim: mips: Change E_MIPS_* to EF_MIPS_*
14609 According to we have changed all E_MIPS_* to EF_MIPS_* in binutils
14610 and glibc, we also need to change it here to keep same style.
14611 We can refer to this commit record:
14618 gdb: mips: Change E_MIPS_* to EF_MIPS_*
14619 According to we have changed all E_MIPS_* to EF_MIPS_* in binutils
14620 and glibc, we also need to change it here to keep same style.
14621 We can refer to this commit record:
14681 was zombie, due to the exec), and then adding the leader back when it
14700 Other code in gdb using gdb_python_module checks it first and it
14701 seemes harmless to do the same thing here. (gdb_python_initialized
14708 This changes ada-nested.exp to fix a test name (the test expects three
14709 variables but is named "two"), and to iterate over all the variables
14710 that are found. It also adds a workaround to a problem Tom de Vries
14733 * testsuite/gas/mips/mips.exp (mips_arch_create): Add "--defsym r6=" to as_flags for r6 targets.
14740 …s into {h,b}baseargs. (skip_barg): New flag. Skips appending current flag to bbaseargs. <library …
14744 * src-release.sh: Remove references to the intl/ directory.
14749 …* testsuite/gas/elf/elf.exp (section2): Add -mpdr option to assembler command line for mips-irix t…
14755 * testsuite/gas/mips/call-nonpic-1.d: Adjust regexp to allow for mips-irix targets.
14765 Remove path name from test case
14766 'runtest' complains about a path in a test name, from the new test
14769 This patch fixes the problem by providing an explicit test name to
14776 I found some "break" statements that follow "return" or a call to a
14787 sequence, causing gdbserver to create invalid XML.
14789 I went back and forth about different ways to solve this, and in the
14790 end decided to fix it in gdbserver, with the reason being that it
14791 seems important to generate correct XML for the <thread> response.
14793 I am not totally sure whether the call to setlocale could have
14794 unplanned consequences. This is needed, though, for nl_langinfo to
14804 the documentation to explain the method a bit better.
14813 support this notion, so this patch arranges to put these variables
14816 I chose to do this only for DAP. For CLI and MI, gdb currently does
14819 Note that an earlier patch (see commit 4a1311ba) removed some code
14820 that seemed to do something similar. However, that code did not
14825 Fix a bug in DAP scopes code
14826 While working on static links, I noticed that the DAP scopes code does
14828 situation should be handled identically to a frame decorator returning
14834 This adds a new gdb.Frame.static_link method to the gdb Python layer.
14835 This can be used to find the static link frame for a given frame.
14841 Move follow_static_link to frame.c
14842 This moves the follow_static_link function to frame.c and exports it
14843 for use elsewhere. The API is changed slightly to make it more
14847 This adds the method block::function_block, to easily access a block's
14850 Add two convenience methods to block
14885 I suspect that it probably doesn't matter, but regardless it's good to have
14893 Make all methods final to ensure no accidental overrides are left in the
14914 to eliminate '.*' for better control on what is matched. Also,
14927 where an older style declaration is converted to a newer
14941 Catchpoint 2 (call to syscall clone), clone () at \
14948 All but one regexps in the .exp file use "clone\[23\]?" with "?" to
14950 case to also use "?".
14991 This hook will give user supplied Python code a chance to help find
14995 code; most of the work is out-sourced to a Python implementation which
15000 Python, this is similar to how the Python unwinder commands are
15010 handler is called in turn until one is able to help. Here is a
15027 was unable to find the missing debug information, and GDB should ask
15031 extension to locate the debug information for objfile and return a
15032 value that tells GDB how to use the information that has been located.
15037 registered handlers to see if they can help instead.
15045 location where GDB would normally expect to find it. GDB
15055 extension to trigger another debuginfod lookup; the assumption is that
15071 extension to handle the case where GDB can't find a separate debug
15076 adds support for the hook to extension-priv.h and extension.[ch], and
15077 then reworks symfile-debug.c to call the hook.
15091 1. Use the build-id to find the required debug information,
15093 2. Check for .gnu_debuglink section and use that to look up the
15096 3. Check with debuginfod to see if it can supply the required
15100 called if all three steps fail to find any debug information. The
15120 for steps #1 and #2 to be repeated.
15122 We take care to ensure that debuginfod is only queried once, the first
15123 time through. The assumption is that no extension is going to be able
15124 to control the replies from debuginfod, so there's no point making a
15132 about failure to find any suitable debug information, so it makes
15133 sense to hide these if debug information is found.
15146 In a later commit I'm going to extend
15152 commit, you might be tempted to think that removing the `has_dwarf`
15154 commit though it makes more sense to retain this local, so I've left
15163 gdb: merge debug symbol file lookup code from coffread & elfread paths
15164 This commit merges the code that looks for and loads the separate
15166 code is moved into a new objfile::find_and_add_separate_symbol_file()
15172 For the coffread.c path GDB will now attempt to perform a debuginfod
15177 coffread.c code already includes a call to
15179 for GDB to ask a COFF file for a build-id. If the COFF file doesn't
15180 include a build-id then the debuginfod lookup code will not trigger
15181 and the new code is harmless.
15183 If the COFF file does include a build-id, then we're going to end up
15190 mingw toolchain on a Linux machine, GDB seems to still access the
15203 the logic for when we try to load a separate debug file in elfread.c
15204 was extended. The new code checks that the objfile doesn't already
15205 have a separate debug objfile linked to it, and that the objfile isn't
15208 The coffread code wasn't extended at the same time.
15210 I don't know if it's possible for the coffread code to get into the
15212 these checks would be a problem. In a later commit I plan to merge
15213 this part of the elfread and coffread code, so bringing these two
15214 pieces of code into line first makes that job easier.
15230 … (long_options): Add --decompress. (dump_section_header): Add "COMPRESSED" to the Flags field of a…
15236 …* readelf.c (maybe_expand_or_relocate_section): New function. Contains common code found in dump f…
15247 /* Return the size of the left margin space, this is the space used to
15253 It is stated that the left margin is reserved to display things, but
15275 Likewise, '1' is used to represent the width of the window border.
15308 Currently the call to prefresh in tui_source_window_base::refresh_window looks
15315 This is hard to parse. It's not obvious what the arguments mean, and there's
15331 The original intention of the test appears to be checking to make sure
15336 version of gnat. Per the discussion on IRC, the ada inlining appears to
15341 location in caller after callee has been inlined. The test needs to
15345 This patch checks to see if the reported breakpoint is in function callee
15357 GNU-ld: ARM: Issues when trying to set target output architecture
15364 commit d173146d9 "MIPS: Change all E_MIPS_* to EF_MIPS_*"
15365 changed gas/config.in to rename USE_E_MIPS_ABI_O32 to USE_EF_MIPS_ABI_O32
15366 this new name sorts differently when regenerating gas/config.in
15368 commit e922d1eaa "Add ability to change linker warning messages into
15393 (and no way to support them, such as the yet-unsubmitted AMDGPU
15402 inferior thread is running to receive the SIGINT. Even if it works,
15410 requesting the target to report thread exit events whenever the main
15412 breakpoint, we don't need to enable clone events in this case.
15444 use of lib/my-syscalls.S to define the exit syscall.
15453 Refactor the syscall assembly code in gdb/testsuite/lib/my-syscalls.S
15454 behind a SYSCALL macro so that it's easy to add new syscalls without
15455 duplicating code.
15458 for syscalls with up to 3 arguments, and, if the syscall doesn't
15459 return (the macro doesn't bother to save/restore callee-saved
15462 The following patch will want to use the macro to define a wrapper for
15463 the "exit" syscall, so the limitations continue to be sufficient.
15472 thread disappears from the thread list, GDB expects to shortly see a
15476 /* Do not remove the thread if we've requested to be
15478 displaced stepping, infrun will need to handle the
15487 thread exit event though -- check_zombie_leaders. This can lead to
15552 …[remote] Packet received: l<threads>\n<thread id="p11c24a.11c362" core="0" name="no-unwaited-for" …
15560 is still on the GDB thread list, due to the special case in remote.c
15563 This commit addresses the issue by fixing GDBserver to report a thread
15566 invariant. To do that, it takes a bit more code than one would
15567 imagine off hand, due to the fact that we currently always report LWP
15569 to convert it to TARGET_WAITKIND_THREAD_EXITED just before reporting
15570 the event to GDBserver core. For the zombie leader scenario
15571 described, we need to record early on that we want to report a
15573 the way to reporting the event to GDBserver core.
15583 thread is allowed to run free, at least until some event is hit, at
15587 interesting to report to the user, then the parent thread is resumed,
15593 new threads have no connection to the thread that spawned them.
15605 sends a no-resumed event to GDB. If however, GDB enables the
15609 In all-stop RSP mode, since events can only be forwarded to GDB one at
15642 into an infinite loop in stop_all_threads, leading to a timeout:
15647 stop_all_threads stops listening to events from a target as soon as it
15650 how to handle delayed no-resumed events, but stop_all_threads was
15651 never taught to.
15655 #1 - Multiple threads report breakpoint hits to gdb.
15658 left pending. thread 1 needs to move past a breakpoint, so gdb
15659 stops all threads to start an inline step over for thread 1.
15680 #6 - gdb picks the next event to process out of one of the resumed
15685 #7 - This is again a breakpoint hit and the breakpoint needs to be
15688 #8 - We reach stop_all_threads, which finds that some threads need to
15692 Seeing this, wait_one disable target async, to stop listening for
15718 executed instruction causes the thread to exit.
15731 [Switching to Thread 0x7ffff7c5f640 (LWP 2915510)]
15739 [Switching to Thread 0x7ffff7c5f640 (LWP 2915524)]
15747 [Switching to Thread 0x7ffff7c5f640 (LWP 2915616)]
15756 instruction that causes the thread to exit. When the thread exits,
15762 available to displaced-step the syscall, so the thread waits forever
15777 [Switching to Thread 0x7ffff7c5f640 (LWP 2928290)]
15791 [Switching to thread 1 (Thread 0x7ffff7c60740 (LWP 2928285))]
15798 The "continue" causes an in-line step to occur, meaning the main
15801 more resumed threads to be waited for, so returns
15802 TARGET_WAITKIND_NO_RESUMED, which causes the prompt to return. But
15805 there's an in-line step in progress that we need to wait for to
15808 To fix this, infrun needs to be informed when a thread doing a
15815 This patch then modifies handle_inferior_event in infrun.c to clean up
15817 the exit. The cases to consider are:
15827 is modified to account for the fact that it's possible that we
15837 case. It was already called in other code paths, just not the "thread
15840 This commit doesn't make infrun ask the target to report the
15844 Note that "stop_print_frame = false;" line is moved to normal_stop,
15846 transmorphed into TARGET_WAITKIND_NO_RESUMED. Moving it to
15876 When stepping over a breakpoint with displaced stepping, GDB needs to
15878 stepping buffer that was allocated to that thread leaks, and this can
15879 result in deadlock, with other threads waiting for their turn to
15882 Similarly, when stepping over a breakpoint in line, GDB also needs to
15886 This commit makes it possible for GDB to ask the target to report
15891 teach the Linux backends (native & gdbserver) to handle the
15893 these thread exit events to clean up displaced stepping and inline
15902 Move deleting thread on TARGET_WAITKIND_THREAD_EXITED to core
15907 Later in the series, that will no longer work, as infrun will need to
15908 refer to the thread's thread_info when it processes
15959 far. This patch teaches GDB to parse that event in all-stop RSP too.
15960 There is no need to add a qSupported feature for this, because the
15986 ... to handle thread clone events, which are very similar to (v)fork
15989 For #1, we want to hide clone children as well, so just update the
15996 needs to be done.
16004 This patch teaches the Linux GDBserver backend to report clone events
16005 to GDB, when GDB has requested them with the GDB_THREAD_OPTION_CLONE
16008 This shuffles code in linux_process_target::handle_extended_wait
16009 around to a more logical order when we now have to handle and
16028 GDB_THREAD_OPTION_CLONE thread option. It's actually simpler to just
16029 continue reporting all clone events unconditionally to the core.
16031 disabled. All we need to do is to report support for the option,
16032 otherwise GDB falls back to use target_thread_events().
16045 A following patch will teach Linux GDBserver to do the same thing.
16047 However, for remote debugging, it wouldn't be ideal for GDBserver to
16048 report every clone event to GDB, when GDB only cares about such events
16057 In order to be able to do that with GDBserver, we need a new remote
16058 protocol feature. Since a following patch will want to enable thread
16064 specify a set of per-thread event options you want to enable. The
16065 packet accepts a list of options/thread-id pairs, similarly to vCont,
16066 processed left to right, with the options field being a number
16069 to report clone events. Another patch later in the series will
16089 infrun is then tweaked to enable GDB_THREAD_OPTION_CLONE when stepping
16108 Similarly to QProgramSignals and QPassSignals, avoid sending duplicate
16121 A following patch will teach Linux GDBserver to do the same thing.
16123 But before we get there, we need to teach the remote protocol about
16125 very similar to vfork and fork, and the new stop reply is likewise
16128 GDBserver core is taught to handle TARGET_WAITKIND_THREAD_CLONED and
16129 forward it to GDB in this patch, but no backend actually emits it yet.
16161 thread the user asked to run, it makes sense that the new threads
16169 (as there's no breakpoint to step over). While stepping the thread
16170 of interest all the other threads will be allowed to continue. A
16175 (as there's no breakpoint to step over). Other threads might be
16179 has completed its stepi. The user would need to manually select
16181 expects. However, this is not something this commit tries to
16184 The problem then is what happens when we try to step over a clone
16202 1. The new thread might pass through the same code that the initial
16203 thread is in (i.e. the clone syscall code), in which case it will
16204 fail to hit the breakpoint in clone as this was removed so the
16217 + GDB starts the displaced step, moves thread's PC to the
16237 What is needed is for GDB to have more control over whether the new
16239 new thread not be allowed to run until the breakpoint has been
16240 reinserted. The only way to guarantee this is if the new thread is
16246 When looking for solutions to this problem I considered how GDB
16249 not reported back to core GDB. Instead, the clone event is handled
16250 automatically in the target code and the child thread is immediately
16255 for the new/child thread. That would be sufficient to address in-line
16257 handle displaced-stepping, we need an event that is reported to the
16262 impossible to know which thread that was, as thread creation there
16265 The solution implemented here is to model clone on fork/vfork, and
16267 similar to TARGET_WAITKIND_FORKED and TARGET_WAITKIND_VFORKED, except
16274 The infrun code that handles displaced stepping fixup for the child
16279 The native Linux backend is adjusted to unconditionally report
16280 TARGET_WAITKIND_THREAD_CLONED events to the core.
16284 new clone child visible to the rest of GDB.
16286 Subsequent patches will add clone events support to the remote
16292 latter patch removes the attribute again. We need to do this because
16334 equivalent to #3 above.
16375 changes its tid to the tgid, replacing the pre-exec leader thread,
16387 ID is reset to thread group leader's ID before this stop.
16394 non-leader LWP stale in the LWP list. That's what leads to the crash
16396 patch in question, that code will look for the corresponding
16417 newer systems, which postdate the glibc change to move "libpthread.so"
16418 internals to "libc.so.6", because right after the exec, GDB traps a
16419 load event for "libc.so.6", which leads to GDB trying to open
16422 linux_stop_and_wait_all_lwps, which, as the name suggests, stops all
16423 lwps, and then waits to see their stops. While doing this, GDB
16426 If we use "catch exec" to stop right at the exec before the
16429 gdb.threads/step-over-exec.exp to cover the fix, add a new
16435 Also tweak a comment in infrun.c:follow_exec referring to how
16436 linux-nat.c used to behave, as it would become stale otherwise.
16454 This shows that "560948.561047.0" LWP doesn't map to any thread_info
16506 /* If we failed to disassemble the required number of lines then the
16507 following walk forward is not going to work, it assumes that
16509 consider falling back to a previous possible start address in
16514 Update the assert to reflect this, and move it to after the if because it's
16515 supposed to hold in general, not just when entering the if.
16544 Teach bfd and readelf about some recent gfx11 architectures. This code
16596 MIPS: Change all E_MIPS_* to EF_MIPS_*
16600 …Add ability to change linker warning messages into errors when reporting executable stacks and/or …
16701 the offset-to-entry mappings are allocated in blocks, which may
16704 (Qt5WebEngine) didn't build anymore on x86 32bit due to address
16708 So instead of leaving the waste reallocate the maps to their final
16712 * merge.c (record_section): Reallocate offset maps to their
16719 hash table resizing is needed. Reorder the expression to avoid
16751 We decide to emit BTI stubs based on the instruction at the target
16752 location. But PLT code is generated later than the stubs so we always
16755 Fix the logic to special case the PLT section: this is code the linker
16759 already. An alternative is to never emit BTI stubs for PLTs, instead
16763 Related to bug 30957.
16769 This is unnecessary work and leaks the symbol name that is allocated
16778 Stubs have a name generated from the stub group id and target symbol.
16779 When a relocation requires a stub with a name that already exists, the
16783 target to provide a BTI landing pad.
16786 name as the indirect stub. This happens if the target symbol is within
16787 reach of the indirect branch stub. Then, due to the name collision,
16788 only a single stub was emmitted which branched to itself causing an
16791 A possible solution is to just name the BTI stubs differently, but
16793 same stub area, a better solution is to emit a single stub with a
16800 target is within reach and has no BTI. It is a hassle to change the
16806 The same conversion to direct branch could be done even if the target
16835 encoding check added in [1] led to an error which was not picked up in
16836 GCC but which was flagged in Clang due to its use of
16838 add a new test for the THE registers to pick up their illegal use,
16843 patch), additions made to `aarch64-tbl.h' are rolled back so
16844 that these can be added later when adding THE instructions to the
16871 to replace it by a simpler check. Have i386-gen do at build time what so
16873 other than the EVex attribute, and set that to "dynamic" in such cases.
16883 requires", whereas originally it was intended to solely mean "all of
16894 and hence templates previously using AVX512F|AVX512VL are switched to
16898 da0784f961d8 ("x86: fold FMA VEX and EVEX templates") to be slightly
16899 re-done: FMA now becomes more similar to AVX and AVX2.
16904 First of all we want to also accumulate its reverse dependencies, such
16909 Once we have the reverse dependencies, we can further leverage them to
16912 templates we already have, this will also help with what is going to be
16913 added for APX (as all of the new templates would otherwise need to have
16935 floating point registers to store the 128-bit value. The IEEE 128-bit
16940 128-bit float and IEEE 128-bit floating point numbers are all mapped to the
16943 mapping for the vsrs from the fpr to the vsr registers so the value is
16966 of the signal trampoline in common-code in ifrun.c was found. This
16970 to dispatch "calls to" the signal handler (not just *returns from* the
16975 is to improve performance by avoiding unbalancing of the
16983 mapped to an invalid number by the current PowerPC DWARF mapper.
16987 the fact that GDB was not seeing a valid frame when it tried to unwind
16990 specifically the VSCR mapping, the signal trampoline code now unwinds to a
16993 the common-code for platforms that use a trampoline to dispatch calls
16994 to the signal handler by not stopping in the SIGTRAMP_FRAME.
17007 and rs6000_linux_adjust_frame_regnum in file gdb/ppc-linux-tdep.c to handle
17012 The ppc_linux_init_abi function in gdb/ppc-linux-tdep.c is updated to
17015 dwarf2_frame_set_adjust_regnum is called to map
17023 1) Some code is running when a signal arrives.
17024 2) The kernel handles the signal and dispatches to the handler.
17029 1) Some code is running when a signal arrives.
17030 2) The kernel handles the signal and dispatches to the trampoline.
17031 3) The trampoline performs a normal function call to the handler.
17034 We want the "nexti" to step into, not over, signal handlers invoked by
17036 signal trampoline frame onto the stack to handle proper return after the
17038 uses a trampoline to handle *invocation* of the handler. We do not
17039 want GDB to stop in the SIGTRAMP_FRAME. The issue is fixed in function
17041 SIGTRAMP_FRAME to the if statement to stop in a subroutine call. This
17059 then, if an inferior call caused a new thread to appear, or for an
17060 existing thread to exit, then these events are not reported to the
17063 The problem is that for these targets GDB relies on a call to
17064 update_thread_list to learn about changes to the inferior's thread
17067 If GDB doesn't pass through the normal stop code then GDB will not
17082 The cause of the problem is that 'info threads' includes a call to
17089 relies on update_thread_list calls to learn about new threads,
17095 uses inferior function calls to add an remove threads from an
17101 update_thread_list call in the normal stop code, which will
17114 space ready to start typing the address to disassemble at:
17138 So, for example, if you want to disassemble function 'bar' in file
17149 Dump of assembler code for function main:
17159 of the disassemble command completion to expression_completer. Now
17169 I still get nothing. I had hoped that this would expand to:
17185 This is a refactor in order to support the next commit. I've not
17186 changed any of the code in skip_over_slash_fmt.
17201 different formats, so it's not possible to have both at the same
17205 user tries to use both flags then they will get an error.
17212 feeling that it was a mistake not to add this error from the start,
17220 Make their parameters pointer-to-const, thus allowing callers to also be
17226 In a safety context, it could interesting to track the trampolines being
17239 Add minimal thread-safety to BFD
17240 This patch provides some minimal thread-safety to BFD.
17245 locked. A function to clean up any thread-local data is now provided
17266 * po/bfd.pot: Regenerate.
17271 This changes bfd_error et al to be thread-local.
17281 * po/bfd.pot: Regenerate.
17286 This makes _bfd_error_buf static and adds a way to clear it. I felt
17295 * po/bfd.pot: Regenerate.
17363 handling in the code to allow for the encoding of the LSE128 128-bit
17386 F_REG_128 and adds it to relevant system registers in
17390 initially to implement argument validation in the `__arm_rsr128' and
17458 The length of the allocate buffer `buf` is 1, and we try to extract an
17461 a multiple of 2, so it's weird for this subtraction to result in 1. In
17474 to strip the thumb bit, like is done elsewhere (for instance for bpaddr
17477 I wonder if find_pc_partial_function should do that itself, in order to
17500 For now convert just the tests known to be affected by crt*.o coming
17501 with "ISA v3 needed" notes. Eventually other tests ought to be
17640 transition to C++. These aren't needed any more, so remove them.
17658 When resizing from a big to small terminal size, and you have a
17702 This patch is a small change to get it working in AIX as well.
17719 * testsuite/gas/riscv/fp-q-insns-32.d: Set q to v2.2.
17726 considering --emit-relocs. We will need to improve it in the future, but
17727 first do this to avoid conflicts between linker internal relocations and the
17730 Passed riscv-gnu-toolchain regressions, so should be safe enough to commit.
17760 [symtab-create] start_subfile: name = dw2-lines.c, name_for_id = \
17774 DWZ-reading code. This code can query the user (via the debuginfod
17777 Looking into it, I realized that this code can be run much earlier,
17780 as compared to the normal modes.
17782 This patch cleans this up by trying to read the DWZ file earlier, and
17785 errors do not prevent gdb from continuing on to the extent possible.
17820 particularly easy to mis-use.
17829 all-targets build), I thought it would be useful to print a summary at
17834 doesn't need to be changed.
17869 mnemonic passed to the common handling functions. The intended mnemonic,
17875 Make sure these (continue to) work as intended.
17895 (gdb) PASS: gdb.ada/array_return.exp: continuing to Create_Small_Float_Vector
17929 Consequently, gdb fails to correctly classify the type as a ELFv2 homogeneous
17936 smaller than low_bound, so to be safe take that into account as well:
17962 instruction (GCSB DSYNC). This instruction is allocated to existing
17963 HINT space and uses the HINT number 19 and to match this an entry is
17964 added to the aarch64_hint_options array.
17970 optional from Armv9.4-A architecture and enabled by passing +gcs option to -march
17992 * testsuite/ld-x86-64/property-3.r: Update regexp to allow for targets which support x86-64-v3.
17999 help2man is no longer used to create the gprofng man pages.
18024 Fix typo in recent update to the ld/NEWS file
18029 * ldgram.y: Allow REVERSE to be used wherever a sorting command can be used.
18083 This is due to faulty debug info generated by gas, PR28629:
18090 The DW_AT_name is relative, and it's relative to the DW_AT_comp_dir entry,
18091 making the effective name $gdb/build/gdb/testsuite/tui-layout-asm-short-prog.S.
18126 Add producer_is_gas, a generic way to get the gas version from the
18136 setVariable is a bit odd in that it specifies the variable to modify
18137 by passing in the variable's container and the name of the variable.
18139 open DAP bugs on this topic), so this patch renames duplicates to
18145 This patches aims to support Intel USER_MSR. In addition to the usual
18174 (Nq): Change mode from q_mode to q_mm_mode.
18215 Remove some frame invalidation code
18217 "invalidates frame" and also assignments of NULL to a frame_info_ptr.
18218 This code isn't harmful, but is also unnecessary since the
18243 to avoid ambiguity with the assembler's support for C-like numerical
18244 suffixes. This patch adds a new test to the GAS BPF testsuite to make
18255 * testsuite/gas/bpf/alu-pseudoc.s: Add test to make sure C-like
18274 type did not work. This patch strips the range type to treat the
18284 calls to a function also resulted in the wrong value being passed. I
18289 that caught this is identical to gdb.base/gnu_vector.exp.
18308 wrong value. This patch fixes the problem. Because the code here
18325 Namely, it should be made clear that all changes are first to be made
18326 in Binutils and the updated file copied across to GCC.
18339 Move read_addrmap_from_aranges to new file
18341 moves the code that deciphers .debug_aranges into a new file.
18349 tracked down to the handling of the .debug_aranges section. Currently
18351 However, there's no real reason to do this -- it seems fine to read it
18355 read_addrmap_from_aranges API to assert that the section is read in.
18358 to reject an empty section. This seems better to me than what the
18359 current code does, which is try to read an empty section but then do
18373 This patch proposes to require a C++17 compiler to build gdb /
18380 Our general policy is to wait until the oldest compiler that
18383 Rationale: We want to ensure reasonably widespread compiler
18384 availability, to lower barrier of entry to GDB contributions, and to
18385 make it easy for users to easily build new GDB on currently
18387 sufficient for latest stable releases of distributions to include a
18388 compiler for the standard, and/or for new compilers to appear as
18389 easily installable optional packages. Requiring everyone to build a
18401 always available, meaning that this no hard requirement preventing us to
18418 This patch upgrades gdb/ax_cxx_compile_stdcxx.m4 to follow changes
18445 We are used to generate these kinds of relocations by data directives.
18456 But unfortunately, I had heard that if we are using .reloc to generate
18457 the data relocations will make the relocations failed. Refer to this,
18480 Anyway, this patch also fixes the behaviors above, to make sure that no matter
18490 SUB_ULEB128 to zero since it should already be added into the addend
18508 created on-demand though to reduce unnecessary work.
18515 The gdb.Value.bytes attribute will convert any value to a bytes
18517 created purely in Python code, the value could be in a register,
18520 The Value.bytes attribute can also be assigned too. Assigning to this
18521 attribute is similar to calling Value.assign, the value of the
18523 to Value.bytes must be a buffer which contains exactly the correct
18547 second thread selected as the current thread and asks GDB to detach.
18551 unexpected errors to be reported from GDB for both native and remote
18556 to get this functionality working correct for native and remote
18577 the assert to allow for 0 or 1 lwps at this point. As the 0 case can
18593 the calls that try to detach from the main thread, and then tell the
18620 function calls current_process() and then dereferences the result to
18634 exiting is only reported back to GDB after the request to remove a
18637 best solution is for gdbserver just to report an error, which is what
18643 reported to the user with a 'Can't detach process' error. As the test
18644 actually calls detach from Python code, this error was then becoming a
18649 argument that the remote error can be ignored -- if GDB tries to
18651 the pid we tried to detach, then just ignore the error and pretend the
18656 non-stop mode) for the stop notification to arrive after the detach is
18658 case we would still need to check for pending stop events after seeing
18660 just send the detach request, and if it fails, check to see if the
18666 In order to test this issue I needed to ensure that the exit event
18668 opportunity for getting the exit to arrive is so small I've never
18669 managed to trigger this in real use -- I originally spotted this issue
18670 while working on another patch, which did manage to trigger this
18674 Python function then we never return to GDB's event loop, as such GDB
18676 chance to see the exit is during the detach call. And so that is the
18723 gdb/testsuite: add a clang XFAIL to gdb.python/py-watchpoint.exp
18727 GDB itself, add an xfail to reduce noise.
18735 failure. This was due to how clang mapped instructions to lines,
18738 This patch adds a nop line in the relevant location so we don't need to
18746 gdbserver: don't leak program name in handle_v_run
18749 case where GDB passes a program name to gdbserver.
18758 When gdbserver receives a program name from GDB, this is first placed
18764 Prior to the above commit this call took ownership of the buffer
18765 passed to it, but now this call uses the buffer to initialise a
18771 we are leaking the program name each time GDB starts a remote
18777 So, to this end, I have added a new function in gdbserver/server.cc,
18782 Back in handle_v_run I have converted new_program_name to also be a
18789 function, I have wrapped the call to hex2bin in a try/catch block.
18794 hex2bin to throw an exception and don't catch it in either
18795 decode_v_run_arg or handle_v_run then we are going to leak memory from
18798 I chose to catch the exception in decode_v_run_arg, this seemed
18801 changes new_argv to automatically manage its memory, but that isn't
18806 assignment of nullptr to new_program_name into an assert. Previously,
18808 if we had no new program name to assign. However, new_program_name
18810 nothing to assign to new_program_name, its value must already be
18838 Added format attribute to several gprofng functions.
18861 Extends commit 6136093c0d00 to handle verdefs as well as verrefs.
18871 course it doesn't make sense to read such as the contents are all
18880 triggered by user input to objdump. Abort should only be used within
18881 bfd to show programming errors in bfd.
18905 [readelf] Handle unknown name of main in .gdb_index section
18937 The as and ld use _bfd_error_handler to output error messages when
18939 abfd value passed by as to the function is NULL, resulting in an
18940 internal error. The ld passes a non-null value to the function,
18960 Due to using a different frag type (in turn due to storing data
18961 differently), making the resulting code appear in listings requires
18969 Since named objects may not overlap, the compiler is not permitted to do
18970 this for us, to avoid wasting space and cache bandwidth/capacity.
18975 First of all add f32_5[], allowing to eliminate the extra slot-is-NULL
18976 code from i386_output_nops(). Plus then introduce f32_8[] and f16_5[]
18996 While there also add PROCESSOR_IAMCU to the respective comment.
19000 x86: respect ".arch nonop" when selecting which NOPs to emit
19001 Making GENERIC64 a special case was never correct; prior to the
19002 generalization of ".arch .no*" to cover all ISA extensions other
19005 apparent that a hidden implication of .cpunop not being possible to
19010 x86: don't use operand size override with NOP in 16-bit code
19011 Since we don't key the NOP selection to user-controlled properties, we
19013 directive restricting ISA to pre-386.
19015 x86: don't use 32-bit LEA as NOP surrogate in 64-bit code
19017 (by zero-extending %esi to %rsi). Introduce separate 64-bit patterns
19022 was issued. Later changes to global state (bitness or ISA) must not
19023 affect what code is generated.
19027 TC_FRAG_INIT(). The so far file scope variable therefore needs to become
19028 external, to be accessible there.
19035 separated by a "." could be confusing, thus adjust the implementation to
19040 * objcopy.c (copy_main): Set separator to "," between <reserve>
19052 match that committed to bfd-in2.h, and was just going to regen
19053 bfd-in2.h but then decided to do something about the silly formatting
19066 aren't indented properly relative to the first line, and the whole
19067 comment needs to be indented to match the code.
19070 indentation, presumably in an attempt to properly indent bfd-in2.h
19071 comments but that fails due to chew.c removing leading whitespace
19072 early by skip_white_and_stars. COMMENT was used in reloc.c to add
19074 think they add anything to readability of that file. (Perhaps more
19075 usefully, they also add blank lines to libbfd.h separating relocs for
19103 gdb: fix owner passed to remove_target_sections in clear_solib
19105 a bug in clear_solib. Instead of passing an `so_list *` to
19110 This happened because I previously had a patch to change the type of the
19111 disposer parameter to be a reference rather than a pointer, so had to
19112 change `so` to `&so`. When dropping that patch, I forgot to revert this
19116 Fix that, but try to make things less error prone. Add a union to
19117 represent the possible owner kinds for a target_section. Trying to pass
19118 a pointer to another type than those will not compile.
19128 [gdb/cli] Allow source-highlight to autodetect language
19129 Currently when gdb asks the source-highlight library to highlight a file, it
19130 tells it what language file to use.
19136 However, if gdb doesn't know what language file to use, it falls back to using
19139 In the case of python pygments, it autodetects which language to use based on
19140 the file name.
19148 - checking that source-highlight still manages to highlight a hello world.
19159 dwarf2/read.h includes cooked-index.h, but it doesn't need to. This
19160 patch removes the inclusion from this header, and adds one to
19161 index-write.c to make up for the absence.
19166 This patch makes a cosmetic change to the reloc_weaksym.s
19173 The fixes applied a few years ago to resolve confusions between parent and
19174 child dicts at lookup time also apply in various forms to creation. In
19176 you do something to it, and the parent dict is writable (created via
19177 ctf_create, not opened via ctf_open*) it should work just the same to make
19178 changes to that type via a child dict as it does to make the change
19179 to the parent dict directly -- and nothing you're prohibited from doing
19180 to the parent dict when done directly should be allowed just because
19186 - adding a member of a type in the parent to a struct or union in the
19190 - adding a member of a type in the parent to a struct or union in the
19193 - adding an enumerand to an enumerator in the parent: this yields
19201 in particular, you can add a child type to a struct in the parent via
19203 you should never be able to add references to children to parents (since any
19206 A family of tests is added to check each of these cases independently, since
19207 some can result in coredumps and it would be nice to test the other cases
19208 even if some dump core. They use a common library to do all the actual
19209 work. The set of affected API calls was determined by code inspection
19210 (auditing all calls to ctf_dtd_lookup): it's possible that I missed a few,
19212 climb to the parent where appropriate.
19217 * ctf-create.c (ctf_dtd_lookup): Traverse to parents if necessary.
19219 both parent and child to be writable.
19222 to structs in the parent.
19243 Add test case to gas test suite.
19249 name_of_main and language_of_main to the DWARF index"), after checking it
19280 The recent change to record the DWARF language in the per-CU data
19288 I wonder if this code could be improved. Requiring an atomic for the
19309 …/home/smarchi/src/binutils-gdb/gdb/solib-target.c:57:8: error: ‘lm_info_vector’ does not name a ty…
19325 gdb: rename struct so_list to shobj
19327 really make sense for the element type to be named "_list". Rename to
19328 just `struct shobj` (`struct so` was deemed to be not greppable enough).
19383 Change the field from a `bfd *` to a gdb_bfd_ref_ptr to automatically
19393 Make the field a vector directly, instead of a pointer to a vector.
19394 This was needed when so_list had to be a trivial type, which is not the
19414 ... just because it seems to make sense to do so.
19436 looking at the code in solib_target_current_sos where the unique
19449 - Introduce rocm_so, which is a name a unique_name (see comment in
19450 rocm_update_solib_list for that) and a unique_ptr to the
19452 - Change the internal lists from so_list lists to vectors of rocm_so.
19464 This trips on the fact that svr4_copy_library_list uses memcpy to copy
19471 structures. When requested to return a list of so_list objects (through
19473 using memcpy. When changing so_list to make it non-trivial, we would
19474 need to replace this use of memcpy somehow. That would mean making
19475 so_list copyable, with all the complexity that entails, just to satisfy
19478 Change solib-svr4 to use its own data type for its internal lists. The
19482 - Introduce svr4_so, which contains just an std::string for the name
19484 - Change the internal so_list lists to be std::vector<svr4_so>. Vector
19485 seems like a good choice for this, we don't need to insert/remove
19490 order to return them to the core) with so_list_from_svr4_sos, which
19493 needs to compare an so_list and an svr4_so to see if they are the
19504 therefore a vtable, use checked_static_cast instead of C-style cases to
19505 ensure (when building in dev mode) that we're casting to the right kind
19527 gdb: rename lm_info_base to lm_info
19528 The base class doesn't need to have "_base" in its name, all the
19538 Initialize all fields in the class declaration, change allocations to
19539 use "new", change deallocations to use "delete". This is needed by a
19558 It seems to me like the code should used the defined type aliases, for
19567 gdb: replace some so_list parameters to use references
19568 A subsequent patch changes so_list to be linked using
19569 intrusive_list. Iterating an intrusive_list yields some references to
19570 the list elements. Convert some functions accepting so_list objects to
19571 take references, to make things easier and more natural. Add const
19582 interp::on_solib_unloaded methods to take references. This highlighted
19585 Fix that by changing interps_notify's `args` arg to be a universal
19586 reference (&&). Change the type of the method to be auto-deduced as an
19592 …/home/simark/src/binutils-gdb/gdb/interps.c:378:18: error: no matching function for call to ‘inter…
19609 gdb: add program_space parameter to target_so_ops::clear_solib
19610 The clear_solib is implicitly meant to clear the resources associated to
19639 …glibc/csu/../sysdeps/riscv/dl-irel.h:47:(.text+0x88): relocation truncated to fit: R_RISCV_GPREL_I…
19642 of linking, including relax stage, but are guaranteed to be defined later.
19653 This is for consistency and to prevent possible unnecessary errors due
19654 to this inconsistency.
19673 meant to be hit anymore, so whatever the ignore count is won't influence
19683 before using it to calculate destination address.
19686 pushsection and popsection when adding things to .data, and setup the
19710 if the compiler defaults to using C++17.
19712 It is always a good practice to check the return values anyway.
19723 statement was updated to return the error proper value. This commit
19731 [gdb/testsuite] Fix gdb.base/jit-bfd-name.exp
19732 When running test-case gdb.base/jit-bfd-name.exp, I run into:
19734 ERROR: tcl error sourcing gdb/testsuite/gdb.base/jit-bfd-name.exp.
19761 ("[gdb/symtab] Add name_of_main and language_of_main to the DWARF index").
19773 According to the commit 51498ab9abc6, the q extension was no longer allowed
19779 * testsuite/gas/riscv/zfa-zvfh.d: Set q to v2.2.
19803 added the base address to in-memory bfd filenames. Also add the end
19804 address to allow dumping the in-memory bfd using the 'dump memory'
19814 The issue was discovered while building a 64 bit ld binary to be
19825 …Update the documentation of the LINKER_VERSIOn script command to actually mention the name of the …
19830 In source_cache::ensure, keep track of which files failed to be styled, and
19831 don't attempt to style them again in case the file dropped out of the cache.
19840 Function source_cache::ensure contains some code using the GNU
19843 The code is a sizable part of the function, and contains conditional
19851 Fix this by factoring out the code into new function try_source_highlight,
19853 - source_cache::ensure is easier to read, and
19871 C++20 allows us to skip it, like this:
19886 To consistent with LoongArch lld, RELASZ chang to only the size of .rela.dyn.
19892 this code has never been used).
19928 gdb.Value -- it may return any value that can be converted to a
19937 Andry pointed out that the DAP code did not properly handle
19951 expression to set is a register, DAP will return the wrong value -- it
19957 In this patch, I chose to have the assign method update the Value
19958 in-place. It's also possible to have it return a new value, but this
19959 didn't seem very useful to me.
19963 Fix: GNU-ld: ARM: Issues when trying to set target output architecture
19967 Fix: GNU-ld: ARM: Issues when trying to set target output architecture
20002 The strstr ifunc resolves to __strstr_sse2_unaligned. The problem is that gas
20014 We can still use the workaround of casting to another function type for both
20021 and strstr (which requires using *strstr to dereference the ifunc before we
20027 but that's a bit cumbersome to use.
20035 This also requires fixing producer_is_gcc to stop returning true for
20058 32-bit Arm needs to figure out the thumb state of the original instruction
20069 being used to return a couple different answers depending on the
20073 is supposed to return a valid closure for us, so we can determine the
20077 should return nullptr to signal that there isn't any displaced-step buffers
20083 addr field cannot be used to determine if the buffer is active or not.
20085 For instance, we cannot set the buffer addr field to 0x0, as that can be a
20089 to signal that a particular displaced-step buffer is active or not. If it is
20090 nullptr, we have no threads using that buffer to displaced-step. Otherwise,
20094 function so we only attempt to return a closure if the buffer has an assigned
20097 Alternatively, I think we could use a function to answer the question of
20117 Python code, which uses this observer to register the Python unwinder
20126 When it comes to unwinding GDB makes use of the frame's gdbarch, which
20128 get_thread_regcache to the value returned from
20136 expect to see each new architecture trigger the new_architecture
20140 architectures should be able to make use of Python unwinders.
20142 As I don't have access to a machine that makes use of thread-specific
20143 architectures right now, I asked Luis to confirm that an AArch64
20157 objcopy: Fix name of the field modified by pe_stack_reserve.
20169 * doc/c-riscv.texi: Update the documentation to allow "lp64e".
20207 The other bits in the destination register shall be set to zero.
20239 name of the constant being used.
20254 This warning is triggered only when a stack parameter is given to
20275 Up to now, the linker would always create a QNX stack note from scratch.
20279 Update the mechanism to first search through the input files for a .note
20281 is created into the stub file as before. This requires this search to be
20285 As part for this update, also allow to request an executable stack
20286 without necessarily having to provide its size as well. In this case, s
20303 The elf psabi allows for mapping symbols to be of the form $x<ISA>.<any>
20306 * riscv-dis.c (riscv_get_map_state): allow mapping symbol to
20311 Move -lsocket check to common.m4
20312 A user pointed out that the -lsocket check in gdb should also apply to
20334 gdb_file_cmd to make the "kill" command optional, and then switches
20335 the test case to use it.
20347 some targets (e.g. Win32) prevent the OS writing to the file.
20350 executable as GDB is (via the BFD cache) holding an open reference to
20353 Another problem, relates to bfd_stat, for BFDs that are using the BFD
20354 cache (i.e. they call cache_bstat to implement bfd_stat). The
20359 was holding an open reference to the file, the bfd_stat will return
20362 Now, for this second problem, we might be tempted to make use of an
20369 To solve both of these problems GDB has calls to bfd_cache_close_all
20370 sprinkled around its code base. And in theory this should work fine.
20374 This caused a bfd_stat call to return an unexpected result (old file
20381 As this would allow GDB to quickly identify when we've missed some
20384 And so, to support this, I would like to add a new bfd_cache_size
20390 to GDB in some strategic spots, and start fixing all of the missing
20395 bfd/cache: change type used to track cached BFDs from int to unsigned
20397 variables from int to unsigned. As a consequence of this, the return
20398 type for bfd_cache_max_open() is also changed from int to unsigned.
20403 max_open_files will be set to 10. If 'max' was changed to unsigned
20408 within bfd_cache_delete to ensure that we don't try to reduce
20421 results to change. Quite surprisingly the mcore-elf port showed test
20425 Of course if the code is supposed to behave the same, then that points to
20443 gprofng: Use the correct application name in error messages
20444 The old application name (er_archive) is used in many places.
20555 async flag is marked while the target is not configured (yet) to work
20556 async. This should not happen. It is caught thanks to this assert in
20559 /* Start by clearing the flag that asks for our wait method to be called,
20569 makes them easier to debug.
20579 A subsequent patch will want to know if the remote is async within a
20589 Make remote_async_inferior_event_token private (rename to
20593 - allowing to break on those methods when debugging
20594 - allowing to add assertions in the methods
20608 regcaches. It would be enough to invalidate only regcaches of threads
20609 belonging to this inferior. Call registers_changed_ptid instead, with
20612 need to invalidate anything.
20623 from, and that it's often used as "I don't know which arch to use so
20629 whether this is the right place to get the arch or not.
20637 gdb: move set_target_gdbarch to inferior::set_arch
20640 the code of set_target_gdbarch to the inferior::set_arch method.
20650 gdb: add inferior parameter to architecture_changed observable
20651 This is to make it explicit which inferior's architecture just changed,
20654 Update the only caller, pyuw_on_new_gdbarch, to add the parameter,
20665 This helped me by allowing putting breakpoints on set_arch to know when
20682 (elf32_arm_get_synthetic_symtab): Adjust to suit.
20697 With specially crafted compressed sections, it's possible to tickle a
20702 contents have been updated to a bfd_alloc'd buffer which can't be
20713 to emit custom async notification to MI channel. This can be used, among
20714 other things, to implement notifications about events MI does not support,
20723 This commit generalizes serialize_mi_result() to make usable in
20727 moved to the caller - at the very least, different uses require different
20728 error messages. Also it has been renamed to serialize_mi_results() to better
20732 Since it is now more generic function, it has been moved to py-mi.c.
20752 change to:
20764 Add the abilitity to print a v9 .gdb_index section.
20783 [gdb/symtab] Add name_of_main and language_of_main to the DWARF index
20784 This patch adds a new section to the DWARF index containing the name
20786 `cooked_index::get_main`, if available. Currently, for lack of a better name,
20787 this section is called the "shortcut table". The way this name is both saved and
20789 `cooked_index_functions`, more specifically, the full name of the main function
20790 symbol is saved and `set_objfile_main_name` is used to apply it after it is
20794 large binaries. Currently, when an index is used, GDB has to expand symtabs
20796 large executables, this may take a considerable amount of time to complete,
20797 slowing down startup. This patch bypasses that operation by having both the name
20801 startup time down from about 34 seconds to about 1.5 seconds.
20804 gdb.fortran/nested-funcs-2.exp starts failing, but this is due to a
20848 gdb_test_multiple were failing to match a complete line, while later
20871 Bump version to 15.0.50.DATE-git.
20873 this commit bumps the version number in gdb/version.in to
20882 * gdb.base/default.exp: Change $_gdb_major to 15.
20893 and use the assembler option mthin-add-sub to generate R_LARCH_32/64_PCREL
20911 microblaze-elf +FAIL: unordered .debug_info references to .debug_ranges
20915 microblaze-elf +FAIL: unordered .debug_info references to .debug_ranges
20936 UNTESTED: gdb.arch/i386-signal.exp: failed to compile
20941 extend-to-32bit-address conditions"). This may or may not be a gas regression
20948 which refers to a function:
21000 platform, a problem yet to be investigated causes GDB to miss the _exit
21003 following that point in the testcase to fail in a random way.
21005 In this scenario it's better to exit the testcase early to avoid random
21008 We are relying on gdb_continue_to_breakpoint to return the result of
21011 change gdb_continue_to_breakpoint to explicitly return this value, to make
21025 The other bits in the destination register shall be set to zero.
21059 Convert tdesc's expedite_regs to a string vector
21063 to take account of the type change.
21080 newline needed a small tweak, and also the matching code needs
21100 During review I was pointed to this older series:
21105 giving a Co-Authored-By credit to the author of that original series.
21116 Similarly to how single quotes were mishandled, which was fixed two
21118 passed to gdbserver.
21124 In this commit I remove the unnecessary, attempt to quote incoming
21126 code. There is additional cleanup that can be done, but I'm leaving
21135 During review I was pointed to this older series:
21140 giving a Co-Authored-By credit to the author of that original series.
21156 The fix for this is in the same area of code as the previous patch,
21160 I noticed that passing arguments containing single quotes to gdbserver
21186 Done. Use the "run" command to start a process.
21197 The 'shows-args' program used here just prints the arguments passed to
21210 If we compare this to a packet with only a single argument and no
21218 each point we maintain a pointer to the character just after a ';',
21219 and then we process everything up to either the next ';' character, or
21220 to the end of the string.
21232 I've updated the test case to cover this issue.
21239 I noticed that passing arguments containing single quotes to gdbserver
21265 Done. Use the "run" command to start a process.
21275 The 'shows-args' program used here just prints the arguments passed to
21281 used with the "set args" command is just to show GDB that the single
21286 code that does this was added as part of this much larger commit:
21293 In this commit I propose removing the specific code that adds what I
21294 believe is a stray backslash. I've extended an existing test to cover
21301 During review I was pointed to this older series:
21306 giving a Co-Authored-By credit to the author of that original series.
21325 If you want to install GDB in a custom prefix, have it look for debug info
21331 parameter to $PREFIX/lib/debug. Unfortunately this precludes GDB from
21333 use you could set debug-file-directory to $PREFIX:/usr/lib/debug in
21335 to run the testsuite then that doesn't help because in that case GDB runs
21338 There's the configure option '--with-separate-debug-dir' to set the default
21340 a list. I considered modifying it to accept a list, but it's not obvious
21341 how to do that because its value is also used by BFD, as well as processed
21344 I thought it was simpler to add a new option to specify a list of
21345 additional directories that will be appended to the debug-file-directory
21372 In the gcc-10 case, though the exec contains dwarf, it's not used to set the
21394 In v3, "_0" demangles to ".". [ See gcc commit a01dda3c23b ("compiler, libgo:
21413 one has simply changed for gcc-11, so it's equivalent to using:
21449 The new_objfile observer is currently used to indicate both when a new
21450 objfile is added to program space (when passed non-nullptr) and when all
21453 Add a new "all_objfiles_removed" observer to remove the second role from
21458 add a new all_objfiles_removed callback, and refactor things a bit to
21462 the refactoring now use either objfile->pspace or the pspace passed to
21466 On the notify side, I found only one call site to change from
21467 new_objfile to all_objfiles_removed, in clear_symtab_users. It is not
21468 entirely clear to me that this is entirely correct. clear_symtab_users
21469 appears to be called in spots that don't remove all objfiles
21472 current code clearer.
21481 gdb: add program_space parameters to some auto-load functions
21497 gdb: add program_space parameter to emit_clear_objfiles_event
21498 Add program_space space parameters to emit_clear_objfiles_event and
21499 create_clear_objfiles_event_object, making the reference to
21507 gdb: add program_space parameters to some functions in symtab.c
21508 Add some program_space parameters to functions related to getting and
21509 setting the main name, making the references to current_program_space
21511 relies on the current program space, so I didn't add a parameter to that
21519 gdb: add program_space parameter to ada_clear_symbol_cache
21520 Make the references to current_program_space bubble up one level.
21538 It turns out though that the test is failing due to a existing bug
21541 above commit. I reduced the test to a simple set of steps that
21552 specifically, when the cache is cleared, and it is this that leads to
21557 propose fixing one problem in this commit, which is enough to resolve
21565 …[Switching to inferior 1 [process 3970383] (/tmp/build/gdb/testsuite/outputs/gdb.python/py-progspa…
21566 [Switching to thread 1.1 (Thread 3970383.3970383)]
21576 What's happening is that GDB attempts to refill the auxv cache as a
21609 program_space then this is not caught, and is going to crash GDB.
21615 does GDB get into a position where it tries to interact with the
21621 the target is currently in a state that would allow us to delete the
21623 to add one, but for the remote target, this would return false if the
21627 be able to refill the auxv cache successfully.
21629 And then, problem #3 becomes evident when we ask why GDB is needing to
21630 refill the auxv cache now when it didn't need to for GDB 13. This is
21632 Prior to this commit, the auxv cache was cleared by the
21657 inferior is not going to be an inferior that exists within the
21661 the case if the current inferior isn't within the program_space to
21673 we need to refill the cache when the remote target is executing, then
21685 auxv_new_objfile_observer to:
21697 inferiors, and GDB no longer needs to refill the cache at an
21702 not correct, I added some debug to see if current_inferior() was
21712 setup, then we might start to see odd behaviour.
21715 run into this again, and then we'd need to solve this. But in this
21717 the auxv data in order to implement the linux_is_uclinux() function.
21719 assume no? The right answer would probably be to propagate the error
21721 exceptions from a destructor is problematic, so we'd need to catch and
21728 So, we would have to choose; delete the address space or not. If we
21733 A better solution might be to have the address spaces be reference
21735 call completely, and just rely on the reference count to auto-delete
21740 prune_inferiors, this would prevent GDB from trying to delete
21743 sending packets to the remote, and if the remote is waiting for a stop
21750 delete_inferior should ensure the inferior to be deleted is in place
21769 bison must be run once to create QLParser.tab.cc and QLParser.tab.hh.
21777 * Run bison once to create QLParser.tab.cc and QLParser.tab.hh.
21785 …* elf.c (_bfd_elf_get_dynamic_symbols): Fix typo when checking to see if the gnuchains array has b…
21791 * testsuite/ld-elf/pr28158.rd: Adjust regexp to allow for section indicies larger than 9.
21818 When using a remote target, it is possible to tell GDB that the
21819 executable to be debugged is located on the remote machine, like this:
21825 …warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally…
21830 So far so good. However, when we try to start the inferior we run
21849 know how to check if the remote file has changed, and so falls back to
21852 In this commit I update reread_symbols to use bfd_stat instead of
21860 However, that patch never got merged, and seemed to get stuck
21864 I think the problem with the previous thread related to the changes in
21865 gdb_bfd.c, rather than to the change in symfile.c. As such, I think
21868 - the objfile::mtime field is set by a call to bfd_get_mtime (see
21874 might give a different result to the system stat in some cases,
21876 - By switching to using bfd_stat in symfile.c we should now be
21917 objfile and tries to check if the file has changed on disk by calling
21924 Before this commit GDB would try to use the system 'stat' call to stat
21926 fails; there's no file with that name (usually). As a consequence of
21929 Initially, all this commit did was switch from using 'stat' to using
21942 this patch changes to use bfd_stat() we now get back 0, and so we
21970 the output should be a warning rather than just a message printed to
21977 output... so in the end I remove the comment and updated the code to
21982 Currently the function takes a string and an errno, and prints, to
21986 In some places the string passed to print_sys_errmsg is just a
21988 I think calling warning rather than gdb_printf to gdb_stderr, would be
21994 function calls warning to print its output. I then updated some of
21995 the print_sys_errmsg users to use this new function.
22001 switched to calling warning directly, this allows me to style the
22004 Finally, in inflow.c there is one last call to print_sys_errmsg, in
22007 hard exit. This is pretty old code, dating back to the initial GDB
22008 import, I guess it should be updated to call error() maybe, but I'm
22009 reluctant to make this change as part of this commit, just in case
22020 procfs.c, I noticed that we used a static errmsg buffer to format some
22035 strings when we could easily use std::string and string_printf to
22052 gdb: use archive name in warning when appropriate
22057 The code in question is checking to see if an objfile has changed on
22063 sense to say that the archive has disappeared.
22070 Check library name rather than member name when rereading symbols.
22072 Though this just makes the code to stat the archive unconditional, the
22073 code in question existed before this commit.
22075 However, the above commit doesn't include any tests, and seems to
22077 sure how to setup a test where GDB is using an objfile from within an
22081 please let me know and I'll try to get something working.
22106 …* microblaze-opc.h (MAX_OPCODES): Increase to 300. (op_code_struct): Add address extension instruc…
22115 Some gdb.base/fileio.exp tests expect the inferior to not have write
22116 access to some files. If the test is being run as root, this is never
22117 possible. This commit adds a way to identify if the user is root and
22144 sme2: Extend SME tests to include SME2
22145 Reusing the SME tests, this patch introduces additional tests to exercise
22168 Teach gdb about the ZT state on signal frames and how to restore
22171 There is a new ZT_MAGIC context that the Linux Kernel uses to communicate
22172 the ZT register state to gdb.
22186 Since most of the code used by gdbserver for SME2 is shared with gdb, this
22187 is a rather small patch that reuses most of the code put in place for native
22212 should be useful for users that need to debug a SME-capable target.
22220 Add 5 SVE/SME tests to exercise all the new features like reading/writing
22223 - Sanity check for SME: Gives a brief smoke test to make sure the most basic
22230 - ZA availability tests: These tests exercise reading/writing to all the
22240 Since some of these tests are very lengthy and take a little while to run
22241 (under QEMU at the moment), I decided to parallelize them into smaller
22244 I'd still like to add a few more tests to give the testsuite more coverage
22248 connected to a remote target. That's because the RSP doesn't support
22259 enables gdb to read SME state from a core file generated by the Linux
22268 corefile/bug: Add hook to control the use of target description notes from corefiles
22269 Due to the nature of the AArch64 SVE/SME extensions in GDB, each thread
22273 to the target description dumped to NT_GDB_TDESC. Though technically correct
22277 The correct approach for AArch64/Linux is to either have per-thread target
22278 description notes in the corefiles or to rely on the
22285 This patch goes for the latter, and adds a new gdbarch hook to conditionalize
22289 The hook defaults to returning true, meaning targets will use the corefile
22290 target description note. AArch64 Linux overrides the hook to return false
22293 Otherwise it should be fine for AArch64 Linux to use the corefile target
22297 the AArch64 Linux hook to rely on those notes.
22306 corefile/bug: Use thread-specific gdbarch when dumping register state to core files
22308 the target description to a note. During loading of that core file, gdb will
22309 first try to load that saved target description.
22315 The target description gdb dumps to the core file note is the one generated
22334 This struct type seems to have been used in the past as a callback
22337 encapsulates directly to the functions.
22350 The TPIDR2 register is closely related to SME, and is available when SME
22366 In this case, we may run into a situation where GDB attempts to use a gdbarch
22374 For AArch64 we really need to be able to use the correct gdbarch for each
22380 This patch first refactors the AArch64/Linux signal context code, simplifying
22387 Finally, a small change to tramp-frame.c and tramp-frame.h to expose a
22401 Teach gdb about the ZA/SSVE state on signal frames and how to restore
22404 There is a new ZA_MAGIC context that the Linux Kernel uses to communicate
22405 the ZA register state to gdb.
22407 The SVE_MAGIC context has also been adjusted to contain a flag indicating
22424 Fix this by initializing the z registers to 0 and then copying over the
22425 overlapping part of the v registers to the z registers.
22427 While at it, refactor the code a bit to simplify it and make it smaller.
22437 not much to this patch because the code is either in gdb or it is shared
22438 between gdbserver and gdb. One exception is the bump to gdbserver's
22439 PBUFSIZ from 18432 to 131104.
22447 It is also unlikely we will find a process starting up with SVL set to 256.
22453 that is the fact gdbserver cannot communicate vector length changes to gdb
22456 Thiago is working on this improvement, which hopefully will be able to be
22457 adapted to SME in an easy way.
22476 Convert tdesc's expedite_regs to a string vector
22478 with a nullptr element at the end to signal its last element.
22480 Convert expedite_regs to a std::vector of std::string so it is easier to
22483 Eventually we might want to convert all the target functions so they pass a
22485 use to add expedited registers on-by-one depending on the target description
22486 discovery needs, as opposed to just a static list of char *.
22497 Similarly to SVE, the ZA register size is dictated by a vector length, but the
22508 Due to its large size, the ZA register is exposed as a vector of bytes, but we
22514 which map to ZA's rows/columns in different ways.
22534 In aarch64-tdep.c:aarch64_store_return_value, the code is laid
22554 refactor: Simplify SVE interface to read/write registers
22555 This is a patch in preparation to upcoming patches enabling SME support. It
22556 attempts to simplify the gdb/gdbserver shared interface used to read/write
22559 Where the current code makes use of unique_ptr, allocating a new buffer by
22560 hand and passing a buffer around, this patch makes that code use
22561 gdb::byte_vector and passes a reference to this byte vector to the functions,
22562 allowing the functions to have ready access to the size of the buffer.
22564 It also shares a bit more code between gdb and gdbserver, in particular around
22567 I think gdbserver could be refactored to handle register reads/writes more
22568 like gdb's native layer as opposed to letting the generic linux-low layer do
22573 I didn't want to change that interface right now as it is a bit too much work
22576 Hence the reason why the buffer the generic linux-now passes down to
22582 While doing the refactor, I also noticed what seems to be a mistake in checking
22585 For instance, the original code did something like this in
22594 true. But if we compared the Z register contents to 0, it means we
22599 set to a SVE-formatted one.
22605 I used the opportunity to fix this, and it gets tested later on by
22608 I do plan on submitting some SVE-specific tests to make sure we have
22618 In preparation to the SME support patches, rename the SVE-specific files to
22619 something a bit more meaningful that can be shared with the SME code.
22621 In this case, I've renamed the "sve" in the names to "scalable".
22634 code told us to fetch a particular register number.
22639 There should be no user-visible changes due to this patch.
22653 name. This choice is made to enable the use of fast search algorithms
22656 The SYSREG macro, defined as SYSREG (name, encoding, flags, features)
22658 which previously served as indirections to SYSREG are removed.
22695 This patch adds a mechanism for system register name alias detection
22696 to register-matching mechanisms.
22698 A new `F_REG_ALIAS' flag is added to the set of register flags and
22699 used to label which entries in aarch64_sys_regs[] correspond to
22707 "real" register and used incorrectly as the register name in the
22711 candidates corresponding to aliases can be conveniently skipped over.
22715 system register list before `trcextinselr', in contrast to a more
22724 (aarch64_sys_regs): Add F_REG_ALIAS flag to "trcextinselr"
22744 there's currently no way to read in multiple NT_GDB_TDESC.
22747 I have updated the function that writes the NT_GDB_TDESC to accept a
22748 gdbarch (rather than calling target_gdbarch() to find a gdbarch), and
22754 architecture that is more likely to be correct.
22756 Additional work will be needed in order to support corefiles with
22757 truly per-thread architectures, but that will need to be done in the
22764 test from binutils-all/readelf.exp, using a filename suffix according to
22770 `mips64-openbsd', and `mips64el-openbsd' targets, which default to the
22804 Yesterday I pushed a patch to fix a small oversight in the DAP code
22805 that caused an instructionReference to be an array instead of a
22810 be necessary when this code was changed to return just the Tcl form.
22819 patch changes val_print_packed_array_elements to also avoid allocating
22842 This setting controls whether GDB may attempt to download ELF/DWARF
22886 Debug info for pragma import seems to not have been supported before gcc 8, so
22889 The two FAILs with gcc 8 and 9 seem to be due to problems in debug info. Add
22907 ada.strings.maps."=", and gdb uses it to implement the comparison.
22908 The function is supposed to compare two char sets, not strings, so gdb
22913 linked in. Adter adding "with Ada.Strings.Maps; use Ada.Strings.Maps;" to
22931 program space, and need to know when I should discard entries for a
22934 But, it seemed easy enough to also add an event for when GDB adds a
22938 addition or removal, so I first needed to add these. After that it's
22939 pretty simple to add two new Python events and have these trigger.
22950 There's a couple of things to be mindful of.
22952 First, it is not possible to catch the NewProgspaceEvent for the very
22956 In order to allow this event to be caught we would need to defer
22968 to ensure that a cache doesn't hold stale entries within a single GDB
22969 session. It's also easy enough to add a Python at-exit callback which
22980 Use the "interrupt" command to stop the target
22983 Use the "interrupt" command to stop the target
22986 Use the "interrupt" command to stop the target
22997 Use the "interrupt" command to stop the target
23000 It turns out that this has nothing to do with my changes, this is just
23004 result in GDB trying to close some files that are open because of the
23008 running (and in non-async mode) then GDB will try to send a fileio
23013 I'm going to look at fixing this, but, as I said, this is nothing to
23014 do with this change, I just mention it because I ended up needing to
23057 ... which lobbies for tools to recognize the NO_COLOR environment
23083 Fixed the problem related to the fixup/relocations TLSTPREL.
23110 which is used to branch to the function, foo, defined in another object.
23113 The dynamic tags have been added to the x86-64 psABI to mark such PLT
23118 Add an x86-64 linker option, -z mark-plt, to mark PLT entries with
23130 and set the r_addend field of the R_X86_64_JUMP_SLOT relocation to the
23132 can use these tags to update the PLT section to direct branch.
23138 r_addend of R_X86_64_JUMP_SLOT to the indirect branch offset
23189 gdb: add Sam James to MAINTAINERS
23198 If you provided some relative path to the shared library, such as
23203 then gdb would fail to match the shared library name during the
23206 I think there may have been a bit more to it than is provided by that
23207 explanation, since the test also takes care to split the debug info
23211 local patches. I've attempted to update it and remove a fair amount
23227 to complain that this linker flag was unused when compiling
23228 the source file, so I moved this linker option to 'ldflags='.
23248 I'm starting to work on these files, I thought it would be a good time
23249 to remove unused imports. These were identified by
23263 to include new entries.
23282 The FAIL happens due to the test executable running into an assert, which is
23289 I tried to reproduce the segfault with exec next-fork-other-thread-fork, using
23292 I set a breakpoint at fork and ran to the breakpoint, and somewhere during the
23300 due to asm_lines being empty after the call to tui_disassemble, while
23303 I have not been able to reproduce that segfault in that original setting, I'm
23307 What likely happened is that I managed to reproduce PR29040, and TUI (attempted
23308 to) display the disassembly for address 0, which led to the gdb segfault.
23317 FWIW, I did manage to reproduce the gdb segfault as follows:
23352 code should use the type-safe approach.
23358 Convert solib-rocm to new type-safe gdb_bfd_openr_iovec
23359 This converts the solib-rocm BFD iovec implementations to the new
23363 Thanks to Lancelot Six for testing and fixing this patch.
23371 Convert minidebug to new type-safe gdb_bfd_openr_iovec
23372 This converts the minidebug BFD iovec implementation to the new
23379 Convert target fileio to new type-safe gdb_bfd_openr_iovec
23380 This converts the target fileio BFD iovec implementation to use the
23387 Convert mem_bfd_iovec to new type-safe gdb_bfd_openr_iovec
23388 This converts the mem_bfd_iovec / target_buffer code to use the new
23395 Small constructor change to target_buffer
23396 This changes the target_buffer constructor to initialize m_filename
23397 rather than assign to it.
23407 Nothing uses this new code yet.
23443 In the first case the call to exec_file_attach first passes through
23449 case GDB is really trying to reread the debug symbol. As such, we
23455 name as the executable then we will call exec_file_attach, but we do
23460 In this commit I propose that reread_symbols be changed to
23472 to the gdb.python/py-exec-file.exp test in the previous commit.
23498 I tracked this down to how the reload_symbols function (symfile.c)
23499 takes care to also reload the executable, however, I've split fixing
23507 gdb: pass more arguments to the executable_changed observer
23510 My goal is to expose the executable_changed observer through the
23513 At this point adding executable_changed as an event to the Python API
23514 is trivial, but before I do that I would like to add some additional
23515 arguments to the observable, which currently has no arguments at all.
23517 The new arguments I wish to add are:
23521 2. A boolean flag that will indicate if the executable changed to a
23531 observable in the Python code, and expose this as an event in the
23534 Additionally, with this change, it should be possible to update the
23535 insight debugger to make use of this observable rather than using the
23537 then allow this hook to be removed from GDB.
23548 My goal, in the next couple of commits, is to expose the
23550 before I do that I want to remove the use of the executable_changed
23563 executable_changed notification, and, as there is nobody listening to
23576 The goal of the next couple of commits is to expose the
23578 do this I would like to remove the additional call to the
23581 actually corresponds to a change in the current executable.
23587 In auxv.c we use the executable_changed observable to call
23606 My goal for the next few commits is to expose the executable_changed
23609 However, there is call to the executable_changed observable in the
23611 correspond to the executable changing. My idea then, is to remove
23613 that, I need to check that nothing is going to break, and that
23614 requires my to think about the current users of this observable.
23621 to discard all information about the main function when the executable
23635 to discard the information about the main function. We can then
23640 everywhere we need to.
23648 path to the executable for this program space, or None if no
23659 change the 'filename' attribute to 'symbol_filename', which is what it
23672 gdb.Objfile object that corresponds to Progspace.filename, or None if
23675 Currently, to get this gdb.Objfile, a user would need to use
23676 Progspace.objfiles, and then search for the objfile with a name that
23686 Extend the description for Progspace.filename in the documentation to
23688 for (e.g. that it is the filename passed to the 'symbol-file' or
23700 Since commit b42405a1594 ("gdb: Update x86 Linux architectures to
23718 to be supported by the processor, but disabled by the kernel. I didn't
23729 to fill the x86_xsave_layout::sizeof_xsave. So, when writing the core
23732 to figure out the layout of the XSAVE area based on what features are
23735 combination known by GDB, GDB falls back to a gdbarch supporting only
23738 This patch changes GDB to populate the x86_xsave_layout::sizeof_xsave
23754 change makes GDB-generated cores more similar to kernel-generated ones,
23755 reducing the diversity of XSAVE state notes that GDB needs to be able to
23759 area size would be 896 bytes. We would need to add a case in
23761 currently. But I don't have a way to test that right now, since I don't
23767 to infer ("guess") the size of the XSAVE register set that the Linux
23769 to query this size directly from the kernel via ptrace. My use of ECX
23780 Add support to readelf for the PT_OPENBSD_NOBTCFI segment type.
23790 [gdb/testsuite] Add nopie to gdb.base/unwind-on-each-insn-amd64-2.exp
23797 ld: failed to set dynamic section sizes: bad value
23835 only read is merely to determine whether to write it with another value).
23836 (Since, due to the need to re-indent, the adjacent lines setting
23837 cpu_arch_tune need touching anyway, switch to using PREOCESSOR_*
23838 constants where applicable, to make more obvious what the resulting
23839 state is going to be.)
23846 is supposed to track features that were explicitly enabled (and perhaps
23849 To avoid needing to do any such adjustment in two places (each),
23880 [Thread 3732.0x265c exited with code 1]
23881 [Thread 3732.0x2834 exited with code 1]
23882 [Thread 3732.0x2690 exited with code 1]
23886 (gdb) FAIL: gdb.threads/pthreads.exp: Continue to creation of first thread
23906 [Thread 8732.0x28f8 exited with code 1]
23907 [Thread 8732.0xb50 exited with code 1]
23908 [Thread 8732.0x17f8 exited with code 1]
23912 (gdb) FAIL: gdb.threads/pthreads.exp: Continue to creation of first thread
23940 This commit converts them to ANSI style.
23951 Fix: Output section type does not been applied to section forced output by `. = .` assignment
23960 further adjustment to cpu_flags_match().
23969 In anticipation of APX introduce logic to reduce the number of templates
23970 we have now, allowing to limit some the number of ones we then need to
23974 - attributes be compatible, which specifically means VexW needs to be
23978 extensions (the same will then be required for APX - it'll need to be
23982 this logic will need revisiting for APX anyway, I'd like to keep it that
23984 kept separate, to reduce code churn when adding APX support.)
23992 Broadcast needs to be specified on the memory operand.
23997 REX.W needs to be respected when immediate size and relocation type are
24005 In 5cc007751cdb ("x86: further adjust extend-to-32bit-address
24007 allowing (proper) symbol addresses to be used as immediates (not
24009 Since it defaults to 64-bit operand size, guessing an L suffix is wrong
24026 Add a macro pcaddi instruction to support "pcaddi rd, symbol".
24045 This is due to a change in Linux kernel behavior [1] that affects
24071 frame={level="1",args=[{name="<_task>",value="0x464820"},
24072 {name="<_taskL>",value="129"}]},
24073 frame={level="2",args=[{name="self_id",value="0x464840"}]},
24086 frame={level="1",args=[{name="<_task>",value="0x444830"}]},
24087 frame={level="2",args=[{name="self_id",value="0x444850"}]},
24094 The difference in gdb output is due to difference in the dwarf generated by
24097 Fix this by updating the test-case to accept this output.
24107 need for this. I think this is leftover from when this code was
24114 This adds two new pretty-printer methods, to support random access to
24116 and DAP is updated to use this.
24123 There was an earlier thread about adding new methods to
24131 printers may have attribute name clashes.
24134 that signals to gdb that the printer follows new extensibility rules.
24173 aarch64: Allow feature flags to occupy >64 bits
24174 Following on from the previous patch to make the feature macros take
24175 a word number, this one increases the number of flag words from 1 to 2.
24177 The patch uses some dummy features to push the number of features
24184 The AArch64 feature-flag code is currently limited to a maximum
24207 (2) and (3) use the preprocessor to generate static initialisers.
24209 cannot be nested. So if a macro wants to do something for N individual
24210 arguments, it needs to use a chain of N macros to do it. There then
24211 needs to be a way of deriving N, as a preprocessor token suitable for
24214 The easiest way of doing that was to precede each list of features
24220 This scheme makes it difficult to keep AARCH64_FEATURE_CRYPTO as a
24221 synonym for SHA2+AES, so the patch expands the former to the latter.
24228 Error occurred in Python: 'code' object has no attribute 'co_posonlyargcount'
24247 commit. The problem is that I'm not using the proper way to tell the
24257 Fix to step instruction due to P10 prefix instruction.
24259 …4 bytes of space. Due to this when we do a stepi on paddi instruction we get a SIGILL interrupt. H…
24260 …need to check during stepi if we are able to step 8 bytes during this instruction execution and is…
24261 breakpoint to this instruction set correctly in both 32- and 64-bit mode.
24263 This patch is a fix to the same.
24279 seems to me that this must be copying the string (? I find it hard to
24282 This patch changes these spots to use release() instead, which moves
24297code to initialise range_versions. (skip_attribute): New function. (read_bases): Read and reccord …
24307 Revert "arc: Add new ARCv3 ISA to BFD."
24331 Revert "arc: Update bfd arc pattern file to allow enable-targets=all"
24336 arc: Update bfd arc pattern file to allow enable-targets=all
24337 The ARC backend uses a BFD pattern file to generate three ARC targets:
24410 * opcodes/arc-opc.c: Move the common functionality to
24424 (fpnames): New strings with fp-regs name.
24430 (arc_insn_length): Update insn lengths to various architectures.
24498 Add new ARCv3 CPUs and required bits to decode/encode ARCv3 ISA
24523 (arc_flag_class): Update structure to hold new extract/insert
24549 arc: Add new ARCv3 ISA to BFD.
24550 The new Synopsys's ARCv3 ISA is capable to run either 64-bit or
24578 * bfd/arc-plt.h: Clean it up, move functionality to arc-plt.c file.
24587 * bfd/elf32-arc.c: Renamed to elfnn-arc.c.
24662 Update the NetBSD system call table to add memfd_create(2) and epoll(2).
24694 2. Rename inf to inf_p to avoid shadowed declaration warnings.
24706 delegate code preserves this keyword -- but, with C++, it does not
24707 really need to. This patch changes make-target-delegates.py to remove
24708 these keywords, and updates target-debug.h to follow. This pointed
24720 This patch makes the gprofng disassembler to emit, e.g.
24725 I use bfd_get_synthetic_symtab() to get function names in the .plt section.
24726 I have not yet modified Elf-reader in gprofng to remove parsing of .symtab or
24727 .dynsym sections. But we plan to do it.
24733 * src/Disasm.cc: Show the function name in the call instruction
24734 and the relative address in the branch instruction. Remove unused code.
24738 * src/Stabs.cc: Add pltSym to SymLst. Remove the conversion to uint32_t.
24746 ld: write resolved path to included file to dependency-file
24747 In ldfile_open_command_file_1() name written to the dependency files is
24748 the name as specified passed to the "INCLUDE" directive.
24766 This seems to point out a test suite deficiency. I will look into
24774 and sometimes they are obsolete. I think it's better to just remove
24782 According to the DAP specification if the "sourceReference" field is
24784 request to the debugger to retrieve file contents, even if the Source
24788 to read from the filesystem, having to make another request to the
24789 debugger to get the file contents is wasteful and leads to incorrect
24790 results (DAP clients will try to get the contents from the server and
24791 display those contents as a file with the name in "source.path", but
24801 gdb/dap: use breakpoint fullname to resolve source
24823 "source" will be None, which leads to a RuntimeError when attempting to
24826 Before attempting to unpack the filename and line number from the
24837 The buildbot pointed out that I neglected to re-run 'black' after
24842 gdb/tui: add 'set tui mouse-events off' to restore mouse selection
24844 I use the mouse with my terminal to select and copy text. In gdb, I use
24845 the mouse to select a function name to set a breakpoint, or a variable
24846 name to print, for example.
24850 normally select text, seems to do nothing. This means I cannot select
24851 text using my mouse anymore. This makes it harder to set breakpoints,
24855 I tried to fix this issue by editing the 'mousemask' call to only enable
24857 to not allow text to be selected. The only way I could make it work is
24858 by calling 'mousemask (0, NULL);'. But doing so disables the mouse code
24861 I therefore decided to make a setting in gdb called 'tui mouse-events'.
24863 events are given to gdb, disabling the terminal's default behavior.
24865 terminal mouse events are not given to gdb, therefore the mouse can be
24866 used to select and copy text.
24869 I am not attached to the setting name or its description. Feel free to
24887 There are two methods to factor out type information in a dwarf4 executable:
24888 - use -fdebug-info-types to generate type units in a .debug_types section, and
24889 - use dwz to create partial units.
24891 The dwz method has an extra benefit: it also allows to factor out information
24892 between executables into a newly created .dwz file, pointed to by a
24895 There is nothing prohibiting a .gnu_debugaltlink file to contain a
24913 to clarify why we can use:
24954 and propagate return to callers.
24980 A user pointed out that the current DAP variable code does not let the
24987 expected there to be no children of a 'const char *' variable. This
24995 Give a language to a type
24996 This changes main_type to hold a language, and updates the debug
24997 readers to set this field. This is done by adding the language to the
25002 This patch also reimplements type::is_array_like to use the type's
25004 turn lets us change the Python implementation of these methods to
25005 simply defer to the type.
25009 Add is_array_like and to_array to language_defn
25010 This adds new is_array_like and to_array methods to language_defn.
25012 Python array- and string-handling code.
25016 passed to a type-creation helper function. In another spot, remove
25017 the redundant 'objfile' parameter to another such function.
25019 Pass a type allocator to init_fixed_point_type
25027 This replaces some casts to various kinds of catchpoint with
25035 This replaces some casts to 'code_breakpoint *' with
25043 This replaces some casts to 'tracepoint *' with checked_static_cast.
25044 Some functions are changed to accept a 'tracepoint *' now, for better
25052 This replaces some casts to 'watchpoint *' with checked_static_cast.
25059 gdb, breakpoint: add a destructor to the watchpoint struct
25060 Make sure to unlink the related breakpoint when the watchpoint instance
25062 linked to a NULL watchpoint (e.g. the watchpoint instance is being
25064 having such a left out breakpoint will lead to a GDB hang, and this
25065 is due to an infinite loop when deleting all inferior breakpoints.
25080 gdb/cli: fixes to newly added "list ." command
25083 some code and test improvements that should be made.
25085 While fixing the test, I realized that code repetition wasn't
25098 This patch changes class symbol_search to store a block_enum rather
25107 Move val_prettyformat to valprint.h
25108 I stumbled across an ancient FIXME comment that was easy to fix --
25109 val_prettyformat does not need to be in defs.h, and is easily moved to
25122 This appears to be a leftover from a past change.
25141 The unit test fails on 32-bit systems due to wrapping overflow. Fix this by
25142 changing the type of total_len in write_gdbindex_1 from size_t to uint64_t.
25156 I don't think these are useful nowadays, since we now expect all code to
25169 instructions. This can result in a wave stopping due to a memory violation
25171 instruction that caused the wave to stop.
25173 Some architectures allow the hardware to be configured to always wait for
25174 memory operations to complete before continuing. This will result in the
25182 from one inferior to another when using the clone-inferior command, or
25186 attempt to apply what the user wants when attaching amd-dbgapi. If the
25187 user has requested to enable precise memory, but it can't be enabled
25196 upstreamed to GDB yet. When we do upstream watchpoint support, GDB will
25197 produce a similar warning message when stopping due to a watchpoint if
25223 original inferior to the new inferior when using the clone-inferior
25224 command. Add the inferior_cloned observable to help with this.
25234 not accepted. This patch rewrites this code into a form that is
25235 acceptable to the older compiler.
25253 by default due to a bug that the commit fixed.
25255 Replaced the amdgpu target call to delete_thread with a call to
25264 Lancelot has accepted to take the role of maintainer for the AMD GPU
25266 is an umbrella term for everything needed to make this work: the amdgcn
25276 This renames split_style::DOT, to avoid name clashes when building gdb
25281 ./split-name.h:34:3: error: expected identifier
25298 Given the next code snip:
25310 The current code returns different TLS_TBSS values for .tdata and
25323 some code in symbol_file_add_with_addrs that I thought could be
25343 to guard the one statement that should only happen when the condition
25347 significant, there is a call to bfd_cache_close_all() that was only
25351 The call to bfd_cache_close_all was added in commit:
25361 with the result that GDB would continue to hold open some BFD objects
25393 Cpu64 is solely used in insn templates, they no longer need to be
25409 x86: make code size vs CPU arch checking consistent
25411 didn't, allowing e.g. 64-bit code to be emitted after ".arch generic32".
25420 checks. While moving the code, eliminate some redundancy.
25427 default, leaving it to external debug packages.
25429 This commit adds a way to check if GDB has access to stderr information
25430 when in MI mode, and uses this new mechanism to skip the related section
25431 of the test gdb.mi/mi-dprintf.exp. It also fixes an incorrect name for a
25444 The header in a .gdb_index section uses 32-bit unsigned offsets to
25445 refer to other areas of the section. Thus, there is a size limit of
25446 2^32-1 which is currently unaccounted for by GDB's code for outputting
25450 abnormally due to an internal error, which is caused by a failed
25462 A problem internal to GDB has been detected,
25505 I wish I could provide a test case, but due to the sizes of both the
25523 a buffer overflow bug was introduced when the following code was
25534 So 'saved' is going to point to addresses.size () bytes of memory,
25536 CORE_ADDR sized entries to the address pointed to by 'saved', this is
25537 going to result in memory corruption.
25545 Which means we will have set aside enough space to create a copy of
25548 I'm not sure how to create a test for this problem, this issue cropped
25550 to trigger a glibc assertion (likely due to random memory corruption),
25551 debugging the same binary built for x86-64 appeared to work just fine.
25553 Using valgrind on the failing GDB binary pointed straight to the cause
25557 If anyone has ideas for a test I'm happy to work on something.
25567 not being able to spawn for a large number of test-cases afterwards.
25605 and subsequent prints 8MB, which accumulates to 1.3 GB usage. [ On the
25612 (PR8819), but this memory usage points to an independent problem.
25614 The function value_print_array_elements contains a scoped_value_mark to free
25680 enough to the original to keep the copyright years range.
25683 setting to print the entire array in repeat form, filed as PR exp/30817.
25685 I managed to apply the compilation loop for the Ada variant as well, but with
25690 form, to avoid false positive FAILs, which also means that smaller regressions
25705 - avoid using . in regexp to match $, {} and <>.
25716 "dst" to "src", thus bringing things in line with Exy.
25729 size specifiers not being recognized), mask register insns have to have
25733 Note that .insn continues to be permitted to emit EVEX{512,256} (and
25738 assertions should be added to build_{e,}vex_prefix().
25744 little code to be added.
25746 The main aspect here are new testcases. In order to be able to re-use
25749 need to work right away. Subsequently they'll gain vector length
25759 very much wanted in order to then put AVX10.1 support on top. Note that
25760 to avoid reverse dependencies towards SSE (just like we already do for
25766 past the AVX+AES ones, to avoid the property-11 test suddenly failing.
25795 version 1"). It is no longer possible to reach this warning, since
25796 trying to use interpreter mi1 bails out before:
25812 better to me to accept it. I don't think we should fully go down the
25830 mdebugread.c:836:17: note: initialize the variable 'f' to silence this warning
25865 To fix this issue we need to ensure that the varibale 'f' is
25866 initialized. Calling the fields method is an obvious way to fix this
25877 call to execl which does not have NULL as a last argument. This is
25890 This changes hash_ptid to instead be a specialization of std::hash.
25891 This makes it a little easier to use with standard containers.
25899 realized that the paragraph could use a link to the block_signals
25915 testsuite, fortran: Fix regression due to fix for ifort's 'start' behavior
25916 Got a regression email due to merge of commit in CI config
25921 commit to start the test from running to line with tag "First Breakpoint"
25926 So now after this change test is updated accordingly to disable and unload
25945 The code is only used in remote.c and all functions can be declared static.
25967 However, the FXSAVE and XSAVE instructions (which the kernel uses to
25979 the x87 status word (FSW.ES) is set to 1, indicating that an
25987 For this reason, I think it's fine to change the test to accept the
25990 I toyed with the idea of changing the test program to make it so the CPU
25992 and executing an instruction to raise that kind exception. It worked,
25993 but then I would have to change the test more extensively, and it didn't
25994 seem to be worth it.
26020 eh_frame_convert_frag we want to remove the opcode entirely, not just
26021 convert to a nop. If the opcode was split over two frags then a size
26022 adjustment would need to be done to the first frag, not just the
26024 complicate the eh relaxation. It's easier to ensure the frag is not
26028 to be placed in a different frag to the rs_cfa.
26033 The auto-builders pointed out that I neglected to run 'black' after a
26052 "fioff" stood for, making it difficult to map it to something in the
26054 x87 to want to print the "x87 last instruction address", and have no
26056 x87 state fields don't seem to be standardized, they even change between
26060 Add some details to the doc to help one map GDB register names to x87
26071 gdb/doc: rename "x86 Architecture-specific Issues" section to "x86"
26072 I'm looking to add some x86-specific information to the doc, but I find
26075 architectures don't mention "issues", just the architecture name.
26077 Also, at least in the HTML version of the doc, the name is inconsistent
26082 Rename the section to just "x86".
26144 point to a CU header.
26187 output is not printed to GDB's tty, but is instead printed to
26192 than the test's source file, changes to the C++ runtime could cause
26193 the output to change.
26196 reference to the inferior's output, and replacing it with '.*', which
26233 ifx. The particular fail seems to be specific to gfortran. When the
26247 the stopping of the debugger at exactly the first statment in the code.
26249 Strangely, neither gfortran nor ifx seem to do this for these tests.
26256 So, actually, ifort's behavior can be considered to be a bit more
26258 two tests and instead uses runto to directly run to the first breakpoint
26271 were written in the source code of tests. These were usually dummy
26272 statements meant to generate a line table entry at that line on which
26273 to break later on.
26289 File name Line number Starting address View Stmt
26309 the value into a register and one writing it back to the same memory.
26314 File name Line number Starting address View Stmt
26322 standard, I changed these lines to become actual value assignments.
26349 and usually one would expect arguments a, b, c, d, e, and g to be
26350 emitted here. However, due to some compiler dependent treatment of the
26364 up to the compilers here I think, I could not find anything in the
26377 made the regex for the emitted name of the last variable match any
26378 arbitrary name.
26384 gdb: add Abdul Basit Ijaz to gdb/MAINTAINERS
26399 So this patch rearranges things a little to support writing of all of
26413 (print_insn_kvx): Rewrite code reading bundle_words as a for loop.
26421 -- to disable a pretty-printer for a varobj -- then
26440 Remove dead code from varobj_set_display_format
26442 the values -- but also has a default. This default case is dead code.
26448 Allow pretty-printer 'children' method to return strings
26451 tracked this down to my_value_of_variable calling into
26455 Now, this part of MI seems bad to me, but rather than change that,
26456 this applies the fix to only dynamic varobjs, which is the only
26476 The easiest way to see what's going wrong is with readelf. We have in section
26483 which points to the CUs 2 and 3 in the CU list (shown using "2" and "3"), but
26484 should be pointing to the TUs 2 and 3 in the TU list (shown using "T2" and
26495 [ While reading write_gdbindex I noticed a few oddities related to dwz
26512 No name 'three' in enumeration type 'local__e1'^M
26529 When doing "print v1(three)", it's the job of ada_resolve_enum to resolve
26530 "three" to type E1 rather than type E2.
26538 /* We already know the name matches, so we're just looking for
26562 'Enum_Rep requires argument to have same type as enum^M
26573 Conversely, when I add this test to the test-case:
26589 can resolve lit3 to one of the two.
26591 Fix this by moving the code to ada_resolve_variable.
26604 are ever passed to it -- and they are similar enough that it seems
26605 cleaner to just have block_find_symbol do the work itself. Also,
26618 multiple MI interpreters"), I thought it would make sense to make
26624 I didn't find any bug related to that, it's just a "that seems nicer"
26627 mi_execute_command needs a check similar to what we already have in
26648 Use 32/64_PCREL to replace a pair of ADD32/64 and SUB32/64.
26655 to replace a pair of ADD32/64 and SUB32/64.
26661 second letter (or multiple following letters) is enough to differentiate
26664 Therefore, added letter `t' after `X' for t-head operands, to differentiate
26687 to be used.
26705 Commit 3bab069c29b3 carelessly allowed "string" to be released from
26706 the notes obstack twice, with the second call to obstack_free
26707 releasing memory for a fixup that just happened to be the same size as
26719 Test-case gdb.ada/same_enum.exp is supposed to be a regression test for this
26720 bit of code in remove_extra_symbols:
26726 The test-case does "print red" and expects one of these two choices to be
26748 Fix this by changing the type of SC to RGB_Color, and add prints of the two
26749 types to check that they're both available.
26751 With the test-case fixed, if we disable the bit of code in
26810 Line 1 of "setshow.c" is at address 0x400527 <main> but contains no code.^M
26811 Line 1 of "setshow.c" is at address 0x400527 <main> but contains no code.^M
26816 Line 1 of "setshow.c" is at address 0x400527 <main> but contains no code.
26820 The second line of the expected output is missing due to the first line of the
26843 The libctf library does not needed to be built, but building
26855 In gprofng testing, we need a tempory gprofng installation to resolve run-time
26857 We set LD_LIBRARY_PATH and GPROFNG_SYSCONFDIR to find our libraries and
26876 QEMU's built-in GDB stub responds to the vKill packet by printing
26882 This patch fixes the regexp in gdb.base/hook-stop.exp to allow such
26892 shell to run commands in. Don't try to run them if that's not the case.
26899 gdb/testsuite: Adjust some testcases to allow Windows pathnames
26911 may print as "0x0" or as an address with a symbol name following.
26916 This patch generalizes the regexps to handle these additional forms
26917 and reworks some of the line-wrapping tests to account for the argv
26926 This changes the no-op pretty printers -- used by DAP -- to handle
26932 Add new Python APIs to support DAP value display
26933 gdb's language code may know how to display values specially. For
26934 example, the Rust code understands that &str is a string-like type, or
26935 Ada knows how to handle unconstrained arrays. This knowledge is
26938 This patch adds some support code to let DAP also handle these cases,
26941 Type.is_array_like and Value.to_array are added to make Python aware
26945 Type.is_string_like is added to make Python aware of cases where gdb's
26946 language code knows that a type is string-like.
26958 better to use the variable's defining frame instead. This patch does
26962 "finish" is sensitive to the selected frame, but the DAP code may
26964 only works on the newest frame, so be sure to select it before
26973 The former can be used to see whether a given type is known to be
26981 Ada has a few complexities when it comes to array handling. Currently
26982 these are all handled in Ada-specific code -- but unfortunately that
26983 means they aren't really accessible to Python.
26985 This patch changes the Python code to defer to Ada when given an Ada
26986 array. In order to make this work, one spot in ada-lang.c had to be
26987 updated to set the "GNAT-specific" flag on an array type.
26995 the DWARF reader to set this on Rust types. This will be used as a
26998 Note that the size of the type_specific_field bitfield had to be
27003 Refactor Rust code for slice-to-array operation
27009 This moves rust_language::lookup_symbol_nonlocal to rust-lang.c.
27010 There's no need to have it in rust-lang.h and moving it lets us avoid
27016 If the length of a register name was greater than 15,
27022 to specify additional long-named registers.
27031 Read Ada main name from executable, not inferior
27033 one Ada executable to another without "kill"ing the inferior, then the
27036 What happens here is that the Ada "main" name is found in a constant
27040 This patch fixes the problem by changing the main name code to set
27041 trust-readonly-sections, causing the target stack to read from the
27044 I looked briefly at changing GNAT to emit DW_AT_main_subprogram
27045 instead, but this looks to be pretty involved.
27053 Investigation showed this to be a crash in the DWARF reader when
27054 handling a "pragma export" symbol. The bug here is that earlier code
27055 decides to eliminate the symbol, but the export code tries to add it
27056 anyway -- but to a NULL list.
27060 readelf: Add option to display the names of sections referenced by symbols.
27062to print_sumbol_name. (printable_section_name): Use a rotating array of static buffers for the ret…
27068 RISC-V: fold duplicate code in vector_macro()
27069 There's no need to have almost identical code twice. Do away with
27070 M_VMSGEU and instead simply use an unused (for these macros) field to
27077 add any instructions or CSRs (but adds bits to existing CSRs), this commit
27078 only adds extension name support and implication to the 'Zicsr' extension.
27087 'Svadu' to 'Zicsr'. (riscv_supported_std_s_ext) Add 'Svadu'.
27107 By checking the base privileged specification, we no longer need to change
27117 'Smcntrpmf' to the supported S extension list.
27155 According to the ratified privileged specification (version 20211203),
27171 * testsuite/gas/riscv/march-fail-rv32eh.d: New failure test to
27183 very to understand, so this patch replaces the numbers with the
27192 (elf32_arm_merge_eabi_attributes): Update call to
27207 Attaching to process 3955^M
27225 The regexp attempts to detect that the exec is somewhere in pause ():
27243 We could simply extend the regexp to also match __kernel_vsyscall, but the
27247 dynamic linker resolving the call to pause, in main or even earlier.
27249 Note that for the test-case to be effective, the exec is not required to be in
27251 patch fixing the corresponding PR and reproduced the problem it's supposed to
27254 Fix this by simply matching the "Reading symbols from" line, similar to what
27257 While we're at it, rewrite the earlier test to also use the -wrap idiom.
27281 The problem can be reduced to:
27294 Writing to the local regcache in GDB works fine, but the writeback to
27296 code being stepped doesn't touch AVX registers, so we don't expect the
27297 value of zmm16 to change when stepping).
27328 for $host binaries that runs on $build; that is, it's appropriate to
27344 wrong command name. Then I looked through the whole file and found a
27345 couple other spots that didn't mention the command name at all. This
27353 Inverting the initial if()'s condition allows to move out the bulk of
27360 The name we use internally isn't in line with the SDM, and also isn't in
27366 expectations therefore also need to change.
27369 Commit 916fae91358d ("Add Size64 to movq/vmovq with Reg64 operand" was
27370 right in adding the attribute to MOVQ, but there was no need to add it
27371 to VMOVQ. (See also the AVX512F form, which doesn't have the attribute
27377 For disassembly to only use spec-mandated aliases, respective non-alias
27378 entries need to come ahead of their alias ones. Since identical
27379 mnemonics need to stay together, whole groups are moved up where
27398 The vmsge[u].vx pseudo should be expanded to masked vmslt[u].vx only when
27399 vd != v0. Otherwise, it should be expanded to unmasked one.
27481 Add these two methods, rename the field to m_bitsize to make it pseudo
27506 Add these two methods, rename the field to m_artificial to make it
27517 convenient for me to merge this function into its only caller.
27541 needed to reproduce the problem.
27548 start gdb (w/ no arguments), and do the following to reproduce the
27557 Attaching to process 4103218
27569 A problem internal to GDB has been detected,
27572 The add-symbol-file command causes the symbols to be loaded without
27574 set. This, in turn, causes the "maybe_copied" flag to be set for
27577 The attach command will cause another objfile to be created, but
27579 leading to a situation in which the OBJFILE_MAINLINE flag will be set
27582 anew, this flag would not be set due to OBJFILE_MAINLINE being set
27610 earlier, this happens due to add-symbol-file being used; this causes
27611 the maybe_copied flag to be set. Later, when the attach is performed,
27612 OBJF_MAINLINE will be set for that objfile, leading to this
27616 MSYMBOL_VALUE_ADDRESS macro (which has since been changed to be the
27617 method noted above) to include a test of the OBJFILE_MAINLINE flag.
27646 during a rebase in addition to making some changes to account for a
27650 specific to ELF, while the new approach will be used by any object
27652 incorrect evaluation in some scenario." This seemed plausible to me,
27653 so I introduced the flag 'object_format_has_copy_relocs' to struct
27656 this method to return false when the flag is not set. If we find that
27662 common to either let gdb figure out which file to load by itself when
27666 Attaching to process 4104360
27676 ...or to use the "file" command prior to the attach, like this:
27681 Attaching to program: /tmp/add-symbol-file-attach, process 4104360
27689 "add-symbol-file" to load the program to which you will attach
27691 gdb to assert, hence this fix.
27702 other type-related cases. These all have identical code.
27711 My earlier patch to simplifify the @node uses in the BFD manual didn't
27718 I went through the entire manual using the spacebar, trying to find
27729 parameters back to @node.
27735 from current trunk, but the pathname to the build dir changed and I forgot to
27736 update my test scripts, so the test scripts reverted to using system dwz,
27745 which is due to PR dwz/24468, which was fixed in version 0.13.
27767 already present, in the process keeping a reference to the malloc'd
27768 section name string. Really, the name belongs in bfd_alloc'd memory
27770 s_stab_generic at least does allocate the name for the stab section on
27777 the note obstack during expression parsing. That makes it possible to
27778 always free the section name strings unless used to create new
27781 --input_line_pointer might have caused the following source line to be
27785 param. Pass to get_stab_string_offset rather than name of
27798 (stabs_begin): Adjust to suit.
27810 (s_xstab): Use notes_concat to make stabstr section name.
27866 no zero-initialization of allocated fields is done are easy to spot:
27892 After finding this code in buildsym_compunit::finish_block_internal:
27901 I decided to make things easier to spot by factoring out a new function
27914 Pretty soon I discovered that most of the latter cases are due to
27930 - set to nullptr (coffread.c),
27941 gdb either segfaults or asserts due to reading uninitialized memory, allocated
27965 was pointing to 0x00.
27967 - MEMORY_FILE is a new emulation paramter and sets the name for the
27972 …XT_REGION_ORIGIN__ Once defined it is setting the text region origin. By default it points to zero.
27973 …TEXT_REGION_LENGTH__ Once defined it is setting the text region length. By default it is set to 2M.
27974 …ION_ORIGIN__ Once defined it is setting the data region origin. By default it is set to 0x80000000.
27975 …DATA_REGION_LENGTH__ Once defined it is setting the data region length. By default it is set to 2M.
27985 sections of their linked to sections are different.
27999 Check DT_SYMTAB only on non-IR object of archive member to avoid crash
28013 Pattern rules in doc/local.mk exist that specify how to make
28026 There isn't any reason to think that a particular buffer size is
28045 using "maint print symbols -source $srcfile", but dwz has moved the typedef to
28063 Revert "Gold: Add targ_extra_little_endian to configure.ac"
28102 This commit limits XVentanaCondOps instructions RV64-only to match the
28111 to XLEN=64.
28154 This is due to commit e85aad4ae76 ("nat/x86-cpuid.h: Add x86_cpuid_count
28172 patch replaces one with a better name, and entirely removes the other.
28180 value_array requires the passed-in bounds to match the length of the
28200 branch. This patch merges them, using the clearer name.
28208 This hoists the array bounds check in array_operation::evaluate to
28217 This changes array_operation::evaluate to declare the 'tem' variable
28219 cleaner and easier to reason about. I also changed 'nargs' to be
28228 This changes value_array to accept an array view. I also replaced an
28230 can work on any size of array, so it seems bad to use alloca.
28245 Process record: failed to record execution log.^M
28249 (gdb) FAIL: gdb.reverse/step-precsave.exp: run to end of main
28256 this byte value in order to produce a KFAIL.
28281 cpls-abi-tag.cc:71:26: error: ‘abi_tag’ attribute applied to non-function ‘s’
28296 into a compilation failure due to the test-case requiring c++11 and the
28297 compiler defaulting to less than that.
28313 The "C.UTF-8" is normalized by have_host_locale to "c.utf8", before trying to
28316 On my development platform, "locale -a" lists C.utf8, which is normalized to
28319 On another platform however, "locale -a" lists C.UTF-8, which is normalized to
28332 Default getpkt 'forever' parameter to 'false'
28334 defaults to 'false' and fixes up all the callers.
28342 getpkt_or_notif_sane_1. This patch adds the is_notif parameter to
28350 This changes getpkt and related functions to use bool rather than int.
28389 UNTESTED: gdb.reverse/getrandom.exp: failed to prepare
28419 and limit the xfail to unfixed versions.
28421 The PR is fixed starting gcc 13, but it has been backported to release
28422 branches stretching back to gcc 10. For simplicity we just stick to testing
28441 registers with a single variable. Make use of this to merge
28464 gdbserver: Use x86_xstate_layout to parse the XSAVE extended state area.
28478 struct. Use class inheritance to remove code duplication.
28487 gdbserver: Add a function to set the XSAVE mask and size.
28488 Make x86_xcr0 private to i387-fp.cc and use i387_set_xsave_mask to set
28490 and initialize it in the new function as well to be used in a future
28491 commit to parse XSAVE extended state regions.
28493 Update the Linux port to use this function rather than setting
28495 bother setting x86_xcr0 to the default value but just omit the call to
28496 i387_set_xsave_mask as i387-fp.cc defaults to the SSE case used for
28499 In addition, use x86_xsave_length to determine the size of the XSAVE
28506 gdb: Use x86_xstate_layout to parse the XSAVE extended state area.
28510 to be split into separate tables as they held entries that spanned
28518 Note that this uses the CPUID instruction to determine the total size
28519 of the XSAVE register set. If there is a way to fetch the register set
28526 gdb: Update x86 Linux architectures to support XSAVE layouts.
28527 Refactor i386_linux_core_read_xcr0 to fetch and return a corresponding
28529 NT_X86_XSTATE core dump to determine the offsets via
28530 i387_guess_xsave_layout. Use this to add an implementation of
28541 Use the CPUID instruction to fetch the offsets of supported state
28548 gdb: Update x86 FreeBSD architectures to support XSAVE layouts.
28549 Refactor i386fbsd_core_read_xcr0 to fetch and return a corresponding
28551 NT_X86_XSTATE core dump to determine the offsets via
28552 i387_guess_xsave_layout. Use this to add an implementation of
28562 x86 nat: Add helper functions to save the XSAVE layout for the host.
28566 x86_fetch_xsave_layout uses CPUID to query the offsets of XSAVE
28582 Add gdbarch_core_read_x86_xsave_layout to fetch the x86 XSAVE layout
28586 core dumps, so provide an i387_guess_xsave_layout helper function to
28604 x86: Add an x86_xsave_layout structure to handle variable XSAVE layouts.
28634 to use x86_xsave_layout.
28648 The getsymname function uses PRIxPTR to print and uintptr_t value in
28682 auxent buffers are available, which they are not in most calls to
28687 This required some changes to coff_get_normalized_symtab, which now
28688 uses the external auxents to access the concatenated file name.
28690 the file name are not adjacent as they are in the external auxents.)
28702 Return with failure if debug section can't be read, to avoid
28703 trying to read it multiple times. Correct sanity check
28710 case with a C_FILE sym using multiple auxents for a long file name
28711 which overflowed the single auxent buffer. I'm going to fix that
28752 failures due to the test-cases requiring c++11 and the compiler defaulting
28753 to less than that.
28757 This exposes two FAILs in gdb/testsuite/gdb.cp/empty-enum.exp due to
28760 Also require have_compile_flag -std=c++17 in gdb.cp/constexpr-field.exp to
28789 This problem didn't make some trouble for us, is due to that
28790 gold is a linker, and all of the inputs to it has right EM values.
28794 Gold: Add targ_extra_little_endian to configure.ac
28809 On a big-endian machine this would result in scrambling the code and
28811 H_GET_32 in pe_bfd_object_p, I decided it doesn't make sense to store
28823 to output.
28831 Entries added to the hash table with bfd_malloc ought to be freed when
28832 the hash table is deleted. This patch adds the necessary del_f to the
28838 * coffcode.h (handle_COMDAT): ..to here, renaming support to
28845 A bfd_cleanup function needs to run when only tdata is correct for the
28848 is superfluous. (In contrast to _bfd_free_cached_info or
28849 _close_and_cleanup where we do need to check things.)
28853 Also, pe_ILF_cleanup ought to call coff_object_cleanup as do all PE
28863 Sanity check aux entries used by PE to extend a C_FILE name. See
28874 Oops there was a reference to the old name.
28885 This patch sets GUILE to just plain 'guile'.
28892 This patch also removes the use of "-s" as an option to cgen scheme
28900 * cgen.sh: Don't pass "-s" to cgen.
28908 gdb would fail to find the shared library's name in 'bt'.
28911 segment and ended with a call to 'abort'.
28913 This turned out to be a classic case of calling get_frame_pc when
28918 imagine it can't be assumed to reliably fail. Nevertheless it seemed
28969 ldscripts to the makefile since it is possible to run more than one
28984 The getsymname function tries to emit an error using %ld for an
29048 A fatal error internal to GDB has been detected, further
29057 name is outside the string table. That is, the offset is greater
29061 what I've chosen to address to fix this issue, following what is done
29069 Unfortunately, I haven't any idea how else to test this patch since
29082 In AIX the first eight function parameters are stored from R3 to R10.
29085 This patch is a fix to the same.
29092 While documented to not be reliable, it is still odd for objcopy to
29093 silently produce bad output when converting COFF/PE object files to ELF
29095 subtracting the symbol's section offset. In the COFF/PE world, to my
29098 comment ahead of the sole use site of CALC_ADDEND() may need to account
29115 conventional section names uniformly. By further passing $dump_opts to
29118 comments anyway). Note that section7 and section15 need to be left
29122 the need to xfail section11 for LoongArch and RISC-V also goes away.
29127 While --sectname-subst is nice, it isn't enough to e.g. mimic
29128 -f{function,data}-sections in assembly code, when such use is to be
29131 Assign meaning to '+' and '-' as section attribute letters, allowing
29132 to inherit the prior section's attributes (and possibly type) along
29152 Code in som_write_symbol_strings neglected to allow for padding, which
29154 not supposed to use in libbfd because libbfd isn't supposed to call
29157 were three copies of the string handling code, so rather than fix them
29158 all I've extracted them to a function. This necessitated making one
29168 Caused by commit 5a97377e5513, specifically this code added to
29175 call to rela_dyn_section creates it, and as this comment in
29177 // Annoyingly, we need to make these sections now whether or
29179 // need to mess with the relaxation machinery checkpointing.
29185 Tidy code setting plt_thread_safe, which also only needs to be
29195 It is possible to debug a process which uses unsupported AMDGPU devices.
29196 In such scenario, we can still use librocm-dbgapi.so to attach to the
29203 First, if the arch of this device is unknown to BFD,
29207 operation to svr4_so_ops.relocate_section_addresses, but this makes no
29208 sense: this code object was not loaded by the system loader.
29213 there, gdbarch_find_by_info calls amdgpu_gdbarch_init which will fail to
29214 query arch specific details from dbgapi and subsequently fail to
29219 This patch proposes to add a check in rocm_solib_bfd_open to ensure that
29220 the architecture associated with the code object to open is fully
29269 every instruction. However, due to how the outputs are indexed in the
29270 test, this early exit will cause most of the subsequent tests to be
29274 fact failed to record the execution of the whole function, and
29279 testing with clang-15 from around 150 to 2, and correctly identifies
29289 compiler is able to properly output. GCC decides to just not save
29291 it to the variable. This hid the problem that any compiler is not good
29302 Which is clearly using the incorrect rbp to find the memory location of
29303 the variable. Since the test only exercises GDB's ability to record the
29304 register changes, this commit removes the output to memory.
29316 When testing using reverse-stepi to fully step through a function, the
29317 code checks for an infinite loop by seeing if we land on the line that
29322 to get seriously out of sync with the test expectations, and result in 13
29326 number. The test still only happens when the same line is detected, to
29338 this, this commit changes the function in shr2.c to have multiple lines,
29339 and the test to accept either line as a correct step location.
29341 To properly re-sync the inferiors, the function repeat_cmd_until had to
29342 be slightly changed to work with empty "current locations", so that we
29343 are able to step through multiple lines.
29345 This also changes the annotations used to determine the breakpoint
29357 breakpoint in that line, but don't seem to use information available
29359 breakpoint to the previous line, where the return statement is.
29397 Fix this by splitting the linker MEMORY into ram and rom to avoid
29398 generating RWX sections. This required tests to be adjusted to fix
29403 to used the correct l.movhi instruction instead.
29406 padding is added before pi to show that the actual address of pi and
29445 * config/tc-kvx.c (kvx_end): Do not write to e_ident.
29461 Run black on make-target-delegates.py to fix buildbot build breaker.
29528 breakpoint class has an "inferior" member used to handle
29556 forever, because there were exactly 10 processes to return.
29559 If the buffer is too small to hold all the valid process identifiers,
29562 situation, use the return value to allocate a buffer that is large
29563 enough to store the entire list and call the function again.
29566 size, so we should have broken out of the loop. We didn't due to a
29577 style is to use explicit comparisons, so fix things up.
29603 breakpoint condition failed due to a signal, this commit was a
29612 of these commits, if a b/p condition failed due to a signal then the
29618 commit 2e411b8c68eb tried to solve (for the CLI) and b1c0ab20809a
29625 stack back to the location where the inferior function call started.
29641 Prior to this commit, the only time that normal_stop was not called,
29654 2. If the inferior function call stopped due to a signal and 'set
29657 3. If the inferior function call stopped due to an uncaught C++
29661 However, if we don't call normal_stop then we need to call
29662 async_enable_stdin in call_thread_fsm::should_stop. Prior to this
29666 In this commit I now call ::should_notify_stop and use this to
29667 determine if we need to call async_enable_stdin. With this done we
29691 GDB has restored the context to what it was before the call.
29702 As GDB has unwound the stack (thanks to unwindonsignal) the second
29706 to this:
29721 GDB has restored the context to what it was before the call.
29747 GDB has restored the context to what it was before the call.
29759 useful information about which signal caused the inferior to stop.
29761 To address this I've reworked the message that is printed to include
29774 to what it was before the call. To change this behavior use
29784 the inferior function call to stop.
29787 occurred. I did consider trying to include this information in the
29789 worth the effort. If the user has selected to unwind on signal, then
29791 inferior calls, so, hopefully, just knowing the signal name will be
29801 Like the breakpoint helper procs, this new proc takes a name/value
29802 argument list and uses this to build the expected result regexp. This
29805 mi_info_frame "test name here" \
29806 -level 0 -func name -line 123
29811 …"235\\^done,frame=\{level=\"0\",addr=\"$hex\",func=\"name\",file=\".*\",fullname=\".*\",line=\"123…
29812 "test name here"
29818 expect the command to succeed. There is another test that runs
29819 -stack-info-frame and expects the command to fail -- the helper proc
29826 ...exited]" before deleting a thread. This leads to unnecessary
29872 This commit fixes this by moving the thread exit printing to common
29873 code instead, triggered from within delete_thread (or rather,
29876 There's one wrinkle, though. While most targest want to print:
29880 the Windows target wants to print:
29882 [Thread ... exited with code <exit_code>]
29884 ... and sometimes wants to suppress the notification for the main
29892 But didn't really need to be part of that series. In order to get
29908 exit_inferior_silent are all equivalent, so rename exit_inferior_1 to
29947 But didn't really need to be part of that series. I had an interest
29952 Which also didn't really need to be part of the larger series, but
29953 does depend, at least a little, on this commit. In order to get the
29976 on the list the reasons for seem to have been lost[1]. Given there
29977 are no test regressions when moving back to using the constructors, I
30000 function that can be used to create std::unique_ptr objects, just like
30004 gdb::make_unique function will delegate to the std::make_unique. I
30009 to go through the code and replace gdb::make_unique with
30029 limited support was added in lib/mi-support.exp to help with testing
30034 place -- I only added support to mi_make_breakpoint_multi, when really
30035 I should have added the support to mi_make_breakpoint_1, which is used
30038 This commit moves the support to mi_make_breakpoint_1, and updates all
30039 the procs that use mi_make_breakpoint_1 to accept, and then pass
30041 easier to write MI tests for inferior specific breakpoints.
30064 The change to use notify_breakpoint_modified was introduced to GDB
30066 failed to update this part of the code during the rebase.
30072 In this commit I update the code to call notify_breakpoint_modified,
30080 * Makefile.am: Move elf32-kvx.lo from BFD32_BACKENDS to
30086 * configure.ac: Add target_size=64 to kvx_elf64_*vec.
30088 * elfnn-kvx.c (elfNN_kvx_stub_name): Cast rel->r_addend to
30089 uint64_t to match format string.
30095 * Makefile.am: Move eelf32kvx.c from ALL_EMULATION_SOURCES to
30103 through O_md32 enums are for use by target code. Worse, kvx-parse.c
30134 printf_debug (1, "\nEntering rule: %d (Trying to match: (%s)[%d])\n", jump_target,
30144 It is generally a good idea to avoid signed arithmetic on values
30145 extracted from object files, to avoid ubsan warnings on overflow.
30149 some dead code in the GOT entry handling, setting value to
30152 presume the code is correct, but I've left the dead code and comment
30178 This could lead to accesses past the end of the string and potential
30188 string being "". This patch adds the check to stop accesses past the
30194 bfd_get_symbol_leading_char doesn't lead to accessing past the
30200 bfd_get_symbol_leading_char doesn't lead to accessing past the
30216 opcodes/or1k-desc.h:624:14: note: an enum with different value name is \
30224 opcodes/or1k-desc.h:433:14: note: an enum with different value name is \
30233 #define cgen_operand_type <target-name>_cgen_operand_type
30234 #define cgen_hw_type <target-name>_cgen_hw_type
30235 #include "opcodes/<target-name>-desc.h"
30237 and move those defines into a new file cgen-remap.h, similar to how that's
30241 opcodes/<target-name>-desc.h.
30246 A PR has been filed to take care of this in the opcodes dir instead (PR30758).
30258 I noticed a call to value::copy in gdbpy_get_varobj_pretty_printer,
30268 Historically, flags and variables relating to architectural revisions
30273 This leads to some ambiguity, since Binutils also targets the
30274 R-profile Arm architecture. Therefore, it seems prudent to have
30276 `R' for the R-profile. Referring back to the example above, the flag
30280 The only exception to the rule of appending `A' to variables is found
30286 have `ARM_ARCH_V8A' and `ARM_ARCH_V8R', the choice is made to not have
30290 `.*_[vV]8_[rR]' to `.*_[vV]8[rR]'.
30297 (aarch64_cpus): Reference to arch feature macros updated.
30302 (AARCH64_FEATURE_V8A): Updated name: V8_A -> V8A.
30312 (AARCH64_FEATURE_V8R): Updated name: V8_R -> V8R.
30313 (AARCH64_ARCH_V8A_FEATURES): Updated name: V8_A -> V8A.
30326 (AARCH64_ARCH_V8A): Updated name: V8_A -> V8A.
30339 (AARCH64_ARCH_V8_R): Updated name: V8_R -> V8R.
30342 * opcodes/aarch64-opc.c (SR_V8A): Updated name: V8_A -> V8A.
30350 (aarch64_sys_regs): Reference to arch feature macros updated.
30351 (aarch64_pstatefields): Reference to arch feature macros updated.
30352 (aarch64_sys_ins_reg_supported_p): Reference to arch feature macros
30363 (aarch64_feature_v8r): Updated name: v8_r-> v8r.
30364 (ARMV8R): Updated name: V8_R-> V8R.
30374 (V8_2A_INSN): `A' added to macro symbol.
30381 (V8R_INSN): Updated name: V8_R-> V8R.
30385 objdump: file name table entry count check
30397 by "return -1" which converts to true. The return status is ignored
30398 anyway, and it doesn't make much sense to error on unexpected arch or
30399 mach: If print_insn_kvx is called then the atch is known to be kvx,
30400 and it's better to choose some default for a user passing an unknown
30404 I've chosen the default mach to be bfd_mach_kv3_1, the default in
30409 unexpected arch or mach. Default to bfd_mach_kv3_1 for
30415 A misplaced line, resulting in testsuite errors when attempting to use
30481 and writing core files. This also enables readelf/objdump to show the
30489 Add required code to support core file dumps with NT_ARM_ZA and NT_ARM_SSVE
30497 bfd_close ought to always call iovec->bclose so that cache_bclose is
30501 elf64_vms_close_and_cleanup attempted to extend it, leading to an
30509 attempt to extend read-only files.
30512 An old bug in the ia64-vms support can be used to tickle another bug
30531 This happens because an earlier patch added the declarations to a
30669 generated file, so this patch move those declarations to
30675 I had reason yesterday to want to regenerate configury files which I
30680 use ../cgen first, then ../../cgen relative to sim/ and opcodes/. The
30683 adding $(srcdir) to paths. Finally, the generated iq2000 files had a
30689 * configure.ac (cgendir): Default to ../../cgen, but use ../cgen
30695 * cris/local.mk: Add $(srcdir) to paths for regenerated source.
30710 Arrange to run it from prune_warnings.
30718 Fix off-by-one in call to vector::reserve
30720 mistake in a call to vector::reserve. This code:
30727 ... reserves 'size()' entries, but then proceeds to push one extra
30731 vector. Still, it seems better to use the correct size if we're going
30732 to bother calling reserve.
30740 psympriv.h was intended for use by code that created partial symbols.
30741 Now that no generic code needs psymtab.h any more, psympriv.h can be
30752 The longest register name is 3 characters (plus a nul one), so using a
30753 4- or 8-byte pointer to get at it is neither space nor time efficient.
30787 In this case, $PATH is used to look up gp-display-text.
30788 execv() does not use $PATH to find the executable.
30798 This commit extends the breakpoint mechanism to allow for inferior
30803 to imagine that a user might wish to create breakpoints that apply to
30805 would need to create a condition possibly making use of the $_inferior
30813 associated inferior is removed from GDB, this is similar to how
30822 attempting to use the inferior keyword with a watchpoint will give an
30834 An obvious optimisation here is to only insert breakpoint locations
30837 would reduce the number times GDB has to stop and then resume again in
30842 landed I'll update that series to also handle inferior specific
30844 are just slightly less optimal, but this is no different to
30858 c-exp.c.tmp:398: note: an enum with different value name is defined in \
30860 ada-exp.c.tmp:660: note: name 'YYSYMBOL_NULL_PTR' differs from name \
30865 Fix this by renaming to ada_exp_yysymbol_kind_t and likewise for other .y
30877 different to the other similar generated files, and that reminded me
30878 that we need to have $srcdir in the generated #line reference back to
30884 I also uniq list of files to remove duplicated elfxx-x86.c, sort lists
30891 (po/SRC-POTFILES.in): uniq SRC_POTFILES.
30892 (po/BLD-POTFILES.in): uniq BFD_POTFILES.
30894 * po/Make-in (bfd.pot): Edit out source dir from comments.
30895 * po/SRC-POTFILES.in: Regenerate.
30899 * po/POTFILES.in: Regenerate.
30908 function is only applicable to fr550. If not fr550 return 1,
30954 gdb/dwarf2/read.c:2709:3: error: invalid conversion from ‘const char8_t*’ to \
31038 [gdb/testsuite] Fix copy-to-remote in gdb.base/vfork-follow-parent.exp
31051 - making the copy-to-remote conditional on is_remote target, and
31052 - allowing gdb_remote_download to find $binfile3 by using
31066 This commit changes the BPF GAS port in order to handle immediate
31071 This means that -2 is the same than 0xffffffe. It is up to the
31072 instructions to decide how to interpret the encoded value.
31075 Relaxing to jump instructions with wider range is only performed
31078 - The manual is updated to document this, and testsuite adapted
31112 to ld.log to aid debugging.
31114 This avoids needing to ask reporters to manually run e.g. `objdump` commands
31118 * ld/testsuite/lib/ld-lib.exp: Log failed dump.out contents to aid
31137 and noticed gdb segfaulting during cooked index creating due to running out of
31154 but the approach for deciding whether to fix pathological dwarf cases is as
31187 name = vvo->get_symbol ()->natural_name ();
31189 Here the code errors when vvo is not null -- and then proceeds to use
31193 way to reach this code in the null case. However, I'm not really
31194 willing to assert this...
31196 Fixing this shows another bug, which is that due to the way the parser
31197 works, a field name in an aggregate expression might erroneously be
31198 fully qualified if some global variable with the same base name
31203 are harder to fix, I've left it as kfail.
31221 test expects the threads to exit in a specific order.
31228 exited in the reverse creation order, which caused the test to fail.
31231 order, or by changing the C file to force the order. I chose the
31232 later, and added a pthread_barrier_t to ensure the threads exit in the
31250 …FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to end of in…
31253 …FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to break_par…
31264 possible to turn on non-stop mode and have the test still work, so
31277 In the test that fails, GDB sets 'detach-on-fork off' and then runs to
31278 the vfork. At this point the test tries to just "continue", but this
31282 to resume it.
31317 individually, so GDB tries to resume both the vfork-parent and the
31334 vfork-child, and stops, returning control to the user.
31339 vfork-child, and stops, returning control to the user.
31342 which point the VFORK_DONE is reported to GDB, however, GDB
31349 resumed. As such, when we get to step (5), only a single event, the
31368 2. As this is all-stop-on-all-stop, the resume is passed down to the
31373 for all threads, this causes the vfork-child to be resumed. Then
31383 6. We are now in a situation identical to step (5) as for
31384 all-stop-on-non-stop above, GDB selects one of the events to
31392 -1 (resume everything), due to schedule multiple being on. And just
31393 like above, due to the target being all-stop, we call
31397 The change in commit b1e0126ec56e was to avoid resuming a vfork-parent
31402 nothing resumes, then nothing will ever stop, and so GDB appears to
31412 because it didn't feel great to split the checks that exist in
31418 think would be better, but this still just didn't feel right to
31423 The vfork-parent isn't going to run anyway (the kernel will hold it
31425 child to complete, and then resuming the parent.
31429 the parent and child based on which the user wishes to follow. So, I
31430 wondered, could we use this to switch to the vfork-child in the case
31431 that we are attached to both?
31433 Turns out this is pretty simple to do.
31441 selected thread to be that of the vfork-child,
31448 GDB allows the proceed to continue to the linux-nat target,
31472 This patch adds support for the Cortex-A720 CPU to binutils.
31506 [Switching to inferior 2 [<null>] (<noexec>)]
31529 Solution is to limit the search to the current program space.
31535 current thread's location -- if a user is asking the current thread to
31536 jump, then surely their destination should be relative to where the
31539 Then, inside decode_line_with_current_source, the call to
31540 decode_line_1 is updated to pass through the current program_space,
31541 which will limit the returned locations to those in the current
31554 process_stratum target. It seems to me that it has to be, because
31569 18446744073709551615 (2**64-1) to detect invalid immediate errors on -1.
31570 However, it heavily depends on the fact that the value used to print
31572 should not be) important (we just want to know that -1 is not valid).
31589 RISC-V: Make "fli.h" available to 'Zvfh' + 'Zfa'
31618 from INSN_CLASS_ZFH_AND_ZFA to new INSN_CLASS_ZFH_OR_ZVFH_AND_ZFA.
31669 The longest register name is 4 characters (plus a nul one), so using a
31670 4- or 8-byte pointer to get at it is neither space nor time efficient.
31674 To avoid old gcc, when generating 32-bit code, bogusly warning about
31675 bounds being exceeded in the code processing Cs/Cw, Ct/Cx, and CD,
31676 an adjustment to EXTRACT_BITS() is needed: This macro shouldn't supply
31677 a 64-bit value, and it also doesn't need to - all operand fields to
31684 The longest register name is 5 characters (plus a nul one), so using a
31685 4- or 8-byte pointer to get at it is neither space nor time efficient.
31702 Fix this by renaming to ada_exp_YYSTYPE and likewise for other .y files.
31717 In addition, detach from any child processes implicitly attached to by
31718 the kernel due to fork following that have not yet been processed by
31738 - Detach from any child processes implicitly attached to by the kernel
31739 due to fork following that have not yet been processed by GDB's
31745 an override to remove breakpoints from a process before detaching
31750 may need their PC adjusted due to the software breakpoint before
31752 from SIGTRAP to identify software breakpoint traps, the PC is adjusted
31775 the later call to the wait method requests an event from one of the
31779 event to the core. When stopping a process, first check to see if an
31780 event is already pending. If it is, queue the event to be reported
31781 later. If not, send a SIGSTOP to the process and wait for it to stop.
31783 event and remember to ignore a future SIGSTOP event for the process.
31790 data such as migrating the data to the new inferior in the follow_exec
31816 be reported by the next call to the target's wait method. The set of
31817 events that are eligible is filtered by the ptid passed to resume.
31820 subsequent commit will reuse this to store other events.
31825 I noticed that the call to alloca in osabi.c can be replaced with a
31826 statically-sized buffer, because some code just before the declaration
31846 Fix this by renaming to c_token and d_token.
31849 - fortran-exp.y, renaming to f_token,
31850 - go-exp.y, renaming to go_token, and
31851 - p-exp.y, renaming to p_token.
31875 Fix this by renaming to c_token_and_value and d_token_and_value.
31877 Likewise in gdb/go-exp.y, renaming to go_token_and_value.
31895 gdb/python/py-param.c:33:6: note: an enum with different value name is \
31901 Fix this by renaming to enum scm_param_types and py_param_types.
31938 Entries in the full symbol table are dumped to file OUTFILE,
31950 Entries in the partial symbol table are dumped to file OUTFILE,
31962 the symbols for the file with code at that address".
32001 Put back the old pattern for hppa-*-linux* and add hppa[12]*-*-linux* to cover
32008 * ld/testsuite/ld-elf/relocatable.d: Use better pattern to exclude hppa64
32041 AFAIU the current code in symtab_index_entry::minimize makes the assumption
32042 that it's fine to store only one copy of rr in the gdb-index, because
32045 But that fails to recognize that gdb supports gdb.lookup_static_symbols, which
32069 gprofng: pass gprofng location to gp-display-gui
32070 gprofng GUI can be installed to the other directory.
32071 In this case, $PATH is used to find gp-display-gui from gprofng
32072 and option --gprofngdir is passed to gp-display-gui.
32110 to reinsert software single-step breakpoints for a LWP when
32116 This bug was discovered due to a failing assert in maybe_hw_step()
32121 to all callers except resume_stopped_resumed_lwps. But running the
32124 the test showed that the single-step operation failed to occur.
32131 the executable associated with that test would die due to a SIGTRAP
32137 This commit causes software single-step breakpoint(s) to be inserted
32138 before the call to maybe_hw_step in resume_stopped_resumed_lwps. This
32139 will cause 'has_single_step_breakpoints (thread)' to be true, so that
32150 The C code for the test case was loosely adapted from the reproducer
32153 noted in a comment in next-fork-exec-other-thread.exp, I had to remove
32155 (including x86-64) that I tested. I have a feeling that it ought to
32161 it doesn't take overly long (IMO) to run this new test.
32167 …rk_func=fork: target-non-stop=auto: non-stop=off: displaced-stepping=auto: i=12: next to other line
32168 … fork_func=fork: target-non-stop=auto: non-stop=off: displaced-stepping=on: i=9: next to other line
32169 …ork_func=fork: target-non-stop=auto: non-stop=off: displaced-stepping=off: i=18: next to other line
32170 …fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=auto: i=3: next to other line
32171 … fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=on: i=11: next to other line
32172 … fork_func=fork: target-non-stop=off: non-stop=off: displaced-stepping=off: i=1: next to other line
32173 …rk_func=vfork: target-non-stop=auto: non-stop=off: displaced-stepping=auto: i=1: next to break here
32174 …fork_func=vfork: target-non-stop=auto: non-stop=off: displaced-stepping=on: i=3: next to break here
32175 …ork_func=vfork: target-non-stop=auto: non-stop=off: displaced-stepping=off: i=1: next to break here
32176 …ork_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=auto: i=47: next to other line
32177 … fork_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=on: i=57: next to other line
32178 …ork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=auto: i=1: next to break here
32179 …fork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=on: i=10: next to break here
32180 …fork_func=vfork: target-non-stop=off: non-stop=off: displaced-stepping=off: i=1: next to break here
32189 maybe_hw_step in linux-low.c. These correspond to 12 of the
32195 …rk_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=auto: i=143: next to other line
32196 … fork_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=on: i=25: next to other line
32203 I think that the two remaining failures are due to some different
32206 with the loop count in next-fork-exec-other-thread.exp set to 200.
32208 found that this test was taking a long time and asked about ways to
32211 failures. With the loop count set to 30, I found that I could still
32214 count set to 30, the other failures noted above were much less likely
32215 to show up. Anyone wishing to investigate those other failures should
32216 set the loop count back up to 200.
32260 This allows us to invoke the rust testsuite.
32266 PR bootstrap/106472: Add libgo depends on libbacktrace to Makefile.def
32268 to Makefile.def to allow make bootstrap when configured using
32279 Revert "Fix PR 67102: Add libstdc++ dependancy to libffi" [PR67102]
32302 cc1, cc1plus, and lto built during STAGEautoprofile need to be built with
32303 debug info since they are used to build target libs. -gtoggle was
32321 user events. The change is to collect both user events and kernel events.
32330 The D front-end is now itself written in D, in order to build GDC, you
32337 These add the required components in order to have a D front-end written
32353 The jump from v2.076.1 to v2.098.0 covers nearly 4 years worth of
32356 * Makefile.def: Add bootstrap to libbacktrace, libphobos, zlib, and
32367 lto/46273 (Failed to bootstrap)") around 2010, before gcc-4.6.0.
32369 This change removes unused references to libelf from top-level configure
32396 libtool.m4: Sort output of 'find' to enable deterministic builds.
32397 * libtool.m4: Sort output of 'find' to enable deterministic builds.
32402 Fix hppa64-hpux11 build to remove source paths from embedded path.
32403 This change adds the +nodefaultrpath ld option to remove all library
32412 This change adds the configury bits to activate the build of
32415 code model !large - currently not compatible with -fPIC).
32418 libraries know how to establish dependencies. This is useful in
32421 to begin with.
32431 <is_elf calculation>: Re-add haiku to ELF target list.
32435 gcc: xtensa: add data alignment properties to dynconfig
32445 gcc: xtensa: add XCHAL_HAVE_{CLAMPS, DEPBITS, EXCLUSIVE, XEA3} to dynconfig
32474 * config-ml.in (multi-do, multi-clean): Add @ to silence recipes.
32489 This is similar to what was done in
32490 eea4e2ff0a3f5e7f37df204c070cc5d9ef339e6e (where it was added to
32491 STAGE*_CXXFLAGS), but this adds the flag to the CXXFLAGS and
32492 BOOT_CXXFLAGS variables too (as it's already added to CFLAGS and
32503 configure: Allow host fragments to react to --enable-host-shared.
32504 This makes the host_shared value available to host makefile
32507 It uses this to adjust Darwin's mdynamic-no-pic in the case that
32512 * mh-darwin: Require a non-shared host configuration to
32520 The first is to arrange for targets that support mdynamic-no-pic
32521 to be built with that enabled (since it makes a significant
32522 difference to the compiler performance). We can be more specific
32523 in the application of this, since it only applies to 32b hosts
32526 The second was to work around a tool bug where -fno-PIE was not
32527 propagated to the link stage. This second use is redundant,
32537 * mh-darwin: Make this specific to handling the
32546 Source code for mcfgthread is available at <https://github.com/lhmouse/mcfgthread>.
32556 with LTO to work so we need to pass down NM just like we do for ranlib
32599 Add TFLAGS to gcc's GCC_FOR_TARGET
32602 patch arranges for TFLAGS to be passed from the top level down to gcc
32605 * Makefile.tpl (HOST_EXPORTS): Add TFLAGS to GCC_FOR_TARGET.
32611 We now use a C++ compiler so that we need to process
32639 configure, Darwin: Ensure overrides to host-pie are passed to gcc configure.
32642 we default to PIE executables there too.
32644 All (non-PowerPC) 64b Darwin platforms mandate PIC code and therefore force
32645 host_shared on (we issue a diagnostic if the user tries to configure them
32652 For Darwin versions required to have PIE executables, in the event that the
32653 user tries to configure these as --disable-host-pie, we issue a warning and
32656 value of host_pie, as determined by top-level configure, to the GCC configure.
32659 * Makefile.def: Pass the enable-host-pie value to GCC configure.
32660 * configure.ac: Adjust the logic for shared and PIE host flags to
32666 There's no reason to create this file if none of the serial configure
32675 makes the compiler executables PIE. This can be used to enhance
32677 trend to harden binaries.
32698 configure: When host-shared, pass --with-pic to in-tree lib configs.
32700 libs (e.g. GMP) in-tree those libs need to be configured to generate PIC code.
32703 * Makefile.def: Pass host_libs_picflag to host dependent library
32705 * configure.ac (host_libs_picflag): New configure variable set to
32713 up for testing, so it is preferrable not to build it.
32721 The change in major version (and the increment from Darwin19 to 20)
32722 caused libtool tests to fail which resulted in incorrect build settings
32734 the code of libgcc, and also benefits Glibc once we merge longlong.h
32768 (VTV_PAGE_SIZE): Set VTV_PAGE_SIZE to 16KiB for loongarch64.
32778 PowerPC. The patch substitutes $decimal instead of "1" to match the value
32790 …]+)?(\^done,changelist=\[\{name="A_String_Access",in_scope="true",type_changed="false",has_more="0…
32794 …^done,changelist=[{name="A_String_Access",in_scope="true",type_changed="true",new_type="pck.string…
32799 $re_varobj_update_result_type to match the case when type_changed is true.
32812 but this is not true, and attempts to access them hit this error:
32821 While working on a GNAT bug, I wanted to also test
32823 ready, I plan to add a new case here.
32834 RISC-V: Add reference to Zve32*
32835 Before actual vlen handling, this commit fixes its description to allow vlen
32836 less than 16 (but 4 or greater), to support vector subset extensions for
32844 The removed bfd_seeks in coff_symfile_read date back to 1994, commit
32845 7f4c859520, prior to which the file used stdio rather than bfd to read
32846 symbols. Since it now uses bfd to read the file there should be no
32847 need to synchronise to bfd's idea of the file position. I also fixed
32864 backing function was dead code.
32871 compact representation: Only identifiers which need to combine with
32873 into an enum, with a new helper added to transform the table entries
32875 binary shrinks by almost a third (the generated source code shrinks by
32876 about half), and isn't likely to grow again in that dimension any time
32886 plus some bitrotted COFF_GO32 code that tried to allocate -168ul
32913 Fix bitrotted code to look for first section with non-zero filepos.
32933 * pe-dll.c (pe_get16, pe_get32): Add fail param to return results
32954 * riscv-opc.c (riscv_opcodes): Make sure that we never match to
32961 and it's not useful if we keep it (as other code portions just ignore
32989 DIE indexing in the cooked_index, by adding it to m_deferred_entries.
32994 name: foo
33003 name: foo
33013 name of 0x25 is "foo::foo", which is incorrect, it's supposed to be "foo".
33022 entry.name, parent, m_per_cu);
33039 name: foo
33048 name: foo
33066 [gdb/symtab] Dump qualified name of cooked_index_entry
33071 name: foo
33079 name: foo
33088 name of DIE 0x25 is foo::foo (which is incorrect, that's PR symtab/30739).
33090 But it's not evident, and also hard to verify in a test-case.
33092 Add dumping of the qualified name, such that we have:
33095 name: foo
33104 name: foo
33133 Update the set re string to accept the hex address if it exits.
33143 Change py-thread-exited.exp to work with gdbserver
33153 better to arrange for such notification if something on the gdb side
33156 Meanwhile, this patch fixes py-thread-exited.exp to work around this
33163 Pass unique_ptr to add_thread_with_info
33164 This changes add_thread_with_info to accept a unique_ptr, making it
33173 This patch adds support for the Cortex-A520 CPU to gas.
33194 The problem is that the CU we're trying to print is in objfile
33229 This is a regression since commit 542a33e348a ("Only use the per-BFD object to
33236 Fix this by reverting to using all_comp_units:
33284 Dump of assembler code for function main:
33302 …: Breakpoint 2 (0x5565daddb1e0) at address 0x555555555137 in main at main.c:4 due to regular remove
33303 …[breakpoint] remove_breakpoint_1: Breakpoint -2 (0x5565dab51c10) at address 0x7ffff7fd37b5 due to
33304 …[breakpoint] remove_breakpoint_1: Breakpoint -5 (0x5565dab68f30) at address 0x7ffff7fe509e due to
33305 …[breakpoint] remove_breakpoint_1: Breakpoint -7 (0x5565dab694f0) at address 0x7ffff7fe63f4 due to
33332 According to the reporter of this bug the newlib fseek implementation
33333 is likely slowed down by locking and fflush, only attempting to
33335 the output we get a dramatic slowdown due to commit 014a602b86.
33343 (bfd_seek): Reinstate optimisation for seek to same position.
33348 Use move capture in gdb_demangle when compiling for c++14 or higher, to save a
33360 * ld/testsuite/ld-elf/retain7a.d: Fix XFAIL entry for hppa to match
33365 * ld/testsuite/ld-elf/relocatable.d: Fix notarget entry for hppa to match
33370 Update my name in maintainers file
33376 reliably terminated by make check. I could trace this to the following
33384 If $inferior_pid doesn't refer to a single process for some reason, this
33439 * testsuite/gprofng.display/gp-collect-app_F.exp: Fix -name argument
33445 It makes little sense to have this comment meanwhile over a hundred
33453 Fortran allows variables and function to be named after language defined
33457 The behavior before this patch was to favour the intrinsic, which meant
33461 This patch inverts this priority to bring GDB's behaviour closer to the
33464 Special care was need to prevent any C symbols from overriding either
33465 Fortran intrinsics or user defined variables. This was observed to be
33466 the case when GDB has access to symbols for abs from libm. This was
33467 solved by only allowing symbols not marked with language_fortran to be
33470 In total this brings the order of precedence to the following (highest
33477 The sizeof intrinsic is now case insensitive. This is closer to the
33505 to a.out, which can involve looking up the language of symbol "main", which
33509 partial symbol table to find language for main") a feature was added to avoid
33515 [ The commit addresses problems related to command start, which requires finding
33518 - for Rust, the correct function was found, but attributed the wrong name
33546 Consolidate calls to bfd_set_cacheable
33556 file descriptor is closed, there is no offical way to reopen it.
33558 gdb needs to call bfd_cache_close_all, because some systems cannot
33562 However, gdb also will sometimes passes an open file descriptor to the
33563 various BFD open functions. And, due to lazy DWARF reading, gdb may
33564 also need to reopen these BFDs.
33566 Rather than having all the callers figure out when exactly to set the
33567 cacheable flag, I think it makes sense to consolidate this logic into
33568 the gdb_bfd.c wrapper functions. It is ok to do this because gdb
33569 always passes a filename to these open functions, so reopening should
33583 The ".:" seemed weird to me. This patch removes the ".".
33589 Fix incorrect class name in free_objfile documentation
33591 wrong class name. This patch fixes it. I'm checking this in as
33597 …he_close_all): Extend description to note that all files will be closed, even those that are not c…
33602 Add lookup of a non-existing symbol to test-case gdb.base/index-cache.exp.
33616 # The tests generally want to check the cache, so make sure it
33622 - index-cache writing (due to file $exec), and
33623 - symbol lookups (due to subsequent ptype commands).
33626 - moving the "maintenance wait-for-index-cache" to proc check_cache_stats, and
33627 - moving all calls to proc check_cache_stats ALAP.
33712 - the main thread writing to dwarf2_per_cu_data::files_read.
33803 - the main thread writing to dwarf2_per_cu_data::mark.
33822 done, causing the symtab containing main to be expanded.
33835 as PR symtab/30712, but that seems to be fixed by a previous commit in this
33957 - the main thread writing to dwarf2_per_cu_data::m_header_read_in.
34183 While we're at it, also move the creation of the cache directory to
34184 the index_cache_store_context constructor, to:
34274 - a worker thread reading index_cache::m_enabled to determine whether an
34275 index-cache entry for $exec needs to be written
34276 (due to command "file $exec"), and
34278 (due to command "set index-cache enabled on").
34318 Attempting to test the gdb.compile with clang as the compiler results in
34319 over 300 unexpected errors, due to a segmentation fault and several
34322 those tests to only running under gcc. If that gets fixed, this commit
34361 c-linkage-name.exp with gdb index"), which got us again:
34369 commit 5fea9794325 ("Improve Ada support in .gdb_index") did claim to fix it,
34377 + /* We want to ensure that the Ada main function's name
34378 + appears verbatim in the index. However, this name will
34381 + to the index by hand. */
34383 + && strcmp (main_for_ada, name) == 0)
34389 + /* In order for the index to work when read back into
34390 + gdb, it has to use the encoded name, with any
34392 + std::string encoded = ada_encode (name, false);
34393 + name = obstack_strdup (&symtab->m_string_obstack,
34399 The code contains some special handling related to the Ada main function, so
34411 so that looks identical to the callee.increment case.
34433 The comment seems to be copied from debug_names::insert, which does indeed use
34434 ada_decode, while the code in write_cooked_index uses ada_encode instead.
34445 One more f-string snuck into the DAP code, in breakpoint.py. Most of
34459 Use frame.name() in FrameDecorator
34461 integer for the name of a stack frame, like:
34463 {"id": 1, "name": 93824992310799, ...}
34470 gdb core to look up the minsym and print its name.
34474 frame is at a call to a noreturn function, the PC in this case might
34475 appear to be in the next function in memory. For more on this, see:
34481 However, there's a different approach we can take: the code here can
34482 simply use Frame.name. This handles the PC problem correctly, and
34526 stop announcement was to set bpstat::print to true -- this tells GDB
34527 not to print the frame during the stop announcement, and for the CLI
34539 …t-name="/lib64/ld-linux-x86-64.so.2",host-name="/lib64/ld-linux-x86-64.so.2",symbols-loaded="0",th…
34543 …so.6",target-name="/lib64/libm.so.6",host-name="/lib64/libm.so.6",symbols-loaded="0",thread-group=…
34544 …so.6",target-name="/lib64/libc.so.6",host-name="/lib64/libc.so.6",symbols-loaded="0",thread-group=…
34549 …*stopped,reason="signal-received",signal-name="SIGSEGV",signal-meaning="Segmentation fault",frame=…
34569 normal_stop function in infrun.c. A better solution is to avoid
34571 to the user, and this is what I do in this commit.
34580 that somewhere within handle_inferior_event, a stop was announced to
34582 and we should rely on whoever announced the stop to ensure that we
34590 to put the prompt state, and stdin handling into the correct
34596 strictly necessary, but helped me understand this code more.
34598 not going to be called, and replaces the async_enable_stdin call
34600 prompt state if felt (to me) much easier to understand when I
34625 This patch adds include guards to the few files in include/coff that
34630 double-inclusion would be useful, so it seems to me that this approach
34661 "correct" way to do things if there can be a buffer overflow. In this
34665 code like
34668 is just wrong. There needs to be a check on the return value in order
34669 to prevent buf + r being out of bounds for the second snprintf call.
34672 functions is unused. I admit to getting a little carried away with
34674 didn't notice that until get_machine_flags was trimmed down to a much
34712 Since I was poking at cris-dis.c to avoid the sanitizer warning,
34768 gcc-2.12 seems to be ignoring __attribute__((__returns_nonnull__))
34777 Simplify the sprintf calls, and use sprintf return value. Older code
34780 should be OK to use (and we already use the return value elsewhere).
34808 The warning is bogus of course. xmalloc is guaranteed to return
34810 doesn't happen with -m64, maybe due to inlining differences, I haven't
34811 investigated fully. Easily avoided as we hardly need to use sprintf
34815 Use hex ESC to switch back to default colour.
34833 earlier in the function, however, the new call wasn't updated to use
34838 Fixed by updating to use the correct local variable.
34870 related to 'Zvfh' and 'Zvfhmin' extensions.
34871 (riscv_supported_std_z_ext) Add 'Zvfh' and 'Zvfhmin' to the list.
34896 main thread due to main_thread_id not being initialized yet.
34926 Tom de Vries pointed out that my recent change to fixed_points.exp
34970 It's better to include the proper header, which has declarations with
34986 "loadedSources" function from "sources" to "loaded_sources" to avoid
34987 any confusion. I also moved the loadedSources test to the new
34995 This changes the DAP breakpointLocations request to accept a Source
34996 and to decode it properly.
34999 This changes the gdb DAP implementation to emit a real
35001 maps in sources.py, and a new helper function is introduced to compute
35002 the "Source" object that can be sent to the client.
35011 This patch only emits this field when the objfile corresponds to a
35014 No test case, because I wasn't sure how to write a portable one.
35017 …eason": "new", "module": {"id": "system-supplied DSO at 0x7ffff7fc4000", "name": "system-supplied …
35027 Note that StackFrameFormat is defined to have many more options, but
35045 This patch implements this and makes some other changes to the DAP
35046 memory reference code:
35049 Upstream DAP fixed this oversight in response to
35056 * Use strip_typedefs to handle typedefs of pointers.
35073 It's not completely clear when exactly this event ought to be sent.
35083 causes VSCode to think there are two breakpoints.
35085 This patch changes gdb to suppress the event in this case.
35091 Move DAP breakpoint event code to breakpoint.py
35092 A subsequent patch will add the ability to suppress breakpoint events
35093 to DAP. My first attempt at this ended up with recurse imports,
35095 event code to breakpoint.py in preparation for the change.
35098 private to breakpoint.py.
35104 would include a relative path name for the "path" component.
35106 This patch changes the frame decorator code to add a new DAP-specific
35107 decorator, and changes the DAP entry point to frame filters to use it.
35108 This decorator prefers the symtab's full name, and does not fall back
35109 to the solib's name.
35113 better to have frame filters return symtab-like objects instead, or to
35114 have a separate method to return the full path to the source file.
35116 I also tend to think that the solib fallback behavior of
35117 FrameDecorator is a mistake. If this is ever needed, it seems to me
35124 Add "cwd" parameter to DAP launch request
35125 This adds the "cwd" parameter to the DAP launch request.
35136 This patch refactors dap_launch to make it more extensible and also
35137 easier to use.
35140 In Python, a member name starting with "__" is specially handled to
35141 make it "more private" to the class -- it isn't truly private, but it
35142 is renamed to make it less likely to be reused by mistake. This patch
35148 Reports a thread exit according to the DAP spec:
35151 This patch requires the ThreadExitedEvent to be checked in,
35152 …in order to work. That patch is found here https://sourceware.org/pipermail/gdb-patches/2023-June/…
35162 … for ELF relocatables" binutils test for compilers which add .debug_macro sections to object files.
35164 …s_for_elf_relocatable): Do not add sections containing the string "debug_" to the list of non-debu…
35172 e.g. upon trying to preserve ownership (which we don't care about), as
35178 Add note to check that all changes have been pushed before creating the source tarballs
35188 the output of gp-display-text to display the data.
35203 [gdb/testsuite] Set TSAN_OPTIONS by default to history_size=7
35206 the two accesses, and the other one is showing "failed to restore the stack".
35208 Try to prevent this by setting ThreadSanitizer flag history_size [1] to the
35243 A problem internal to GDB has been detected,
35290 A problem internal to GDB has been detected,
35293 expected to work in normal circumstances. When a process being debugged
35296 - The runtime registers itself to the driver.
35298 that a new event is available by writing to a file descriptor which is
35310 same file descriptor is written to. The callback sees that the
35312 This will later cause amd_dbgapi_target::wait to be called. The wait
35325 1) already has the amd-dbgapi-target pushed to its target stack and
35329 - The driver creates the runtime activation for inferior 2 and writes to
35332 - This prompts amd_dbgapi_target::wait to be called. The method pulls
35334 inferior 2, leading to the assertion failure.
35336 The fix for this problem is simple. To avoid such problem, we need to
35343 chances to reproduce the original bug. It has also been tested on top
35352 It is not possible to debug multiple processes simultaneously on all
35353 generations of AMDGPU devices. As some tests will need to debug
35354 multiple inferiors using AMDGPU devices, we need to ensure that all
35355 devices available have the required capability. Failing to do so would
35356 result in GDB not being able to debug all inferiors properly.
35358 Add the hip_devices_support_debug_multi_process helper function used to
35366 Setting PYTHONMALLOC helped me locate an earlier bug. It seems to me
35367 that there aren't big downsides to always setting this during testing,
35396 delivered to a non-main thread, wreaking havoc.
35400 situation. This function being called from the DAP thread lead to
35412 RISC-V: Fix typo in the test case name
35415 * testsuite/gas/riscv/rouding-fail.s: Moved to...
35417 * testsuite/gas/riscv/rouding-fail.d: Moved to...
35419 * testsuite/gas/riscv/rouding-fail.l: Moved to...
35426 signed immediates. Note that this happened to work before by chance,
35439 Maintainers. This commit therefore moves our entries to the
35455 The BPF disassembler is updated so it honors EF_BPF_CPUVER to use the
35461 The readelf utility is updated to pretty print EF_BPF_CPUVER when it
35476 * opcode/bpf.h (BPF_XBPF): Change from 0xf to 0xff so it fits in
35490 * bpf-dis.c: Initialize asm_bpf_version to -1.
35493 * disassemble.c (disassemble_init_for_target): Remove unused code.
35504 bpf: gas: add field overflow checking to the BPF assembler
35505 This patch makes the BPF assembler to throughfully check for overflow
35517 (add_relaxed_insn): Pass relax argument to encode_insn.
35539 Update how to make a release document after the 2.41 release
35563 This patch makes the BPF assembler to perform the following
35600 (md_assemble): Move instruction encoding logic to the above
35613 [gdb] Rename variable main_thread to main_thread_id
35620 has a confusing name and corresponding comment, because it doesn't contain the
35623 Fix this by renaming to main_thread_id.
35641 calling parse_and_eval, but fails to re-acquire it before calling
35678 does not match. While there has been a precedent it does not appear to
35680 to the template rather than forking the existing template into multiple
35681 ones for a more exact match. So this is best deferred to a separate
35694 match even though ELF output produced is correct according to `readelf':
35705 As a genuine bug this has to be handled separately.
35743 Expect a `.MIPS.options' section alternatively to `.reginfo' and ignore
35776 section as an alternative to `.reginfo' and ignore contents of
35794 three, with subsequent relocation types set to R_MIPS_NONE if further
35890 mips64-openbsd -FAIL: Locally-resolvable PC-relative code references
35898 mips64el-openbsd -FAIL: Locally-resolvable PC-relative code references
35958 * testsuite/binutils-all/strip-3.d: Add `-R .MIPS.options' to
35972 scripts, causing such input sections to be propagated to the respective
35975 Expect IRIX 6 to fail with n32 testing then, removing this regression:
35979 We may choose to update IRIX 6 n32 linker scripts sometime, as it seems
35983 * testsuite/ld-mips-elf/mips-elf.exp: Expect IRIX 6 to fail with
35989 The MIPS16 interlinking test for local functions expects to be assembled
35993 ….../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s:16: Warning: la used to load 64-bit address; r…
35995 Use the per-ABI framework then to run the test explicitly for o32 and
35997 `.module mips4' pseudo-op within the source itself so as to avoid
36022 A few GAS tests expect to be assembled with 32-bit addressing, otherwise
36025 ….../gas/testsuite/gas/mips/fix-rm7000-2.s:11: Warning: la used to load 64-bit address; recommend u…
36080 * testsuite/gas/mips/fix-rm7000-2.d: Add `-32' to the `as' tag.
36091 to run it with the n64 ABI. And there is a corresponding `got-dump-2'
36094 Use the per-ABI framework then to run the `got-dump-1' test explicitly
36120 to a difference resulting in the number and indices of sections produced
36123 As the presence or absence of this section is not relevant to this test
36143 This is clearly an omission from the conversion to use the per-ABI
36149 on the per-ABI framework to get things right, removing this regression:
36155 related to ABI and endianness selection from the `as' and `ld'
36171 ./ld-new: failed to merge target specific data of file tmpdir/unaligned-jalx-0.o
36173 ./ld-new: failed to merge target specific data of file tmpdir/unaligned-insn.o
36175 Convert the tests then to use the per-ABI framework and run them for the
36178 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 0
36179 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 1
36180 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 2
36181 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 3
36182 mips64-openbsd -FAIL: MIPS16 JALX to unaligned symbol 0
36183 mips64-openbsd -FAIL: MIPS16 JALX to unaligned symbol 1
36184 mips64-openbsd -FAIL: microMIPS JALX to unaligned symbol 0
36185 mips64-openbsd -FAIL: microMIPS JALX to unaligned symbol 1
36186 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 0
36187 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 1
36188 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 2
36189 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 3
36190 mips64el-openbsd -FAIL: MIPS16 JALX to unaligned symbol 0
36191 mips64el-openbsd -FAIL: MIPS16 JALX to unaligned symbol 1
36192 mips64el-openbsd -FAIL: microMIPS JALX to unaligned symbol 0
36193 mips64el-openbsd -FAIL: microMIPS JALX to unaligned symbol 1
36217 contents of the sections examined are expected to be differnt. Disable
36236 `.interp' section, which causes it to be positioned in output at an odd
36241 in elf.sc"), where the handling of n64 was missed due to an unfortunate
36286 to being empty then properties of that section don't affect following
36317 happen to trigger a test failure.
36338 'Zvkn' and 'Zvks'. (riscv_supported_std_z_ext): Add 'Zvkt' to
36360 to avoid the trailing empty line. Do this by making it output empty
36364 ada-unicode.py and gdbarch.py to avoid changes in the files they
36376 request is gated behind a capability. This patch changes gdb to
36379 I've also added a comment to explain the fact that arguments to
36386 The canonical form to discard all sections not mentioned earlier in
36391 ".*" happens to work with the usual section names starting with a dot,
36609 comment character, which clang -S seems to use.
36628 The constant FILNMLEN is expected to designate the size of
36675 (gdb) FAIL: gdb.dwarf2/typeddwarf.exp: runto: run to main
36679 - due to using gdbserver, we attach at the point of the first instruction, in
36682 - the test-case is a .s file, that has main renamed to _start in the assembly,
36705 - renaming _start to main in both .S files.
36707 The change to use -nostdlib and rename main to _start was originally added
36710 to fix the problem now fixed by using nopie.
36792 With a gdb build with -O0 or -O2, the static destructor calling order seems to be:
36804 order seems to be reversed.
36810 destructor for E. An attempt is done to remove E from m_window_maker_list,
36813 Fix this by checking is_linked () before attempting to remove from
36814 m_window_maker_list, similar to how things were addressed in commit 995a34b1772
36833 continue to vfork (1st time)
36844 continue to vfork (1st time)
36847 The FAIL is due to a mismatch with regexp:
36873 instructions to not use their source registers.
36881 * bpf-opc.c (bpf_opcodes): Fix BPF_INSN_NEGR to not use a src
36919 generated by gas. That's not very helpful, return the section name.
36924 std::string. Return section name for STT_SECTION symbols with
36934 Don't warn on .attach_to_group to same group
36936 group name matches current group for section.
37028 The version 1.0.4-1 of the code size reduction specification clarifies
37032 <https://github.com/riscv/riscv-code-size-reduction/releases/tag/v1.0.4-1>
37050 <https://github.com/riscv/riscv-code-size-reduction/issues/221>,
37052 version 1.0.4-1 of the code size reduction specification:
37053 <https://github.com/riscv/riscv-code-size-reduction/releases/tag/v1.0.4-1>.
37085 LoongArch: ld: Simplify inserting IRELATIVE relocations to .rela.dyn
37088 But this function is called after elf_link_sort_relocs, it need to find a
37089 null slot to insert IRELATIVE relocation.
37092 elf_link_sort_relocs, just need to call loongarch_elf_append_rela to
37098 type change to int.
37101 insert IRELATIVE relocation to .rela.dyn.
37102 (elfNN_loongarch_finish_local_dynamic_symbol): Return type change to
37116 rightshift, and the mask need to include sign bit.
37131 For extreme code mode, the instruction sequences is
37138 If lo12 > 0x7ff, hi20 need to add 0x1, lo20 need to sub 0x1.
37139 If hi20 > 0x7ffff, lo20 need to add 0x1.
37149 This patch adds support for the BPF V4 ISA byte swap instructions to
37196 LDXS* in order to reflect https://reviews.llvm.org/D144829.
37251 (md_apply_fix): Adapt to the new BFD reloc.
37276 Use 'name' in DAP start_thread function
37277 The DAP start_thread helper function has a 'name' parameter that is
37278 unused. Apparently I forgot to hook it up to the thread constructor.
37286 well, so this patch moves it from DAP to the gdb module and exports
37298 gdb: two changes to linux_nat_debug_printf calls in linux-nat.c
37300 no other functional changes to GDB.
37302 In resume_lwp I've added the word "sibling" to one of the debug
37311 difference to GDB, but does, I think, mean we see more helpful debug
37316 saying that the thread was not being resumed due to being a
37321 being resumed due to it not being stopped (i.e. is already resumed).
37330 For *reasons* I was hacking on gdb.base/foll-vfork.exp and wanted to
37331 change the name of the binary that was created. Should be easy, I
37336 Fixed this to use $binfile, now I can easily change the name of the
37356 require to limit the test-case to supported architectures.
37358 While we're at it, run M-x indent-region in emacs to fix indentation.
37377 DW_AT_bit_size would cause gdb to crash. This happened because
37379 to assert. This patch fixes the problem.
37387 This tiny patch makes the BPF disassembler to emit, e.g.
37395 when the offset is 0, to avoid confusion.
37413 This implements the DAP "modules" request, and also arranges to add
37414 the module ID to stack frames.
37419 This adds a new objfile_for_address method to gdb.Progspace. This
37420 makes it easy to find the objfile for a given address.
37423 for my original need, it's not clear to me whether I should close the
37424 bug. Nevertheless I think it makes sense to at least mention it here.
37433 that my recent changes to use frame filters from DAP left some unused
37447 This commit adds the signed load to register (ldxs*) instructions
37536 This patch corrects it to "a signed".
37540 Implement Ada target name symbol
37541 Ada 2022 adds the "target name symbol", which can be used on the right
37542 hand side of an assignment to refer to the left hand side. This
37550 Add instruction bytes to DAP disassembly response
37553 patch updates gdb to return this, and simply uses a hex string of the
37561 I ran across this very old code in gdb's Ada support. After a bit of
37570 bpf: add missing bpf-dis.c to opcodes/Makefile.am
37584 d218e7fedc74d67837d2134120917f4ac877454c) in order to not be longer
37601 The weird way of BPF to handle endianness in instruction encoding, the
37605 all examples of what makes it a PITA to continue using CGEN for this
37607 p-macros that it is very difficult to read, and quite challenging to
37608 update. Also, every time we are forced to change something in CGEN to
37609 accommodate BPF requirements (which is often) we have to do extensive
37610 testing to make sure we do not break any other target using CGEN.
37614 So I have decided to bite the bullet and revamp/rewrite the port so it
37633 * To adapt the build systems to the new situation.
37638 relocation R_BPF_GNU_64_16 are added to the BPF BFD port. These
37643 BPF. What dialect to use when disassembling is controlled by a command
37650 * The GAS BPF test suite has been re-structured and expanded in order to
37653 targets due to the previous implementation of pseudoc syntax are now
37654 re-enabled. Additional tests have been added to test the new features of
37657 * The linker BPF test suite has been adapted to the command line options
37660 The result is very satisfactory. This patchs adds 3448 lines of code
37661 and removes 10542 lines of code.
37681 especially if lazy code-object loading have been disabled. Each code
37688 better way this patch proposes to follow.
37690 Under the hood, the GPU code objects are embedded inside the host
37693 the same file is re-opened every time a code object is loaded on a GPU.
37695 This patch proposes to only open each underlying file once. This is
37697 file is opened when the underlying file first needs to be opened, and
37700 On a program where GDB used to open about 1500 files to load all shared
37714 insns). While there further add D to all affected insns except ARPL
37715 (where S is used, matching LAR/LSL), to also behave correctly in suffix-
37729 [gdb/symtab] Add optimized out static var to cooked index
37759 is not added to the cooked index because of this clause in abbrev_table::read:
37767 to the cooked index.
37774 Tested gdb.opt/static-optimized-out.exp with gcc-8 to gcc-12, for which we now
37785 due to missing debug info for the variable.
37809 I traced the superfluous newline back to readline's readline_internal_setup,
37812 /* If we're not echoing, we still want to at least print a prompt, because
37829 beginning of the next line. Output a newline just to be safe. */
37839 treatment, causing start_line to be incorrect, which causes the superfluous
37842 I looked at ways to work around this, and managed by switching off
37843 rl_already_prompted, which we set to 1 in tui_rl_startup_hook:
37845 /* Readline hook to redisplay ourself the gdb prompt.
37861 Then I started looking at why rl_already_prompted is set to 1.
37863 The use case for rl_already_prompted seems to be:
37865 - app sets rl_already_prompted to 1, and
37868 which can be used in the following call to rl_redisplay_function.
37877 Also remove the call to tui_redisplay_readline, it's not necessary, the
37888 MIPS: Don't move __gnu_lto_slim to .scommon
37900 In the current code, when a register is fetched, the entire regset
37902 regcache, it needs to fetch the same regset through ptrace again if
37904 unnecessary. It is proper to update the status of the entire regset
37912 Andrew reported that the previous change to gdb.Inferior.read_memory &
37917 scoped_restore_current_inferior_for_memory cause GDB to crash with a
37929 scoped_restore_current_inferior_for_memory switch inferior_ptid to a
37934 know that anything that supports forks must not assume that, due to
37943 Inferior.read_memory, we only have the inferior to work with, so this
37944 API as is can't be used to access thread-specific address spaces.
37945 IOW, it can only be used to access the global address space that is
37946 visible to both the CPU and the GPUs.
37952 If we end up using scoped_restore_current_inferior_for_memory later to
37953 set up the context to read memory from a specific thread, then we can
37955 inferior_ptid point to the thread, for example.
37957 New test added to gdb.python/py-inferior.exp, exercising
38007 Work around this compiler problem by allowing the mangled name.
38017 It is possible to build huge binaries on powerpc64, where 32-bit
38018 addresses in debug info are insufficient to descibe locations in the
38069 and 'zmmul'. Zcb also imply Zca extension to enable the compressing
38182 While working on some of the recent patches relating to vfork handling
38183 I found this debug output very helpful, I'd like to propose adding
38195 The comment suggests these are to allow for output from a vforked
38196 child to arrive, but in each case the test is about to close and
38205 can show that these are required, it will be easy to revert this one
38214 four commits, this is achieved by expanding gdb.base/foll-vfork.exp to
38222 target, this is due to bug gdb/30574. I've added a link to that bug
38233 changes to what is actually being tested, other than in one place
38235 inferior, as such I had to add a new 'inferior 2' call, this can be
38239 proc_with_prefix to remove some with_test_prefix calls.
38249 gdb: don't restart vfork parent while waiting for child to finish
38251 which addressed a case in linux-nat where we would try to resume a
38261 is worth reading the earlier commit as many of the problems leading to
38264 Here are the steps leading to the assertion failure:
38269 2. As we are planning to follow the child GDB sets the vfork_parent
38272 is only used when GDB is planning to follow the parent inferior,
38279 4. In proceed we selected a ptid_t to resume, because
38285 ptid, which turns out to be all threads, and call
38289 6. As the thread passed to proceed_resume_thread_checked doesn't
38299 for the vfork child to complete,
38301 8. Back in the proceed function GDB continues to iterate over all
38309 performs its exec the vfork parent also sends a VFORK_DONE event to
38312 10. Depending on timing both of these events might seem to arrive in
38313 GDB at the same time. Normally GDB expects to see the EXECD or
38319 when we remain attached to the child (not the parent) we should not
38320 expect to see a VFORK_DONE,
38323 choose one event to handle first, in some cases this will be the
38328 seeing a VFORK_DONE GDB assumes we are remaining attached to the
38343 waits for the thread, instead of a stop due to signal, we instead
38346 16. Later in the detach process we try to resume the threads just
38347 prior to making the ptrace call to actually detach (see
38348 detach_one_lwp), as part of the process to resume a thread we try to
38355 Just like with the earlier commit, the fix is to spot the vfork parent
38359 already has a similar check to not resume the vfork parent in the case
38360 where we are planning to follow the vfork parent, I propose adding a
38361 similar case that checks for the vfork parent when we plan to follow
38364 This new check will mean that at step #6 above GDB doesn't try to
38373 If you do want to reproduce this failure then you will for certainly
38374 need to run the gdb.base/foll-vfork.exp test in a loop as the failures
38376 copies in parallel makes the failure more likely to appear, I usually
38377 run ~6 copies in parallel and expect to see a failure after within
38383 Split the thread resuming code from proceed into new function
38421 to use "finish" to return to the main frame.
38425 seen the VFORKED event, but has not yet attached to the new child
38428 However, GDB has seen the VFORKED, and, as we are going to follow the
38430 thread_waiting_for_vfork_done member variable set, this will point to
38453 is false, and this prevents the thread we are trying to finish from
38465 one thread has performed a vfork, then we shouldn't try to resume the
38468 However, if we are trying to resume the thread that actually performed
38479 This extra check will allow the vfork parent thread to resume, but
38484 My actual fix is slightly different to the above, first, I've chosen
38485 to use a nested 'if' check instead of extending the original 'else if'
38486 check, this makes it easier to write a longer comment explaining
38488 switched to checking 'target_is_non_stop_p'. In this context this is
38495 refactor to merge two parts of the proceed function, so this nested
38496 'if' block is not going to exist for long.
38504 If you wish to reproduce this failure then grab the updates to
38510 gdb: don't restart vfork parent while waiting for child to finish
38516 I eventually tracked it down to a combination of schedule-multiple
38518 to child, and some bad timing. The failing case is pretty simple, a
38528 and target-non-stop is off, this is translated into a request to
38532 about to start is a vfork parent, and so don't start that
38540 stopped but don't actually have anything interesting to report.
38545 is where I'm proposing to fix things, but, resuming the vfork parent
38553 performs its exec the vfork parent also sends a VFORK_DONE event to
38556 9. Depending on timing both of these events might seem to arrive in
38557 GDB at the same time. Normally GDB expects to see the EXECD or
38563 when we remain attached to the child (not the parent) we should not
38564 expect to see a VFORK_DONE,
38567 choose one event to handle first, in some cases this will be the
38572 seeing a VFORK_DONE GDB assumes we are remaining attached to the
38587 waits for the thread, instead of a stop due to signal, we instead
38590 15. Later in the detach process we try to resume the threads just
38591 prior to making the ptrace call to actually detach (see
38592 detach_one_lwp), as part of the process to resume a thread we try to
38608 apply, and in #13 when we try to stop the process we will see that it
38610 we get to this point. And finally, in #15 we are safe to poke the
38615 The second bug I've not yet managed to actually trigger, but I'm
38617 above, when linux_nat_target::detach is called, we first try to stop
38620 mode, then, if the user tries to detach there is a chance that thread
38622 we should be able to trigger the same assert.
38624 But, like I said, I've not (yet) managed to trigger this second bug,
38635 If you do want to reproduce this failure then you will for certainly
38636 need to run the gdb.base/foll-vfork.exp test in a loop as the failures
38638 copies in parallel makes the failure more likely to appear, I usually
38639 run ~6 copies in parallel and expect to see a failure after within
38653 return -code return
38661 However, I did spot one place where we managed to confuse ourselves
38664 In check_vfork_catchpoints, this proc is called to check that GDB is
38665 able to catch vforks or not. This proc is called early in the test
38671 call to setup_gdb fails we'll end up returning immediately from
38675 To fix this I see two choices, one is remove the use of 'return -code
38677 setup_gdb to then be placed inside:
38683 Or, I can wrap the one call to setup_gdb in check_vfork_catchpoints
38684 and check its return code.
38686 I chose the second option as this is the smaller code change.
38696 PR10957, Missing option to really print section+offset
38698 using %C to using %H in ld.bfd, to print section+offset as well as
38699 file/line/function. This catches a few remaining, and changes gold to
38707 * testsuite/debug_msg.sh: Adjust to suit.
38716 * testsuite/ld-cris/undef2.d: Adjust expected output to suit.
38737 and changing every place that defines NO_SMALL_DATA to use " ", but
38739 idea. The problem is that you only want to pick up the following
38743 Perhaps that could be fixed too, but I decided instead to extend the
38755 * ldlang.c: Pass last output section to expression folder
38757 (open_input_bfds): Add os parameter to track last os seen.
38759 to current_os. Track last os.
38761 * scripttempl/arclinux.sc: Align to ALIGNOF NEXT_SECTION
38784 Couldn't send help target native to GDB.
38807 and makes tui_win_info::title private, renaming to m_title at the same
38808 time. There's a new tui_win_info::title() member function to provide
38809 read-only access to the title.
38830 There were a couple of previous attempts[2][3][4] to solve this
38831 problem, but these all tried to extend the mechanism introduced in the
38833 std::vector, but now we tried to, when appropriate, style these
38837 which can be used to collect a set of deferred warnings, and then emit
38843 gdb_stderr supports styling. GDB's warnings are sent to gdb_stderr,
38873 The problem is using regexps containing '.' to avoid escaping, which makes
38888 will always use the currently selected inferior, not the one passed to
38891 This patch fixes the bug by arranging to switch to the inferior. I
38894 I also added a few missing calls to INFPY_REQUIRE_VALID to these
38904 scoped_restore_current_inferior_for_memory, and arranges to use it in
38905 a few places. This class is intended to handle setting up and
38906 restoring the various globals that are needed to read or write memory
38909 I wasn't able to test the change to aix-thread.c.
38916 A comment in gdbthread.h refers to a global that no longer exists.
38924 with the built-in type of the same name and can be confusing when
38925 trying to evaluate Python code when debugging the test case. This
38933 This changes py-inferior.exp to make it a bit more robust when adding
38952 This commit was a refactoring to remove an xrealloc and simplify
38975 not an active inferior to query via ptrace. Instead, use the default
38983 Done. Use the "run" command to start a process.
38991 not an active inferior to query via ptrace. Instead, use the default
38999 Done. Use the "run" command to start a process.
39042 self-contained way to ask GDB to print the location where the inferior is
39044 command to scope out where the inferior is stopped, or using "list *$pc"
39046 to do that using '.' as a new argument for the 'list' command. If the
39051 would make the resulting log harder to read for no benefit, it was
39059 gdb/cli: Factor out code to list lines around a given line
39061 certain point" to be printed using print_source_lines, and the logic
39073 - we used exit() to stop a failed test. But this stops all other tests.
39105 More tidies to objcopy archive handling
39107 paths didn't do that, leading to memory leaks. None of this matters
39117 Making target code depend on a host define like _AIX52 is never
39119 to make it more obvious there is a config difference between aix5.1
39120 and aix5.2. These two changes should make no difference to anything
39152 enum -- but the comment here refers to an enum that no longer exists.
39159 so that the (existing) code in parser and expression evaluator
39160 actually get to see it and handle it as XOR. Also adjust docu
39161 to match what's there.
39171 Hopefully it will also stop any attempt to load dynamic symbols from
39174 * elfcode.h (elf_object_p): Do not attempt to load dynamic
39221 Merge and rename to tui_border_kind_translate_corner.
39236 Add a new function translate_acs, that allows us to do the more straighforward:
39263 A simpler way of implementing this would be to to declare the first (or last)
39276 Similar to the previous patch, but also tidy a few more sections.
39284 It's more elegant to make the section match up with its "_start"
39287 to at least $ALIGNMENT.
39291 Set address to zero when not a final link.
39295 Re: Align linkerscript symbols according to ABI
39309 * bfdtest1.c: Enhance to catch errors on second scan.
39322 libstdc++ debuginfo. It's better to just remove these.
39324 * classes.exp - the test is wrong, I think, according to the C++ ABI
39326 with a simple change to the code.
39328 * ctti.exp - there's no need to bail out any more, as the test works.
39330 * exception.exp - the code relying on the line numbers can't work,
39349 x86: convert 0FXOP to just XOP in enumerator names
39354 x86: misc further register-only insns don't need to go through mod_table[]
39356 a few others can easily be converted to do so as well. Note that for it
39357 to be able to use BadOp() without forward declaration, OP_Skip_MODRM() is
39360 While there add the previously missing PREFIX_OPCODE to legacy opcode
39367 operands to OP_M() at the same time. To keep the number of consumed
39368 opcode bytes similar to before, make BadOp() also account for VEX/XOP/
39369 EVEX prefix bytes. To keep that change simple, convert need_vex to an
39389 Specifically _do not_ continue to mis-use v_mode.
39393 x86: SIMD shift-by-immediate don't need to go through mod_table[]
39399 x86: misc further memory-only insns don't need to go through mod_table[]
39401 and a few others can easily be converted to do so as well. (Note that
39402 FXSAVE_Fixup() wires through to OP_M(). Note further that OP_IndirE(),
39403 which wasn't placed very well anyway, is moved down to avoid the need to
39411 x86: {,V}MOVNT* don't need to go through mod_table[]
39414 forms which so far have used EXEvexXNoBcst (and thus failed to reject
39420 By changing decode order to do ModR/M.mod last (rather than VEX.L), the
39428 Introduce macro V to expand to 'v' in the VEX/EVEX case, and replace a
39429 couple of abort()s where legacy code can now legitimately make it. While
39447 This patch fixes the former by changing target_bfd_reopen to return a
39469 program. This test is the reason that the FrameVars code does not
39473 Ada. This is a known bug but I'm still considering how to fix it.
39479 gdb bug: they neglect to call check_typedef. This will cause some
39488 simplifies the code, because frame filters and DAP were already doing
39490 ScopeReference to make it clear that these are private (and so changes
39491 don't have to worry about other files).
39499 patch replaces this code.
39503 Fix oversights in frame decorator code
39504 The frame decorator "FrameVars" code misses a couple of cases,
39512 outermost scope, but this doesn't seem to be required by gdb.
39516 Add new interface to frame filter iteration
39518 existing code to find and execute the frame filters. However, unlike
39530 string to reflect my findings, and also fixes an existing typo.
39534 Change 'handle_id' to be a local variable
39536 function, so change it to be a local variable.
39545 makes sense to only define it there.
39552 This adds 'const' to tfile_interp_line.
39559 This change traceframe_walk_blocks to take a function_view. This
39560 simplifies the code somewhat and lets us entirely remove one helper
39568 This changes trace_dirname to use unique_ptr, removing some manual
39576 This changes trace_filename to use unique_ptr, removing some manual
39600 to crash gdb. The problem is that the BFD section for a particular
39615 gdbserver: allow agent expressions to fail with invalid memory access
39628 more robust solution will be to move all of the error types, and their
39629 associated strings, into a new ax-result-types.def file, and to then
39630 include this file in both ax.h and tracepoint.cc in order to build
39632 Doing this means it is impossible to have a missing error string in
39646 address in the test name:
39655 then it becomes harder to compare results.
39657 Fix this by giving the test a descriptive name that doesn't include a
39666 There's no change to what is actually tested after this commit.
39682 However, after reporting 'unsupported' the test failed to perform an
39683 early return, so the test would then carry on and try to actually
39702 to include the breakpoint number, e.g.:
39715 I've extended one of the tests to cover the new functionality.
39725 The goal here is to get the tests running and preventing further
39726 regressions during future work. This change does not do anything to fix
39730 information about whether this compiler is related to flang classic or
39735 The main name was extracted by trying to set breakpoints on both MAIN_
39738 The following mapping of test to type names was used to extract how
39786 PR30592 objcopy: allow --set-section-flags to add or remove SHF_X86_64_LARGE
39788 SHF_X86_64_LARGE to the .data section. Omitting "large" will drop the
39792 processors want to follow SHF_X86_64_LARGE. SEC_ELF_LARGE has the same
39820 When debugging C++ programs, it is possible to trigger a spurious assert
39821 failure when attempting to set a breakpoint on a malformed symbol name.
39833 …cp-namespace.c:181: internal-error: cp_lookup_bare_symbol: Assertion `strstr (name, "::") == NULL'…
39834 A problem internal to GDB has been detected,
39853 Currently this assert is skipped if the symbol name contains '<' or '('.
39855 name contains '>' or ')'.
39877 Remove unchecked casts to mi_interp
39880 casts to mi_interp, like:
39886 For -gdb-exit and mi_load_progress, I chose to have the functions
39887 simply not generate any output. It didn't seem useful to do so.
39889 Some casts I eliminated by adding a parameter to a function. Then, in
39890 mi_execute_command, I changed the code to use
39894 There does not seem to be a very good way to test -gdb-exit.
39901 I noticed that the printf code for strings, printf_c_string and
39905 As such it would be possible for an badly behaved inferior to cause
39906 GDB to try and allocate an excessively large buffer, potentially
39907 crashing GDB, or at least causing GDB to swap lots, which isn't
39910 We already have a setting to protect against this sort of thing, the
39912 above to check the max-value-size and give an error if the
39915 If the max-value-size is exceeded, I chose to continue reading
39916 inferior memory to figure out how long the string actually is, we just
39919 which would allow them to correctly adjust max-value-size, if that's
39920 what they choose to do.
39925 now need to increase max-value-size.
39931 similar to the patches I originally posted here:
39953 malloc or free calls, so should be similar in performance to the
39968 however, there was push back on that thread due to it adding extra
39969 dynamic allocation, i.e. moving the memory buffers off the stack on to
39973 cases moving off the stack is the correct thing to do. Unlike all the
39980 and simplify the logic a little (I think) to take advantage of the
39981 ability of std::byte_vector to dynamically grow in size.
39984 setting as we load the string to stop GDB crashing if a corrupted
39985 inferior causes GDB to try read a stupidly large amount of
40022 I tracked the problem down to printf_wide_c_string (in printcmd.c), in
40032 /* Note that if thistype is a TYPEDEF type, you have to call check_typedef.
40034 so you only have to call check_typedef once. Since value::allocate
40038 check_typedef in order to ensure that the length of the typedef has
40041 to print an empty string.
40044 calling check_typedef specifically to fix this exact issue.
40066 "rename" conflicts with a function of that name, which gcc from that
40067 same timeframe then complains about. Use a name matching that of
40081 HS6x supports 64-bit virtual and 52-bit physical address spaces to
40085 This readelf patch updates/adds Synopsys ARCv3 machine name fileds and
40112 Minor updates to release readme
40122 running"), GDB prefers pread64/pwrite64 to access inferior memory
40127 On SPARC64 Linux, surprisingly (to me), userspace shared libraries are
40146 Thankfully, lseek does not fail in that situation. So the fix is to
40159 Currently riscv gdb code looks at arch byte order
40173 A problem internal to GDB has been detected,
40201 called target_resume without switching to the leader thread of that
40213 target_wait (which leads to procfs_target::wait on Solaris) is called
40214 with inferior_ptid == null_ptid on entry exactly to help catch such
40220 2186 /* How to keep going without returning to wfi: */
40227 The fix is to not call target_resume or go via the target stack at
40232 I've not been able to test it myself, but Petr confirmed it fixes the
40248 So we add a new "#?" line to every effected testsuite.
40252 Use run_host_cmd to run $CC and other no-section-header test fixes
40254 ld testsuite, if we want to use ld/ld-new just built. run_host_cmd
40255 properly inserts $gcc_B_opt in cases where a user wants to test
40258 Also, it is not good practice to exclude tests when non-native except
40263 Use run_host_cmd to invoke $CC_FOR_TARGET. Run all tests
40264 non-native too, except for attempting to run the binaries.
40295 ld: Use [list ] syntax to define run_tests in indirect.exp
40298 Thus $NOPIE_CFLAGS and $NOPIE_LDFLAGS are passed to cmd as names
40315 Align linkerscript symbols according to ABI
40316 Apply ABI specific alignment to symbols generated in the default
40325 x86: optimize 128-bit VPBROADCASTQ to VPUNPCKLQDQ
40340 of the earlier categories. Introduce the Y macro (not expanding to any
40341 output) to flag such cases.
40344 as well, to continue to allow sharing of the string literals.
40349 Masking is not permitted in this case. See the code comment for how this
40358 Zeroing-masking is not permitted in this case. See the code comment for
40363 EVEX.z to be clear. Introduce a "global" flag right here, to be re-used
40364 by checks which need to live in specific operand handlers.
40373 gdb: add __repr__() implementation to a few Python types
40376 adds __repr__() implementations to gdb.Symbol, gdb.Architecture,
40379 This makes it easier to play around the GDB Python API in the Python
40381 easily accessible tipe information to users.
40387 <gdb.Type code=TYPE_CODE_INT name=char>
40392 block, and then a message to show how many more were elided (if any).
40397 In the next commit we would like to have mdict_size return the number
40404 mdict_size is used is in a maintenance command in order to print a
40408 However, in the next commit we do want the size returned to be the
40412 The new use is still not on a hot path -- it's going to be a Python
40418 isn't going to be hit that often.
40429 arc: Update default target CPU to match GCC defaults
40441 The code in md_apply_fix which tries to deduce from the operand type
40442 which reloc to apply currently does the wrong thing for absolute
40443 relocs which have been re-written by fixup_segment as pc-relative to
40449 implement it accordingly. For the other 3 we have to issue an error.
40465 In the same function I found an unchecked call to
40474 tests GDB's ability to load a core file containing threads with an
40496 Failed to read a valid object file image from memory.
40555 tries to create another new thread, but this thread has the same
40569 In this commit I propose a solution to these problems.
40581 GDB takes care to ensure that the new numbers assigned are unique and
40583 remember, in a real vmcore file, 0 is used to indicate an idle core,
40585 that core, so we don't want GDB to assign an lwpid that clashes with
40595 Failed to read a valid object file image from memory.
40640 The gdb.arch/core-file-pid0.exp test has been update to check for the
40657 some time, and I thought that it would be worth merging to master. I
40664 The problem was that when GDB was used to open a vmcore (core file)
40682 Back in 2010, the original issue reported tried to change the kernel's
40687 This change was rejected by the kernel team, the current
40689 source of a recent kernel. The code mentioned in the lkml.org posting
40692 core will have an lwpid of 0, so I think GDB still needs to be able to
40696 core file) the sections are processed in core_open to generate the
40706 When we find the next thread (core) with lwpid of 0, we attempt to
40709 to delete the first thread.
40711 And it was within this thread delete code that we triggered a bug
40712 which would then cause GDB to assert -- when deleting we tried to
40713 switch to a thread with minus_one_ptid, this resulted in a call to
40725 thing to do? If the vmcore file has two threads that represent two
40734 today. I plan to try and address this in a later commit, however,
40735 this first commit is about getting a test in place to confirm that GDB
40742 that contains two threads, and then manually edited the core file to
40743 set the lwpid of each thread to 0.
40748 only really care about loading the register's, this is enough to
40754 compressed the core file with bzip2, which reduces it to just 750
40760 One interesting thing to note is that GDB reports the core file
40766 Failed to read a valid object file image from memory.
40778 the first thread to be deleted, as a result GDB thinks that the
40797 the first section with a name like ".reg/NN". If we find no such
40809 will end up being setup. By moving the inferior setup code earlier in
40811 later code that sets up the inferior, we now know this will always
40822 Change version number to 2.41.50 and regenerate files
40846 2023-07-03 WANG Xuerui <git@xen0n.name>
40853 2023-07-03 WANG Xuerui <git@xen0n.name>
40860 2023-07-03 WANG Xuerui <git@xen0n.name>
40864 ("LoongArch: gas: Add support for linker relaxation."), in order to
40868 expands into a conditional call to abort(), but "abort" is re-defined to
40878 2023-07-03 WANG Xuerui <git@xen0n.name>
40898 the output of gprofng to display the data. Sometimes this data is corrupted.
40914 extensions to the NEWS file.
41367 is that append_const is supposed to write in big-endian order, but I
41374 (this may need further updating prior to the next release), list them
41389 * fround/froundmx (round to integer)
41390 * fcvtmod.w.d (Modular Convert-to-Integer)
41391 * fmv* to access high bits of FP registers in case XLEN < FLEN
41403 Most significant change to that commit is the switch from the rs1-field
41404 value to the actual floating-point value in the last operand of the fli*
41406 the '%a' printf specifier is used to output hex floating-point literals
41422 * config/tc-riscv.c (flt_lookup): New helper to lookup a float value
41521 strings: Improve code to detect excessively large minimum string lengths.
41533 LoongArch: gas: Fix code style issues
41556 2023-06-30 WANG Xuerui <git@xen0n.name>
41563 In addition, the "$x" name for $r21 was never included in any released
41564 version of the ABI spec, and such usages are all fixed to say just $r21
41579 * config/tc-loongarch.c: Init canonical register ABI name
41582 deprecated register name usage.
41593 * loongarch-opc.c: Rename the alternate/deprecated register name
41594 mappings, and move $x to the deprecated name map.
41596 2023-06-30 WANG Xuerui <git@xen0n.name>
41611 2023-06-30 WANG Xuerui <git@xen0n.name>
41614 The additional hex notation was minimally useful when one had to
41615 inspect code with heavy bit manipulation, or of unclear signedness, but
41649 2023-06-30 WANG Xuerui <git@xen0n.name>
41652 Add a modifier char 'o' telling the disassembler to print the immediate
41660 * loongarch-opc.c: Add 'o' to operands that represent address
41663 2023-06-30 WANG Xuerui <git@xen0n.name>
41666 Update the LoongArch disassembler to supply style information to the
41675 2023-06-30 WANG Xuerui <git@xen0n.name>
41677 opcodes/loongarch: remove unused code
41678 Remove some unused declarations and code.
41690 2023-06-30 WANG Xuerui <git@xen0n.name>
41693 Add a flag in the pinfo field for being able to mark certain specialized
41706 People wanting the exact disassembly can always set `-M no-aliases` to
41712 produce the same code; in this patch, `addi.d rd, $zero, imm` is treated
41714 due to the expressible value range well within 32 bits.
41746 * loongarch-dis.c: Move register name map declarations to top.
41764 Add details for the changes made from Version 1 to Version 2 of the format.
41768 description at relevant points in the specificatin to clarify the
41773 sframe: bfd: gas: ld: format bump to SFrame version 2
41775 in the format. Add information in the SFrame FDE to convey the size
41780 accesses to the members of the SFrame Frame Descriptor Entry (FDE) are
41785 libsframe provides two new APIs to:
41787 - add an SFrame FDE to the encoder context.
41792 SFRAME_VERSION_2 format. If the input sections offered to the linker
41794 to the user.
41796 objdump/readelf will show the following message to the user if .sframe
41814 * gen-sframe.c (sframe_set_version): Update to SFRAME_VERSION_2.
41853 * sframe.h: Add member to encode size of the code block of
41861 libsframe: add new APIs to get SFrame version
41862 While the SFrame preamble is guaranteed to not change between versions,
41864 for convenience only. The linker may want to use these APIs as the
41905 Now, to find SFrame stack trace information from an FDE of type
41911 pltN entries or similar code stubs (for which SFrame FDE of type
41912 SFRAME_FDE_TYPE_PCMASK may be used), evolve to be of size > 16 bytes,
41913 this will cease to work.
41921 explicitly in the SFrame FDE. For now, fix up the logic to at least
41936 ld: Add -z nosectionheader test to bootstrap.exp
41944 Add tests to verify that the linker option, -z nosectionheader and
41988 DT_STRSZ, and DT_SYMENT entries, to improve nm and objdump. For DT_HASH,
41999 dt_verdef_count, dt_verneed_count and dt_strtab are added to
42000 elf_obj_tdata to store dynamic symbol table information.
42018 to reconstruct dynamic symbol table from PT_DYNAMIC segment if
42056 This patch adds a new linker option, -z nosectionheader, to omit ELF
42058 to remove ELF section headers.
42073 to object_flags.
42118 …I see these warnings from time to time, when configuring a build with --enable-pgo-build=lto, I h…
42130 * Makefile.am: Pass CLOCK_GETTIME_LINK to the testsuite
42142 most cases) allows features to be enabled at any architecture version.
42144 There is no need for the toolchain to restrict combinations of unrelated
42157 section-match: Check parent archive name as well
42164 the exclude list we happened to accept archive names as NAME
42165 (undocumented). The documented way to specify (all) archive members
42172 But I intended to not actually change behaviour with the prefix
42181 parents for a name match.
42194 Now, it would probably be better to fix this via check_typedef.
42197 potentially many CUs to find the correct type.
42199 Instead, this patch changes gdb to not enter a symbol for an
42204 Remove some Python 2 code
42205 I found some Python 2 compatibility code in gdb's Python library.
42244 Gas defaults to emit R_LARCH_ADD64/R_LARCH_SUB64 unless explcitly declared
42245 to emit R_LARCH_64_PCREL.
42333 * sframe.c (sframe_decoder_get_abi_arch): Update return type to
42358 carrying the SFrame FRE type and SFrame FDE type to consistenly use
42389 to get the FP offset.
42391 On second look, it appears to make sense to hide these details of
42393 with the changed semantics, the call to sframe_fre_get_fp_offset () will
42412 sframe_decoder_get_fixed_ra_offset () to get the RA offset.
42414 On second look, it appears to make sense to hide these details of
42416 changed semantics, the call to sframe_fre_get_ra_offset () will fetch
42420 Adjustments need to be made to ensure the textual dump remains the same
42436 to keep the textual dump same as previous.
42441 Define an empty base version LIBSFRAME_0.0 and add all symbols to
42450 to fall back on the libtool's -export-symbols option for platforms where
42466 The interface provided by this function is not a healthy abstraction to
42471 stack tracer will likely only need to do a sframe_find_fre ().
42473 Rename the API to continue to use the functionality internally in the
42481 Add comment for intention to deprecate.
42484 and set error code. This API is deprecated.
42495 users to manage these changes.
42502 In libtool-version, set the current to 1 to prepare for the upcoming
42503 release. Reset revision and age to 0.
42505 Add libtool-version file to EXTRA_DIST.
42558 Add note about adding ChangeLog.git to src-release.sh
42590 LoongArch: Support referring to FCSRs as $fcsrX
42591 Previously, FCSRs were referred to as $rX, which seemed strange.
42592 We refer to FCSRs as $fcsrX, which ensures compatibility with LLVM
42614 referring to FCSRs as $fcsrX.
42630 CI. The problem is that due to an issue unrelated to reverse debugging the
42635 gdb_test_multiple has a pattern to detect that "The program is not being
42642 one of the generic patterns to match entering the main function and the
42643 other one to match the source code line number that is shown by GDB right
42663 sections, then sorting. Instead we need to use a single .rela.dyn
42666 This is done by increasing the size of rela_dyn_ during do_relax to
42675 relaxation to account for needed indirect branches, and add
42709 sorted as they should be to the start of .rela.dyn, due to adding one
42723 * ld-plugin/lto.exp: Add -finline to compiler flags in some tests.
42730 This was due to an off-by-one error in a vector resize. This patch
42741 0cb765b2cec9 ("bpo-46730: Add more info to @property AttributeError
42742 messages (GH-31311)"). Add the new message to the expectations.
42756 gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
42764 gdb_init") I tried to do this more structurally, by cleaning up the entire
42767 This caused a regression when using "make check -j 2", due to the cleanup
42781 standard_output_file dir is the wrong thing to do, because an invocation with
42782 GDB_PERFTEST_MODE == run is intended to reuse binaries left there by an
42796 can be implemented by temporarily setting a few "may-" parameters to
42799 In order to make this work, I had to also change "may-write-registers"
42808 DAP allows a source breakpoint to specify a log message. When this is
42824 implementations should ignore the paging parameters to the "variables"
42828 I realized that with a small refactoring, it is possible to type-check
42829 the parameters to the various DAP breakpoint requests. This would
42834 setting "verified" to False. gdb didn't properly implement this, and
42835 there was a FIXME comment to this effect. This patch fixes the
42839 The DAP breakpoint code tries to reuse a breakpoint when possible.
42842 just going to be reset anyway, so this patch changes the code to
42847 an expression to be evaluated. However, gdb implemented this as if it
42855 EvaluateResult does not need a name, just as what Tom pointed out in
42856 previous review. It's only the *children* that need to be made sure that
42858 integer as a name, anyhow (not as far as I am aware, no programming
42868 First of all, name of VariableReferences must always be of string type.
42869 This patch makes sure that this is the case by formatting the name. If
42870 (when) the name is an integer, this will cause clients to fail or throw
42873 Fixes a bug in NoOpArrayPrinter that calculated children to be N, but
42897 are used to track relative relocations against local symbols for later
42902 argument to inform caller if the symbol buffer should be kept.
42911 Add missing backslash to update-gnulib.sh
42915 Re-running update-gnulib.sh causes a few copyright notices to change.
42917 our yearly update. I've updated the script to account for this, but I
42918 did not want to try testing it...
42970 The ^C occurs occasionally. This is something we'd like to fix. It's
42985 make_brlt_section were changed to use rela_dyn_ rather than their own
42987 is needed for long branches, due to needing to iterate sizing and thus
43010 prompt and just before switching to TUI we have in the tuiterm:
43016 - in order for tuiterm to show something, its input processing procs need to
43029 This allows us to reimplement Term::command_no_prompt_prefix using
43030 Term::command, and just before switching to TUI we have in the tuiterm:
43043 # a regexp matching the line to wait for. Return 0 on timeout, 1
43077 Only %LV should continue on to S handling; avoid emitting a stray 'l'
43085 called once per bfd, and the memory might be put to better use. It
43104 This changes a couple of spots in ax-general.c to use ARRAY_SIZE.
43113 aop_last is only used for an assertion. However, due to the '.def'
43123 This changes aop_map to be 'static'.
43130 This changese agent_expr::tracing to have type bool, allowing inline
43131 initialization and cleaning up the code a little.
43147 patch replaces it with a std::vector<bool>, simplifying the code.
43154 This changes agent_expr to use gdb::byte_vector rather than manually
43163 to bin2hex. This patch removes the redundancy.
43180 do_set_command manually updates a string, only to copy it to a
43181 std::string and free the working copy. This patch changes this code
43182 to use std::string for everything, simplifying the code and removing a
43190 This patch changes the remote.c readahead_cache to use
43191 gdb::byte_vector. This simplifies the code by removing manual memory
43199 I found some code in linux-osdata that manually managed a string.
43207 This changes mi_parse::command to be a unique_xmalloc_ptr and fixes up
43209 is not used here due to how the Python API works -- this approach
43217 This changes the MI "token" to be a std::string, removing some manual
43218 memory management. It also makes current_token 'const' in order to
43253 Fixes failure reported by buildbot regarding ill-formatted Python code.
43261 Remove unnecessary test suite stuff. save_var had to stay, as it mutates
43272 Updated docs & NEWS to reflect new changes. Added
43274 to the ptid attribute of InferiorThread. To do this,
43275 I've added an anchor to that attribute.
43282 by doing a comparison of it's `thread_info* thread` to nullptr. This
43286 patch to just emit most of the same fields that gdb.InferiorThread has, namely
43287 global_num, name, num and ptid (the 3-attribute tuple provided by
43290 2 - A python user can hold a global reference to an exiting thread. Thus
43291 in order to have a ThreadExit event that can provide attribute access
43297 that if a user holds takes a global reference to that
43299 point GDB will 'explode' so to speak.
43313 - name: name of the thread or none if not set
43314 - ptid: the PTID of the thread, a 3-attribute tuple, identical to
43317 Added info to docs & the NEWS file as well.
43319 Added test to test suite.
43328 Renamed thread_name according to convention (_ first)
43331 _get_threads returns threads with name field = None.
43333 I had initially thought that this was due to Firefox setting the names
43334 using /proc/pid/task/tid/comm, by writing directly to the proc fs the
43335 names, but apparently GDB seems to catch this, because I re-wrote
43336 the basic-dap.exp/c to do this specifically and it saw the changes.
43338 So I couldn't determine right now, what operation of name change that
43340 names for an applications that set the name of a thread in ways that
43356 Your Ada runtime appears to be missing some debugging information.^M
43361 The test-case contains a require gnat_runtime_has_debug_info to deal with
43393 This allows us to rewrite code like this:
43411 - assign VAL to LVAL, and either
43413 - set CHANGED to true if the assignment changed LVAL.
43436 gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
43459 "SyntaxError: invalid syntax" due to usage of an f-string in test-case
43513 This is due to compiling with no-force.
43522 But it also means it will pick up intermediate files related to prog.adb from
43533 updated a gdb.arch/arm*.S test-case to use %progbits rather than @progbits,
43534 but failed to do so for gdb.arch/thumb*.S. Fix this oversight.
43544 The new function loongarch_get_uleb128_length just used to call
43559 gdb: update IRC reference from Freenode to Libera.Chat
43560 It's been some time since the switch from Freenode to Libera.Chat,
43561 however, there's still a reference to Freenode in the 'gdb --help'
43566 x86: shrink Masking insn attribute to a single bit (boolean)
43567 The logic can actually be expressed with less code that way, utilizing
43588 Mention the addition of Sony Allegrex processor support to the MIPS port.
43596 Reformat `-modd-spreg'/`-mno-odd-spreg' test invocations in mips.exp to
43611 Add rotation instructions to MIPS Allegrex CPU
43616 The Allegrex CPU was created by Sony Interactive Entertainment to power
43618 The pspdev organization maintains all sorts of tools to create software
43624 Rewrite the paragraph to match the style of Tag_GNU_MIPS_ABI_FP text
43669 xfails or elsewhere is wrong. We want bfin-*-linux* instead to just
43673 not just the recent change but others I'd added to xfails too.
43692 continue, expecting to hit the breakpoint.
43698 (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
43704 (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
43714 (gdb) PASS: gdb.base/step-over-exit.exp: continue to exit
43721 (gdb) FAIL: gdb.base/step-over-exit.exp: continue to exit
43728 "continue to exit"
43739 Add --remap-inputs option to the BFD linker.
43754 A number of backends want to return bfd_reloc_dangerous messaqes from
43756 Such messages are not freed anywhere, leading to small memory leaks
43759 patch extends that scheme to other backends using a shared static
43766 * bfd.c (_input_error_msg): Make global and rename to..
43837 - overrides proc accept_gdb_output (to be able simulate incorrect responses
43839 - overrides proc send_gdb (to be able to call Term::command without a gdb
43845 starts with a bit that is supposed to anchor the prompt to the border:
43849 but that doesn't work due to insufficient escaping. Fix this by adding the
43933 `sizeof(int)` evaluates to for the current target.
43950 Tom Tromey pointed out that the test and call to error() for the
43960 ...could be replaced by a call to dwarf_expr_require_composition which
43965 Added self to W.A.A. maintainers
43972 know which main method to use to start a test case.
43977 This commit tests and fixes up a minor issue to get the detection
43980 The goal here is to get the tests running and preventing further
43981 regressions during future work. This change does not do anything to fix
43985 preprocessor to extract the Fortran compiler identity from the defines.
43986 This preprocessor output is then evaluated by the test suite to import
43995 The evaluation logic is already set up to filter this warning, but the
43998 This commit fixes the issue by updating the filter to exclude the
44033 the DAP code uses f-strings, which were added in 3.6.
44035 This patch removes the uses of f-strings from the DAP code. I can't
44049 Currently, gdb will unwind the entire stack in response to the
44054 frames, a client is expected to request frames until a request
44058 This patch removes this from the response in order to improve
44068 Add "stop at main" extension to DAP launch request
44070 to have gdb stop at the main subprogram when launching. This patch
44077 Add "target" parameter to DAP attach request
44078 This adds a new "target" to the DAP attach request. This is passed to
44080 because in some sense gdb is attaching to a running process. It's
44099 This adds an 'assign' method to gdb.Value. This allows for assignment
44106 Add type-checking to DAP requests
44107 It occurred to me recently that gdb's DAP implementation should
44112 Python doesn't make it very easy to do runtime type-checking, so the
44113 core of the checker is written by hand. I haven't tried to make a
44118 Furthermore, in a few spots, it wasn't convenient to spell out the
44119 type that is accepted. I've added a couple of comments to this effect
44122 I've tried to make this code compatible with older versions of Python,
44123 but I've only been able to try it with 3.9 and 3.10.
44133 This patch changes the cases like this in DAP to use () rather than []
44135 this are in the code.
44140 The 'request' decorator is intended to also ensure that the request
44146 I neglected to write a test for the DAP "pause" request. This patch
44151 the implementation functions use the same name as the request. I
44153 one remaining function to be gdb-ish.
44155 Add singleThread support to some DAP requests
44157 somewhat similar to scheduler-locking. This patch implements support
44179 feature is supposed to work.
44181 I haven't added C++ exception handling here, but it's easy to do if
44184 This patch relies on the new MI command execution support to do its
44196 This patch changes Ada catchpoints to work the same way.
44201 This changes the members of ada_catchpoint to be private.
44212 Transfer ownership of exception string to ada_catchpoint
44213 This changes the ada_catchpoint to require an rvalue ref, so that
44214 ownership of the exception string can be transferred to the catchpoint
44217 Pass tempflag to ada_catchpoint constructor
44218 This is a minor cleanup to pass tempflag to the ada_catchpoint
44222 This changes the Ada catchpoint tests to use
44223 gnat_runtime_has_debug_info. This simplifies the code.
44226 gnat_runtime_has_debug_info starts a new gdb to do its work. However,
44229 patch changes the proc to shut down gdb.
44245 The FAIL is due to:
44250 The debug information is there due to compiling glibc using a binutils which
44256 The fix I applied there was to use a regexp "^[^_]" to filter out
44260 - reverting the regexp to "", and
44261 - rewriting the check to require at least 11 functions, rather than a precise
44282 run to foo_o224_021.child1.child2
44317 Permit DW_OP_GNU_uninit to be used with DW_OP_piece
44341 To make this setting permanent, add 'set debuginfod enabled on' to .gdbinit.
44356 info, we'd prefer to see a value, even if it is uninitialized.
44393 prior to DW_OP_piece. The fix involved changing the DW_OP_GNU_uninit
44397 With the fix in place, attempting to print 'value' now looks like
44426 Add a new test plt-findfre-1 to ensure lookup of SFrame stack trace
44430 created. The size of the 'function code block' covered by the SFrame
44431 FDE is equivalent to 5 pltN entries of 16 bytes each.
44450 This is buggy and needs correction. The mask 0xff should be 0xf (to
44453 At this time, the size of the pltN entry is implicitly assumed to be 16
44457 For now, we should fix the code to at least behave correctly for the
44458 generated code and the generated SFrame stack trace information for the
44477 rule, making the function more readable and easier to understand.
44483 [1] https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code
44489 [gdb/tui] Delete line buffer when switching to singlekey
44495 After switching to SingleKey mode using C-x s, we have just:
44508 Fix this by clearing the readline line buffer when switching to SingleKey
44530 A GDB crash was discovered on Fedora GDB that was tracked back to an
44533 The bug was reported on Fedora 37, 38, and 39. Here are the steps to
44589 this setup process an at_exit function is registered to cleanup some
44592 Back in GDB the debuginfod_client object is managed using this code:
44607 And then a global debuginfod_client_up is created to hold a pointer to
44614 don't expect the at_exit handlers to have run and started cleaning up
44617 To fix this issue we need to ensure that debuginfod_end is called
44618 before the at_exit handlers have a chance to run.
44621 hold a raw pointer to the debuginfod_client object. We then make use
44622 of GDB's make_final_cleanup to register a function that will call
44630 not appear to manifest when using a local debuginfod server, so we'd
44631 need to setup something more involved. For now I'm proposing this
44721 value contents directly to a C-string, i.e. one that is assumed to
44724 After the above commit this can no longer be assumed to be true. A
44729 My proposed solution is to copy the string contents into a std::string
44746 can return NULL. I tend to doubt this can be seen in this context,
44768 Freeing ecoff_debug_info "pointers to the unswapped symbolic info"
44769 isn't a simple matter, due to differing allocation strategies. In
44770 _bfd_ecoff_slurp_symbolic_info the pointers are to objalloc memory.
44771 In the ecoff linker they are to separately malloc'd memory. In gas we
44823 gdb/corelow.c: do not try to reopen a file if open failed once
44825 to locate and open files which were mapped in the process for which the
44827 opened, GDB will re-try to open it once for each time it was mapped in
44830 This patch makes it so GDB recognizes that it has already failed to open
44839 When GDB opens a coredump it tries to locate and then open all files
44843 bfd_check_format fails), then a warning is printed to the user. If the
44851 There was a comment in the code assuming that if the file was found on
44854 to same position") showed that this assumption is not valid. For
44855 example, it is possible to have a core dump of a process which had
44858 this special file were mapped in the host process, but trying to seek to
44868 In core_target::build_file_mappings, GDB tries to open files referenced
44889 a reference to it in the bfd_map.
44892 this code again. The second time, bfd_map[filename] is not nullptr and
44893 we try to call bfd_make_section_anyway on an already closed BFD, which
44900 optimise bfd_seek to same position"). Since this change, opening a
44901 coredump which contains mapping to some special files such as a DRI
44903 example for processes using AMDGPU devices to offload compute tasks.
44920 ELF targets with target-specific free_cache_info functions need to
44934 sframe_decoder_get_funcdesc_at_index () is the function to access SFrame
44937 Avoid unnecessary type cast and include minor enhancements as the code
44950 This patch simplifies ada_lookup_struct_elt_type by changing it to
44952 even to the point of having identical comments.
44963 ld * testsuite/ld-elfcomm/elfcomm.exp: Update regexps to match new output from the linker.
44982 For readline 7 (note that we require at least readline 7 so there's no need to
44989 it's something we want to get rid of (PR build/10723). Nevertheless, I think
45013 This patch fixes both of AArch64's and Arm's prologue skippers to not skip past
45014 the end of a function. It also incorporates a fix to the testcase so it
45032 Here we send "tui enable" to gdb, but don't wait for it to arrive before
45039 Fix this by waiting for the prompt to be issued in TUI before doing the check.
45054 target-non-stop=on: continue to breakpoint: break here
45083 While running this test on an emulator, I noticed we're failing to match the
45088 This patch changes that call to use error_no_arg.
45095 doc/bfdint.texi and comments in the aout and som code about this
45096 function are just wrong, and its name is not very apt. Better would
45100 creating an archive map to reduce memory usage by throwing away
45101 symbols, the target _close_and_cleanup function won't have access to
45102 tdata or section bfd_user_data to tidy memory. This means most of the
45107 target _close_and_cleanup code to target _bfd_free_cached_info.
45162 and sframe_encoder_ctx data structures to use the applicable data types
45183 ELF: Add "#pass" to ld-elf/pr30508.d
45184 Add "#pass" to ld-elf/pr30508.d to allow extra segments.
45192 This changes dwarf2_fde to use the unrelocated_addr type. This
45194 address is compared to an unrelocated address.
45212 I forgot to convert struct linetable_entry to use the "unrelocated"
45213 (as opposed to "raw") terminology. This patch corrects the oversight.
45216 enum address_class has a stale comment referring to
45221 This changes dwarf_decode_lines to accept an unrelocated_addr and
45225 This changes various spots in the DWARF reader to use
45228 Move unrelocated_addr to common-types.h
45229 unrelocated_addr is currently defined in symtab.h, but in order to
45230 avoid having to include that in more places, I wanted to move the type
45231 elsewhere. I considered defs.h, but it seemed reasonable to have it
45232 next to CORE_ADDR, which is what this patch does.
45267 This commit aims to address PR gdb/21699. There have now been a
45268 couple of attempts to fix this issue. Simon originally posted two
45284 The approach taken in my first patch was pretty similar to what Simon
45299 GDB's printf can cause GDB to print unexpected data from the
45342 pass a pointer to this string, along with the length of this
45343 string (so not including the null-character) to value_cstring.
45353 When GDB tries to print one of these strings the value contents are
45354 pushed to the inferior, and then read back as a C-style string, that
45365 The comments in the header file are updated to describe whether the
45367 Also, the data argument is changed to type gdb_byte. The functions as
45370 gdb_byte seems to make more sense.
45383 value_string which can be used to create such values.
45415 After this commit the only calls to value_cstring are from the C
45418 And the only calls to value_string are from Fortan, Ada, and ObjectC
45419 related code.
45476 There's one code change, the name of macro SIG_CODE_BONDARY_FAULT changed to
45485 currently leak memory. Keep a static pointer to the message and free
45486 it in various places to minimise the leaks.
45487 bfd_set_input_error (NULL, bfd_error_no_error) is a way to free up the
45505 We should try our best to make mips32 using the same
45615 -march=from-abi for testcases to o32/n32/n64 both/all.
45622 Skip `default` in mips_arch_list_matching if triple is mipsisa*, due to:
45640 We also set the default ABI for mips*-img-elf to O32.
45643 We don't support mips64*-img* due to GCC doesn't support it,
45650 is pinned to a fix value if not given explicitly. for example
45658 let's alter march according to ABI.
45763 - changep -> changedp (name of variable)
45825 This variable controls how many spaces are used to display a tab character.
45857 The PROLOGUE-END flag from the line-table entries is used to place \
45872 "Connectiong ELF symbol \"%s\" to the .toc section (%s)\n",
45893 [gdb/ada] Fix argument name misspelling
45894 Two functions use the argument name bounds_prefered_p.
45930 Fix the constants. They should be 0xa and 0xb as opposed to 0x10 and
45948 nm.c filter_symbols when accessing a symbol name.
45998 Added new load address pseudo instruction which is always expanded to GOT
46017 allocate_dynrelocs, to make sure we won't reserve redundant spaces
46027 Set NEED_RELOC to true if TLS GD/IE needs dynamic relocations,
46030 if RISCV_TLS_GD_IE_NEED_DYN_RELOC set need_reloc to false. This
46031 condition needs to be same as relocate_section.
46040 .opd section info in the per-object bfd.tdata. This was done to avoid
46043 create multiple .opd sections. So it is better to avoid possible
46051 (It's a really rare corner case because not only would you need to be
46052 linking ppc64 objects to non-ppc64 output, you'd also need a branch
46053 reloc symbol to be defined in a .opd section of a non-ppc64 input.)
46059 (struct _ppc64_elf_section_data): ..to here.
46061 already set to sec_opd.
46062 (ppc64_elf_check_relocs): Only set sec_type to sec_toc when
46080 at sections, which leads to duplication of code in target
46095 match, or another target matches too, then the hash table needs to be
46100 failure path. Move declaration to..
46138 I set ACCT_FILTER to temporarily ignore problematic functions.
46156 Add the -j option to run the selected functions.
46175 Then, I noticed a repeated call to strlen in a loop condition, so I
46182 Pass correct name to @value in gdb.texinfo
46188 The problem is that the wrong argument was passed to @value. This
46220 This is due to the fact that ^C doesn't abort the reverse-i-search. This
46221 appears to be due to a readline problem. A PR is open about this: PR
46225 such that we have a responsive prompt to handle the "monitor exit" command
46259 However, after going back to layout src:
46266 I traced this back to tui_set_layout, where for both the old and the new
46268 fingerprint is the same, an effort will be done to preserve the command
46289 gdb: add support for %V to printf command
46300 It is also possible to pass the same options to %V as you might pass
46301 to the print command, e.g.:
46317 You can't do that without a process to debug.
46321 string type. When we try to print this we call value_as_address,
46322 which ends up trying to push the string into the inferior's address
46326 there's no reason why we have to push it into the inferior, but this
46329 2. $_as_string suffers from the fact that C degrades arrays to
46338 this would be harder than issue #1 I think. The whole array to
46340 most cases this is exactly what we want. It's not clear to me how
46342 cases. But I'm sure this is solvable if we really wanted to.
46345 gdb.Value objects. There's no super convenient way to pass formatting
46346 options to $_as_string. By this I mean that the new %V feature
46347 supports print formatting options. Ideally, we might want to add this
46348 feature to $_as_string, we might imagine it working something like:
46354 where the first item is the value to print, while the remaining
46363 options, and if you needed to set the 9th option you'd need to fill in
46366 And right now, the only way to pass these options to a gdb.Function is
46367 to have GDB first convert them all into gdb.Value objects, which is
46371 and printed entirely on the GDB side, we are able to print arrays as
46375 Finally, the $_as_string is sold in the manual as allowing users to
46398 proposing to remove $_as_string, there might be users currently
46403 access to this feature too. dprintf breakpoints can be operated in
46411 passed to an inferior function (printf by default). In this case GDB
46419 would be wrong to block use of '%V' in this case. The documentation
46420 does make it clear that users shouldn't expect this to "just work"
46424 '%V' (right now). This is handled at the point when GDB tries to
46425 process the format string and send the dprintf command to the remote,
46542 (and want, as far as the mi_interp implementation is concerned) to
46608 used to say, it would notify all MI interpreters. Now, it's easy to
46609 only notify the new interpreter, so it's possible to just call the
46646 here, we only want to notify the interpreter that is executing the
46686 Instead of having the interpreter code registering observers for the
46687 signal_received observable, add a "signal_received" virtual method to
46692 all existing notifications to the signal_received observers with calls
46693 to notify_signal_received.
46695 Before this patch, the CLI and MI code both register a signal_received
46702 need to deal with the current interpreter (the "this" pointer).
46705 amdgpu code register an observer to print a warning after the CLI's
46706 signal stop message. Since the amdgpu and the CLI code both use
46710 change anyway, I think it's more straightforward and simple to
46735 - using this in test-case gdb.tui/pr30056.exp to declare it unsupported for
46753 Rework layout to be similar to that from 'objdump -p'.
46754 Add code to handle larger than normnal AOUT headers.
46784 Add ADD/SUB reloc pair for debug and exception data to calculate symbol
46860 Add support for relocs related to relax to readelf.
46882 Set gas default to enable relax.
46896 * bfd-in2.h: Add relocs related to relax.
46898 pointer (data_segment_phase) to monitor the data segment phase.
46900 (loongarch_elf_adjust_dynamic_symbol): Fix code format.
46902 (perform_relocation): Handle new relocs related to relax.
46903 (RELOCATE_CALC_PC32_HI20): Fix code format.
46905 (loongarch_elf_relocate_section): Handle new relocs related to relax.
46927 * libbfd.h: Add relocs related to relax.
46928 * reloc.c: Add relocs related to relax.
46942 Add support for an ARMMAGIC value of 0xa00 to the PE dumper.
46947 arm-pe looks to be a very old PE implementation, incompatible with
47053 The problem here is that the `^running` reply to the -exec-run command
47070 It took me a while to understand the relationship between these two
47071 variables. I think that in the end, this is what we want to track:
47076 to output a ^running record. And we want to remember that we did,
47079 ^running, we want to output a ^done.
47081 Moving those two variables to the mi_interp struture appears to fix it.
47113 - attempts to scroll the TUI src window, without any effect, and
47125 0 as the first part of an utf-8 multibyte char, and tries to read the next
47150 two, and defaults to the "0 chars" choice.
47154 Fix this by defaulting to the "1 char" choice in _rl_get_char_len:
47160 The second problem happens when the call to _rl_search_getchar in
47165 Fix this by checking for "RL_ISSTATE (RL_STATE_ISEARCH)" after the call to
47190 In the check_reloc, refer to spare and loongarch, they don't need to reserve
47191 any local dynamic reloc for TLS LE in pie/pde, and similar to other targets.
47192 So it seems like riscv was too conservative to estimate the TLS LE before.
47197 The risc-v code for TLS GD/IE in the relocate_section seems same as MIPS port.
47198 So similar to MIPS, pr22570, commits 9143e72c6d4d and 1cb83cac9a89, it seems
47199 also the right way to do the same thing for risc-v.
47211 bfd_link_dll for TLS IE. Don't need to reserve the local dynamic
47232 * objdump.c (wide_output): Change from local to global.
47245 In commit 1a3b4f90bc5f ("x86: convert two pointers to (indexing)
47285 supposed to set the reverse attribute to 1 and 0, in fact it's set to 1 in
47304 With neither --32 nor --64 passed to gas, advanced features like AVX
47308 Make this similar to --64 and --x32: Check whether a suitable target
47321 x86: convert two pointers to (indexing) integers
47322 This in particular reduces the number of pointers to non-const that we
47325 pointer-to-const.
47331 nothing to do with insn length - leads to inconsistent results. Since we
47332 allow for up to MAX_CODE_LENGTH - 1 prefix bytes (which then could be
47336 Move struct dis_private down to be able to use MAX_CODE_LENGTH without
47337 moving its #define. While doing this also alter the order to have the
47344 being the same types. It further eliminates the need to mask by 0xff
47346 improving code legibility.
47366 Having to add characters to both arrays can easily lead to oversights.
47368 allows to drop two special cases in md_begin().
47382 relatively difficult to follow, and maintain. Some changes are done now
47383 to address that - refactor the function and use better names to make it
47386 The changes to the implementation do not cause any change in the
47390 * sframe.c (sframe_fre_get_end_ip_offset): to here...
47414 arm-linux-gnueabi: "undefined reference to `__aeabi_read_tp'"
47416 m68k-linux-gnu: "undefined reference to `__m68k_read_tp'"
47417 microblaze-linux-gnu: "undefined reference to `__tls_get_addr'"
47421 So only riscv really fails the pr. The rest fail due to test issues
47423 really a fail, but it's worth keeping the test to ensure those
47430 one to check for -z text errors, the other to check tprel
47432 xfail the linker optimisation on targets known to fail.
47438 it. It changes MI commands to use a "const char * const" for their
47453 mark value to NULL to indicate that the value chain had already
47454 been freed to mark.
47459 This lead to the situation that if the value chain was empty
47470 later in the 'bad case', which lead me to notice the issue with
47477 all_breakpoints and all_tracepoints to use references instead of
47539 basic_safe_iterator to return the exact same thing as the iterator they
47555 breakpoint::locations to use references instead of pointers.
47568 - Add methods for the various manipulations that need to be done on the
47576 - I needed to add a call to clear_locations in delete_breakpoint to
47583 existing callers of breakpoint::locations don't need to change right
47586 The rest of the changes are to adapt the call sites to use the new
47594 gdbsupport: add missing increment/decrement operators to reference_to_pointer_iterator
47617 the reference_to_pointer_iterator wrapper does not. I'm not to sure why
47620 be decremented, but adding those operators seems like the right thing to
47629 Add convenience first_loc methods to struct breakpoint (const and
47631 to be an intrusive_list and makes the actual list private, so these
47632 spots would need to change from:
47636 to something ugly like:
47640 That would make the code much heavier and not readable. There is a
47642 breakpoints. Whether this is correct, or these spots fail to consider
47656 Add three convenience methods to struct breakpoint:
47665 A subsequent patch changes the list of breakpoints to be an
47666 intrusive_list, so all these spots would need to change. But in any
47683 will therefore be needed to make the last_loc output parameter const as
47684 well. Make that change now to reduce the size of the following patches.
47699 just be clearer to access fields through `this` instead.
47721 I suppose it's always going to be the same arch, so get it from the
47741 gdbsupport: add support for references to checked_static_cast
47744 to implement the new overload based on that, but it seemed simpler to
47748 update them to illustrate the use of the new overload. To build
47750 expect many people to have. But I have it, and it builds fine here. I
47782 This is triggered by this code in gdb.server/multi-ui-errors.exp:
47793 to be printed, and then, after some time the inferior will be
47806 In this case the end anchor means that the gdb_test fails to match,
47809 Fix this by passing -no-prompt-anchor to gdb_test.
47817 files, each calling the function, and GDB is asked to jump to a line inside
47819 solution in this commit is to select the location in the current symtab.
47826 Add "args" and "env" parameters to DAP launch request
47836 Add attributes and methods to gdb.Inferior
47837 This adds two new attributes and three new methods to gdb.Inferior.
47839 The attributes let Python code see the command-line arguments and the
47840 name of "main". Argument setting is also supported.
47842 The methods let Python code manipulate the inferior's environment
47853 Don't optimise bfd_seek to same position
47854 It's not worth avoiding an fseek to the same position, and can cause
47863 intervening call to fflush() or to a file positioning function
47865 by output without an intervening call to a file positioning function,
47882 Add global_context parameter to gdb.parse_and_eval
47883 This adds a 'global_context' parse_and_eval to gdb.parse_and_eval.
47887 meaning "global" -- but then there didn't seem to be a clean way to
47894 Add flags to parse_and_eval
47895 This adds a flags parameter to parse_and_eval.
47899 to respect it. This flag lets callers avoid any change to the
47901 exactly. In particular, now nullptr can be used to indicate that the
47905 This adds a new PARSER_DEBUG constant and changes the parser code to
47913 parser_state::comma_terminates ought to be boolean, and changing it
47921 This patch adds a new parser_flags type and changes the parser APIs to
47925 Move innermost_block_tracker to expression.h
47928 that are used by code that wants to call a parser. Following this
47929 logic, this patch moves innermost_block_tracker to expression.h.
47932 This minorly rearranges parse.c to avoid the need for a forward
47936 This implements the DAP loadedSources request, using gdb.execute_mi to
47937 avoid having to write another custom Python API.
47942 This adds a new Python function, gdb.execute_mi, that can be used to
47954 command name and vector of arguments, and does not do any escape
47955 processing. This also changes mi_parse::args to handle parse objects
47963 Change the mi_parse function to be a static method of mi_parse. This
47966 Change mi_parse_argv to a method
47967 This changes mi_parse_argv to be a method of mi_parse. This is just a
47971 This changes mi_parse::args to be a private member, retrieved via
47972 accessor. It also changes this member to be a std::string. This
47973 makes it simpler for a subsequent patch to implement different
47977 This changes mi_parse to use member initializers rather than a
47978 constructor. This is easier to follow.
47984 This does not make a difference to ordinary MI clients.
47991 pager_file::puts that causes lines_printed to be incremented. If
47992 lines_printed becomes greater than or equal to lines_allowed, the
47996 space clear_current_line immediately moves the cursor to the beginning
48000 Additionally it's possible for gdb to crash during this pagination prompt.
48001 Answering the prompt with 'q' throws an exception intended to bring gdb
48002 back to the main event loop. But since commit 0fea10f32746,
48004 The exception will try to propagate through the destructor, causing an abort.
48007 clear_current_line is also renamed to clear_progress_notify to help
48024 when using 'ld -r' (or as in the testcase when jumping through hoops to
48027 to that place ignores whatever is there (as they can according to
48032 is caused by the garbage collection data-structure to describe a type
48033 containing pointers to be wrong. It's wrong because a field that's
48034 supposed to contain a file-relative offset (to some gcbits) has a
48102 based on rbp, while clang adds the same constant to rsp that it
48106 This commit fixes that by adding a return instruction to f, which leaves
48117 register names anymore). Be careful though to tell closing from opening
48124 it to allow access to symbols with names matching that of a register (or,
48127 This is primarily to aid gcc when generating Intel syntax output; see
48206 When assigning the new value to tui_border_lrcorner, an entry->value of -1 is
48207 taken into account, but not when comparing to the current value of
48221 I recently added a 'dap' component to bugzilla, and I filed a few bugs
48225 I'll be submitting eventually; in others I think I need to do a bit of
48226 investigation to properly file a bug report.
48230 gdb: add Richard Bunt to gdb/MAINTAINERS
48235 Add a new proc Term::get_line_with_attrs, similar to Term::get_line, that
48265 Revert value of DT_ENCODING to as it was before commit a7fd118627, and
48269 * elf/common.h (DT_ENCODING): Set back to 32.
48277 As a developer it is sometimes useful to know how many times stubs
48292 the calculation could overflow. Note that stabsize is known to be a
48302 I started down the path of attempting to fix
48304 decided after a while that I didn't want to mess with this code..
48307 one being reporting of errors up the call chain. The while loop to
48311 flagword*, and adjust to suit. Replace while loop with for
48313 coff_comdat_info and name in one call to bfd_alloc. Remove
48320 The tic54x backend provides its own coff_set_arch_mach, but wants to
48322 defines both of these functions, so the code also provides a wrapper
48324 mission to remove unnecessary declarations in coffcode.h, and on
48328 definition but the latter is not usual and looks odd to me. So I
48330 very likely wrong to allow bfd_arch_unknown. Thus the backend should
48362 executing commands") attempted to fix possible use-after-free
48366 updated the previous fix to handle subcommands as well by using the
48367 original command string to lookup the command again after its execution.
48372 The problem is that the command buffer P passed to execute_command ()
48378 …#2 0x000055555711e911 in remote_target::open_1 (name=0x55555881c7fe ":1234", from_tty=1, extended…
48380 …#3 0x000055555711d577 in remote_target::open (name=0x55555881c7fe ":1234", from_tty=1) at remote.…
48387 Therefore the second call to lookup_cmd () at line 697 fails to find
48392 execution to lookup the command again. It may not be the most efficient
48394 in hard-to-foresee situations.
48407 correctly prior to printing a value. The same issue was discovered when
48409 Porting the fix to the mi-mode code path resolved the issue.
48413 code paths, making the original fix unneeded.
48416 the mi-mode scenario to protect against any future divergence in this
48448 GDB's symtab_and_line lookup, we try to find a result for an address,
48454 However, I think adding extra protection to prevent walking off the
48476 since that commit was added to GDB. I don't know why the test wasn't
48478 pretty gross, it uses objcopy to pull the .text section from an object
48482 ... these days we can just make use of the DWARF assembler to achieve
48484 adding this to upstream GDB.
48487 line table entry, and what to do when GDB can't find a good match.
48493 With the above patch reverted I did run the testsuite to see what
48506 large, so it's not a huge cost to also run this new test.
48521 the main one is probably that real warnings are sent to gdb_stderr,
48522 while the above gdb_printf call will go to gdb_stdout.
48526 1. Change to call `warning`, we can drop the "warning: " prefix from
48549 gdb/python: extend the Python Disassembler API to allow for styling
48577 * The R_RISCV_SET_ULEB128 needs to be paired with and be placed before the
48586 to encode the uleb128 into the section contents.
48595 New relocations to support .uleb128 subtraction.
48599 (s_riscv_leb128): Updated to allow uleb128 subtraction.
48617 * The disassemble_free_target seems like the right place to release all target
48619 Therefore, add a new function, disassemble_free_riscv, to release them for safe.
48623 for riscv to release private_data and internal data structures.
48625 * riscv-dis.c (riscv_init_disasm_info): New function, used to init
48629 (print_insn_riscv): Called riscv_init_disasm_info to init
48631 (disassemble_free_riscv): New function, used to free the internal data
48642 x86: further adjust extend-to-32bit-address conditions
48645 certain bogus uses of constants to no longer be warned about. Leverage
48646 the md_optimize_expr() hook to adjust when to actually truncate
48647 expressions to 32 bits - any involvement of binary expressions (which
48649 doing so. Plain constants (or ones merely subject to unary operators)
48651 !BFD64, and hence are okay to permit.
48654 - slightly extend optimize_imm() (to be honest I never understood why
48655 the code being added - or something similar - wasn't there in the
48658 warnings, as there should be for any code which won't build [warning-
48665 Give backends a chance to see these, just as they can see binary ones.
48677 abstract operator applied to two operands which aren't both unsigned
48678 can't be assumed to yield an unsigned result; exceptions are
48681 deliver 0 or ~0, as opposed to '!', which yields 0 or 1),
48686 being common, it is highly inappropriate to state that these directives
48691 x86: tighten extend-to-32bit-address conditions
48695 calls to extend_to_32bit_address(), also check whether we're generating
48706 letters in its argument, so it's weird to write it using upper-case
48768 Change the test to read the values from the lb and ub function
48770 we want to test. These variables contain the return values of the
48772 to check the return values of the lbound and ubound functions as
48781 In the current code, when execute the following test on LoongArch:
48789 According to IFUNC's working process [1]. first time the IFUNC function
48796 a .plt entry address to fill in the corresponding .got.plt entry.
48798 In gdb, elf_gnu_ifunc_resolve_addr() will be called to return a real
48799 IFUNC function addresss. First check to see if the real address for
48802 elf_gnu_ifunc_resolve_name (const char *name, CORE_ADDR *addr_p)
48804 if (elf_gnu_ifunc_resolve_by_cache (name, addr_p))
48807 if (elf_gnu_ifunc_resolve_by_got (name, addr_p))
48819 go back to execute the resolver function and puts the return address
48826 section. This symbol is the first plt entry, so gdb needs to check
48889 Re: Add section caches to coff_data_type
48917 we use few negative tests to lookup FREs with PCs not in the range of
48931 libsframe provides an API to find the FRE associated with a given PC in
48937 testing for the sframe_find_fre () function which is going to be the
48949 Re: Add section caches to coff_data_type
48957 by xcoff_write_global_symbol due to the hash table pointer being
48959 mkobject_hook is the wrong place to do that.
48996 to construct them from components. In this case it tries to make a
48997 pointer-to-"str" -- but "str" isn't always available, and in any case
49020 Found when attempting to build binutils on sparc sunos-5.8 where
49022 variants. This patch adds the extra tests to cope with the old
49033 Trying to build binutils with an older gcc currently fails. Working
49040 variable to "status".
49058 Static function name is not available in stripped libraries.
49059 In this case, gprofng maps PC to a fake function like <static>@0xPC (<libname>).
49102 Document how to use the linker to create a resource only DLL.
49104 * ld.texi (WIN32): Document how to create a resource only DLL.
49108 Add section caches to coff_data_type
49113 * coff-x86_64.c (coff_amd64_rtype_to_howto): Use the new tables to speed up lookups.
49150 gdb/testsuite: extend special '^' handling to gdb_test_multiple
49169 get_integer_valueof call to fail.
49172 munmap on a page of the inferior's code. The test is checking that
49174 removed (due to the page no longer being readable/writable).
49176 The test that is supposed to trigger the warning is later in the test
49187 If this location happens to be on the same page as the page that the
49189 will not be able to remove the temporary breakpoint that is inserted
49190 to catch the inferior function call returning! As a result we end up
49197 However, I don't think this the right way to go. With the change in
49201 So, I think, in this case, in order to handle the possible extra
49210 gdb/python: extend the Python Disassembler API to allow for styling
49211 This commit extends the Python Disassembler API to allow for styling
49214 Before this commit the Python Disassembler API allowed the user to do
49222 libopcode to perform the disassembly. As libopcode printed the
49231 This commit aims to fill this gap. After this commit a user will be
49232 able to do the following things:
49236 be able to return styling information such that GDB will display
49244 result to GDB. Again, the instruction will be styled as expected.
49246 To achieve this I will add two new classes to GDB,
49254 the associated style that should be used to display the text. This
49255 corresponds to the disassembler calling
49261 associated symbol, this corresponds to the disassembler calling
49274 Finally, when we return from Python to gdbpy_print_insn, one way or
49276 GDB's C++ code we walk the list of parts and call back into GDB's core
49277 to display the disassembled instruction with the correct styling.
49279 The new API lives in parallel with the old API. Any existing code
49294 address which the part represents, but in order to support backwards
49295 compatibility we need to be able to convert the
49296 DisassemblerAddressPart into a string. To do that we need to call
49297 GDB's internal print_address function, and to do that we need an
49300 What this means is that the DisassemblerAddressPart needs to take a
49317 Unfortunately, in order to make the styling support available, I think
49318 the easiest solution is to make a very small change to the existing
49321 The current API relies on returning a DisassemblerResult object to
49323 DisassemblerResult class to be sub-classed, which could mean that a
49324 user tries to override the various attributes that exist on the
49330 Though this is a change to the existing API, I'm hoping this isn't
49331 going to cause too many issues:
49334 of GDB, so I don't expect it to be widely used yet, and
49336 - It's not clear to me why a user would need to sub-class the
49338 because at the time I couldn't see any reason to NOT allow it.
49343 Python object back to its C++ type (disasm_result_object), and access
49345 the disasm_result_object type in order to hold information about the
49362 The cooked index scanner has special code to handle forward DIE
49363 references. However, a bug report lead to the discovery that this
49364 code does not work -- the "deferred_entry::spec_offset" field is
49365 written to but never used, i.e., the lookup is done using the wrong
49372 objfiles" and then inspects to ensure that the entry in question has a
49416 Testing for NULL in pic_need_relax fixes the other call to this
49420 * config/tc-mips.c (mips_frob_file): Move NULL sym test to..
49426 The answer to PR28902 may be deduced from the existing INSERT
49436 * ld.texi (INSERT): Specify ordering when -T is used both to
49437 override the default script and to augment.
49445 Fix regression due to Pragma Import series
49457 matches refer to the same function.
49465 This changes remove_extra_symbols to use bool rather than int, and
49466 changes the nested loops to exit early when "remove_p" is set.
49469 Changing ada-lang.c:remove_extra_symbols to take a reference parameter
49470 makes the code a bit easier to read, by replacing "(*syms)" with plain
49474 Ada can import C APIs and also export Ada constructs to C via Pragma
49475 Import and Pragma Export. This patch adds support for these to gdb,
49476 by arranging to either defer some aspects of a symbol to the
49480 symbol names in an unusual way (as compared to the rest of gdb).
49483 This adds a new callback to symbol_block_ops. This callback lets a
49484 LOC_BLOCK symbol implement its own function to find the underlying
49489 A subsequent patch will change this method to use SYMBOL_BLOCK_OPS,
49490 and it seemed simplest to move this method out-of-line, and cleaner to
49495 the number to go over the current maximum. This bumps the number.
49501 refactors a couple other existing functions to call it. This function
49506 gdb: remove unnecessary call to std::string constructor
49507 I spotted this explicit call to std::string, which creates an
49524 This patch adds dynamic::is_constant and then updates these checks to
49532 I noticed that gdb's DAP code did not provide a way to see register
49534 This patch also adds the missing (and optional) "presentationHint" to
49544 'pck.plus_one' has unknown return type; cast the call to its declared return type
49556 sometimes depending on how the user is trying to print the object.
49569 Some small improvements to the Python Disassembler API documentation:
49573 * Rework the description of the DisassemblerResult class to include
49578 gdb/testsuite: extend special '^' handling to gdb_test_multiple
49586 Added some special handling of '^' to gdb_test -- a leading '^' will
49587 cause the command regexp to automatically be included in the expected
49591 supposed to work in the same way as gdb_test, and that the recent
49598 gdb_test "command" "^output" "test name"
49600 gdb_test_multiple "command" "test name" {
49606 In both cases the '^' will case gdb.exp to inject a regexp that
49608 addition to adding the $gdb_prompt pattern after 'output' in the
49612 is the only mode that aims to mimic gdb_test.
49617 and gdb_test_multiple in order to keep these two paths in sync.
49622 as it turns out trying to match a single blank line is probably harder
49623 now than it used to be -- still, I suspect this is a pretty rare case,
49635 Notice that GDB claims I need to use a setting from the 'show'
49637 need to use a setting from 'maintenance show'.
49662 The DW_OP_constu pushes a value with "generic type" on to the DWARF stack, and
49675 We could just add require is_target_64 to the test-case, but instead, add a
49688 due to is_target_64 failing because of:
49733 Gdb uses readline to auto-detect screen size, and readline decides in the
49735 consequently decides to hide the last terminal column from the readline user
49744 This type of wrapping attempts to wrap some of the gdb output earlier
49745 than the indicated width, to not break lines in inconvenient places.
49772 - readline hides the last column, setting the readline screen width to 39,
49773 - readline reports 39 to gdb as screen width,
49774 - gdb sets its width setting to 39,
49775 - gdb sets readline screen width to 39,
49776 - readline hides the last column, again, setting the readline screen width to
49783 Say we set the terminal width to 56. With TERM=xterm, we have:
49794 So what happened here? With TERM=ansi, the width setting is auto-detected to
49824 I didn't manage to come up with a regression test for PR cli/30411. Perhaps
49845 With the switch to parse_real_register() (commit 4faaa10f3fab) "bad_reg"
49854 to guard the involved symbols against re-definition (both ways).
49861 symbol_init() set their expressions to O_register,
49863 trying to "look through" equates; probably symbol_equated_p() should
49866 - various targets need to "look through" equates when parsing insn
49868 more ought to, but many don't look to consider the possibility of
49871 This was uncovered by code reported in PR gas/30274 (duplicating
49874 gas wouldn't crash anymore; the code there still won't assemble
49890 I tracked this down to some issues in the DWARF expression code.
49917 A pattern in crc_mismatch.exp fails to be matched if a progress message
49918 includes a file size. Add a wildcard to the pattern so that it matches
49925 the watchpoint's disposition to `delete at next stop' and then normal
49928 set to `delete at next stop'.
49930 Suppose a Python script decides not to normal stop when a local
49932 automatically deleted even when its disposition is set to
49937 watchpoint to be hit many more times than it should, as reported in
49944 of scope. It also adds a test to ensure this feature isn't regressed in
49948 `fetch_inferior_event') seem to solve this issue, but is in fact
49958 Add "scheduler-locking" to documentation index
49971 decides to use the object in the first place, but use of this _p
49972 interface (called as part of trying to decide whether to use the
49973 object) results in the plugin deciding to use its offload data (and a
49976 The new hook allows the linker plugin to distinguish calls to
49988 (bfd_link_plugin_object_p): Update call to ld_plugin_object_p.
49990 (bfd_plugin_object_p): Update call to ld_plugin_object_p.
50003 (plugin_object_p): Add second argument. Update call to
50008 (plugin_maybe_claim): Update call to plugin_object_p.
50044 The last line number in the source file is 5, and there are 7 lines to display
50048 To represent 11 we'd need 2 digits, so we expect to see ___04_ here instead of
50087 dumping code is not exercised as much as it might be, I would rather
50088 that this code be hardened and able to handle a nullptr without
50107 evaluation of this expression requires the target program to be active
50110 There's a new test to check for this case.
50123 or1k relocation truncated to fit: R_OR1K_GOT16 even when using -mcmodel=large
50129 Add linker option to include local symbols in the linker map.
50131 …* ldlang.c (ld_is_local_symbol): New function. (print_input_section): Add code to display local sy…
50189 only a single space to separate the line numbers from the source.
50193 source doesn't start at a tab stop, instead it uses a single space to separate
50200 to "1" in the compact case.
50202 The abbreviation is due to allocating space for <lines in source>, which is
50208 The missing space is due to some confusion about what the "1" here in
50217 /* How many digits to use when formatting the line number. This
50259 Also fix the documentation and help text to actually match effect of
50271 On Linux at least, baud rate codes are defined up to B4000000. Allow the
50272 user to select them if they are present in the system headers.
50290 The old code worked around that by manually changing B_TMP, which was
50300 (Note that this seemed to assume that b->related_breakpoint->next was
50303 The new code kept the B_TMP variable, but it's not useful in that
50306 breakpoints to delete in a map and deleting them all at the end.
50310 (gdb) PASS: gdb.base/stale-infcall.exp: continue to breakpoint: break-run1
50471 When stopped inside an inline function, trying to jump to a different line
50472 of the same function currently results in a warning about jumping to another
50506 (make_import_fixup): Similarly. Add debug code from pep.em.
50510 PR30343, LTO ignores linker reference to _pei386_runtime_relocator
50511 Make a reference to _pei386_runtime_relocator before LTO recompilation.
50515 I also found it necessary to enable long section names for the bfd
50517 it out to the bfd-in-memory we get the section written as .rdata_r
50518 which when read back in leads to a linker warning ".rdata_r: section
50525 * emultempl/pep.em: Similarly to pe.em.
50557 I think objfile::sections makes sense as the name of the method to
50559 field to objfile::sections_start in preparation for that.
50568 Python pretty-printers haven't applied to static members for quite
50569 some time. I tracked this down to the call to cp_print_value_fields
50571 chance to print the value. This patch fixes the problem.
50573 The way that static members are handled is very weird to me. I tend
50574 to think this should be done more globally, like in value_print.
50597 neglects to omit types. This patch fixes the problem.
50609 gdb/python: add mechanism to manage Python initialization functions
50610 Currently, when we add a new python sub-system to GDB,
50611 e.g. py-inferior.c, we end up having to create a new function like
50612 gdbpy_initialize_inferior, which then has to be called from the
50619 This commit proposes a mechanism to manage these initialization and
50621 no longer require changes to python.c or python-internal.h, instead,
50639 GDBPY_INITIALIZE_FILE, which hides the need to create an object. We
50655 protection I guess we'd need to run all gdb.python/*.exp tests with
50662 function previously returned void. In order to make this function
50663 have the correct signature I've updated its return type to int, and we
50664 now return 0 to indicate success.
50693 doesn't care. Also, as expect is happy to skip non-matched output
50694 at the start of a pattern, if there is a newline expect is happy to
50709 output, which we now need to explicitly match in the test script, this
50718 newline sequence. Now we rely on gdb.exp to match the complete
50756 FILENAME any more -- yet this test script continued to pass. It turns
50759 This commit extends the test pattern to check for the full warning
50760 string, including FILENAME, and also removes some uses of '.*' to make
50777 This didn't make sense to me. I looked into it a bit more, and I
50780 1. Find a constant address of a symbol that happens to be encoded as a
50784 probably be replaced by code to just evaluate the expression in
50786 actually seems to emit correct DWARF here, see the bug linked in
50794 don't fit into the above. It also changes the API a little, to make
50795 it less difficult to use.
50802 This simplifies auto_load_expand_dir_vars to first split the string,
50838 …s): If any debug sections are marked then rerun the extra marking in order to pick up any dependen…
50846 Revert "gdb/testsuite: add KFAILs to gdb.reverse/step-reverse.exp"
50857 Don't treat references to compound values as "simple".
50860 The '--simple-values' argument to '-stack-list-arguments' and similar
50862 references to arbitrarily large structures are considered "simple" and
50864 by IDEs when tracing the stack due to the time taken to print large
50872 In the '--simple-values' case, the command is supposed to print the
50873 name, type, and value of variables with simple types, and print only the
50874 name and type of variables with compound types.
50876 The '--simple-values' argument ought to be suitable for IDEs that need
50877 to update their user interface with the program's call stack every time
50902 If we start GDB in MI mode and continue to 'sum', the behaviour of
50907 …^done,stack-args=[frame={level="0",args=[{name="s",type="const s &",value="@0x7fffffffe310: {v = {…
50910 a reference to a structure, which is not a simple value.
50913 behaviour caused Microsoft to avoid the use of '--simple-values' in
50914 their MIEngine debug adapter, because it caused Visual Studio Code to
50915 take too long to refresh the call stack in the user interface.
50920 consider the current behaviour to be a bug.
50925 union, nor a reference to an array, struct or union.
50927 In this case we must add a feature to the '-list-features' command so
50928 that IDEs can detect that it is safe to use the '--simple-values'
50935 In this case we must add a feature to the '-list-features' command
50942 not printing structures, but printing references to structures, is
50943 contrary to reasonable expectation.
50949 Stop the linker from loosing the entry point for COFF/PE code when compiling with LTO enabled.
50951 …* emultempl/pep.em (set_entry_point): Add an undefined reference to the entry point if it has been…
50957 …* scripttempl/pru.sc (OUTPUT_SECTION_ALIGN): New helper variable to place at end of DMEM output se…
50968 to the relocation function ought to be parenthesized. Enforcing this
50987 …gas/config/tc-bpf.c:900:14: error: comparison is always false due to limited range of data type [-…
50991 Change its type to int, like in the other similar code.
50999 -Wmaybe-uninitialized doesn't seem to understand the FSM; just
51000 initialize bpf_endianness to silence it. Add an assertion to
51001 build_bpf_endianness() in order to catch potential bugs.
51007 The default output is set to r6 if the vendor is img,
51042 to be called before the destructor of frame_list.
51054 + frame_list. Attempting to erase ourselves would then trigger
51079 gdb/show_args_command: print to the ui_file argument
51081 This means that it prints to gdb_stdout instead of the stream given as
51082 an argument to the function.
51091 * archive.c (_bfd_write_archive_contents): Use a larger buffer in order to improve efficiency.
51121 because it can inline enough code in this specific case).
51147 bfd/doc/chew.c extracts documentation from source code comments
51150 adding things like CODE_FRAGMENT to the source to put code into bfd.h
51152 code into the docs. So we have random senseless things in the docs.
51154 CODE_FRAGMENT), moves most of the code out of bfd-in.h, and improves a
51160 Move bfd_alloc, bfd_zalloc and bfd_release to libbfd.c
51164 * opncls.c (bfd_alloc, bfd_zalloc, bfd_release): Move to..
51172 Move bfd_elf_bfd_from_remote_memory to opncls.c
51174 could be implemented for other formats. Move it to opncls.c because
51179 * elf.c (bfd_elf_bfd_from_remote_memory): Move to..
51227 expression from (lo+0x8000)&0xffff to (lo&0xffff)^0x8000 which better
51241 ERROR: tcl error code TCL READ VARNAME
51255 pointer to it is assigned to the global inclTable array subfile
51275 process_linenos to take a pointer to the subfile.
51297 program completed execution and goes to pd_disable () inferior_ptid
51298 had pid 0 leading to an assertion failure while finding the thread's data
51325 I noticed this when I tried to set CXX_FOR_TARGET (but not
51339 the parameters up to the implementation:
51345 defines. Note that I plan to add more parameters here, and perhaps
51369 gdb: move struct ui and related things to ui.{c,h}
51370 I'd like to move some things so they become methods on struct ui. But
51371 first, I think that struct ui and the related things are big enough to
51389 Removing it makes the code a little nicer.
51393 expression. Removing it also removes a lot of ugly (IMO) calls to
51404 "[23]") caused the Rust expression parser to crash.
51411 This changes field_is_static to be a method on struct field, and
51424 (maximized) to 20/78 (de-maximized), I get a garbled screen (that ^L doesn't
51439 As it happens, when TERM is set to ansi, readline decides that the terminal
51440 cannot auto-wrap lines, and reserves one column to deal with that, and as a
51468 Another way to reproduce the problem is using command "maint info screen".
51483 - using readline_hidden_cols in tui_resize_all to fix the resize problem, and
51527 Latest libc++[1] causes transitive include to <locale> when
51529 gdb to not build[2] since <locale> defines isupper/islower etc.
51530 functions that are explicitly macroed-out in safe-ctype.h to
51532 Use the suggestion from libc++ to include <locale> internally when
51533 building in C++ mode to avoid build errors.
51535 to keep this isolated to gdb since rest of binutils
51536 does not seem to use much C++.
51552 (gdb) FAIL: gdb.ada/excep_handle.exp: continuing to first Constraint_Error \
51556 The output is supposed to be matched by:
51560 "continuing to first Constraint_Error exception handlers"
51562 but the $eol bit no longer matches due to the stricter matching introduced
51630 …r: print_thread_id: Assertion `thr != nullptr' failed.\nA problem internal to GDB has been detecte…
51642 to use the CLI 'info breakpoints' command GDB throws an assertion.
51643 The assert is a result of the print_thread_id call when trying to
51656 The CLI doesn't allow a breakpoint to be created for a non-existent
51662 parallel, so we need to solve this problem.
51664 One option would be to change the CLI behaviour to allow printing
51668 The other option is to pull the MI into line with the CLI and prevent
51672 In the end I figured that it was probably better to retain the
51673 consistent CLI behaviour, and just made the MI reject requests to
51683 I certainly didn't intend for this test to rely on this feature of the
51684 MI, so I propose to update this test to only create breakpoints for
51689 to run with the separate MI/CLI UIs, and then tested 'info
51690 breakpoints' to ensure this command doesn't crash.
51692 I've extended the documentation of the `-p` flag to explain the
51720 cli-setshow.c, so lets make the function static to discourage its use
51731 to work with $_gdb_setting_str.
51734 current inferior from a set callback, move to the API that allows for
51738 Update an existing test to check the inferior-tty setting.
51749 current inferior from a set callback, move to the API that allows for
51753 Update the existing test to check the cwd setting.
51763 Argument list to give program being debugged when it is started is "arg1 arg2 arg3".
51778 only ever reflect the last call to 'set args ...' regardless of which
51786 While working on set/show args I also rewrote show_args_command to
51794 In infcmd.c, in order to add command completion to some of the 'set'
51800 can use that to set the command completion callback.
51803 commands, but I manually checked, and each command still appears to
51822 Let's use this simpler program to illustrate the problem:
51831 It compiles down to:
51887 doesn't get to see and record them all.
51890 before handing the resume request to the beneath layer, forcing the
51891 remote target to report stops for each instruction.
51898 PR 13098 explains that if a user attempts to use a string with either
51902 evaluation of this expression requires the target program to be active
51910 this specific case. The passed-in value that we are attempting to print
51913 printf_c_string will only attempt to print a string from the value's
51917 if (value->type ()->code () != TYPE_CODE_PTR
51924 Otherwise, it attempts to read the value of the string from the target's
51930 Move find_minimal_symbol_address to minsyms.c
51931 I found find_minimal_symbol_address in parse.c, but it seems to me
51939 get_discrete_low_bound has this code:
51945 It's bad to modify a type in a getter like this, so this patch removes
51946 this code. FWIW I looked and this code has been there since at least
51950 probably reveal more code like this, but I haven't attempted that.
51962 name.
51978 included in the patterns passed to gdb_test. After the above commit
51980 additional trailing newline characters are now causing the test to
51985 made use of multi_line to better build the expected output pattern.
51990 Use run_cc_link_tests for PR ld/26391 tests to compile PR ld/26391 tests
52006 in fact, but just use the same function to handle.
52010 set gp to zero when --no-relax-gp, then we should still keep the
52018 RISC-V: Relax R_RISCV_[PCREL_]LO12_I/S to R_RISCV_GPREL_I/S for undefined weak.
52021 just relax the R_RISCV_LO12_I/S to R_RISCV_GPREL_I/S, and then don't
52022 update the rs1 to zero until relocate_section.
52027 x86: limit data passed to i386_dis_printf()
52031 x86: limit data passed to prefix_name()
52032 Make apparent that neither what "ins" points to nor, in particular, that
52040 ... out of mainline code, grouping together the two case labels. This
52041 then also make more obvious that the comment there applies to both forms
52050 - a wrong M_0 suffix for TILEZERO is also corrected to be M_1 (now an
52058 course of the re-work wrong M_0 suffixes are also corrected to be M_1
52062 test name in x86-64-amx-bad.d (to be distinct from x86-64-amx.d's).
52068 the comment added to _bfd_xcoff_openr_next_archived_file. While
52069 fixing this, tidy some types used to hold unsigned values so that
52070 casts are not needed to avoid signed/unsigned comparison warnings.
52092 20+ years is long enough to warn.
52163 …prog.adb:16:11: warning: file name does not match unit name, should be "main.adb" [enabled by defa…
52172 required. While its unbalanced and hence can degrade to a linear list
52173 it should otherwise have been equivalent to the old code relying on
52174 insertion sort. Unfortunately it was not. The old code directly used
52175 lang_add_section to populate the sorted list, the new code first
52181 limited the to-be-sorted list length previously. The tree-sorting code
52185 about 1500 to 106000, and in the degenerated case (as in the testcase)
52188 This splits out most of the early-out code from lang_add_section to its
52189 own function and uses the latter to avoid inserting into the tree. This
52193 might change output_section, like the old early-out code did. I have
52195 non-existence seemed to have been an oversight.
52200 (output_section_callback_sort): Use wont_add_section_p to not
52201 always add sections to the sort tree.
52207 to the jump command I noticed a long standing bug that points out a
52211 $pc = 0x...' and then 'continue'. Writing directly to the $pc
52215 It felt like this would be an easy issue to address by adding a
52216 paragraph to the docs, so I took a stab at writing something suitable.
52240 ... except it doesn't. The command itself will also needs to be
52246 the command and include some regexp character, then I have to write:
52265 My hope is that given this new ability, folk will be more inclined to
52266 anchor their output patterns when this makes sense to do so. This
52267 should increase our ability to catch any unexpected output from GDB
52270 There is one problem case we need to consider, sometime people do
52275 In this case no command is sent to GDB, but we are still expecting
52277 event for example. As there is no command sent to GDB (from the
52278 gdb_test) there will be no command text to parse.
52294 I've tried to run all the tests that I can to check this commit, but I
52295 am certain that there will be some tests that I manage to miss.
52304 This commit makes two changes to how we match newline characters in
52308 prompt, I propose changing from '[\r\n]+' to an explicit '\r\n'.
52311 places where, as part of this commit, I've needed to add an extra
52312 trailing '\r\n' to the pattern in the main test file, where GDB's
52318 appears in the output, this is going to be silently ignored, and I
52328 period, which has since been remove, but I haven't bothered to check
52333 needs to match everything up to, but not including the newline
52339 also removed the '[\r\n]*' that was added to the start of the pattern
52340 passed to gdb_test_multiple.
52344 newline sequence. But, due to the '*', if the user pattern doesn't
52348 As such, there's no value to it, it just adds more complexity for no
52363 behaviour -- I prefer to be explicit about what we are doing. So in
52364 this commit I have extended the comment on gdb_test_no_output to
52368 This should make no different to our testing, but I think it's clearer
52369 now what the gdb_test_no_output proc is expected to do.
52372 return value of gdb_test_no_output, and continue to pass after this
52375 I also spotted that gdb.base/watchpoint.exp could be updated to make
52397 of the warning message (in addition to the trailing newline), which
52398 I've removed. I don't think it's helpful to forcibly split a warning
52418 The test tries to find the number of the first internal breakpoint
52432 place. The user created breakpoints include the path to the source
52441 Sometimes my directory name might be '/tmp/blah-4/gdb/etc', in which
52447 But sometimes my directory name might be '/tmp/blah-0/gdb/etc', in
52473 Add support for %x and %lx formats to the linker's vinfo() function.
52495 X-extension to be specified in addition to the known ones from this
52499 requirements for X-extensions (which are likely to be captured in the
52505 to ensure that they neither conflict with future standard
52515 * doc/c-riscv.texi: Add section to list custom extensions and
52530 Series-to: binutils@sourceware.org
52539 This patch expands the GAS manual in order to specify the alternate
52553 This patch expands the GAS BPF testsuite in order to also test the
52562 - New tests are added to the BPF GAS testsuite that test the pseudo-c
52565 - New tests are added to the BPF GAS testsuite that test the support
52593 This patch adds support to the GNU assembler for an alternative
52596 clang/llvm and is also used in inline asm templates in kernel code, so
52597 we ought to support it.
52599 After this patch, the assembler is able to parse instructions in both
52602 assembler recognizes the right syntax to use.
52640 sim: bpf: update to new BPF relocations
52641 This patch updates the BPF GNU sim testsuite in order to match the new
52669 Simon pointed out that the recent changes to gdb_mpz caused a build
52670 failure on amd64 macOS. It turns out to be somewhat difficult to
52673 desirable to special case all integer types that are no wider than
52676 After a false start, I came up with this patch, which seems to work.
52686 code for Linux, but fbsd also needs updating.
52706 Bit twiddling is best done unsigned, due to UB on overflow of signed
52713 3) Introduce get16s and get8s functions to simplify the code.
52716 a fall-through in OP_I. Fix that. OP_I also doesn't need to use
52719 5) Masking with & 0xffffffff is better than casting to unsigned. We
52725 some places we might as well be consistent. (Better would be to use
52733 That doesn't work. Those variables ought to be passed on the runtest
52736 After fixing that I had some fails due to binutils testprog.c now
52742 happened to be built without --debug-id being enabled by default.
52746 environment. Add -O0 to CFLAGS_FOR_TARGET.
52754 write.c:415:7: error: dangling pointer ‘prev_frag’ to ‘dummy’ may be used
52757 while to avoid false positive -Wdangling-pointer.
52766 One spot in varobj.c should use scoped_restore to save and restore
52767 input_radix. Note that the current code may fail to restore it on
52776 them cleans up the code. Regression tested on x86-64 Fedora 36.
52791 (and ignore it, as being not equal to the currently considered
52794 Rewrite this to not use lookup_name but retain the comparison
52795 against local_sym_name with a comment to that effect.
52803 RISC-V: adjust logic to avoid register name symbols
52804 Special casing GPR names in my_getSmallExpression() leads to a number of
52806 limited to when instruction operands are being parsed (really: probed).
52816 is permitted. Before altering how this is to be dealt with, install two
52823 relocation operators not fitting an insn, it is no longer necessary to
52824 hand it percent_op_itype[] "just in case" (i.e. to avoid errors when a
52835 anyway. Suppress the call to my_getExpression() in such a case,
52856 prefix, so there's no need to check for it again in the strncasecmp()
52857 and there's also no reason to make the involved string literals longer
52871 # Due to the strange column resizing behavior, and because we
52876 because the string we're trying to match is split over two lines:
52983 The Term::command "layout src" is waiting to match:
52987 The first part fails to match on a line:
53010 tries to match "(gdb) $cmd", but due to the long file name, $cmd is split up
53037 because it tries to match "(gdb) $cmd" but $cmd is split over two lines:
53056 The semantics of wait_for are non-trivial, and a bit hard to understand
53060 - what regexps we're trying to match,
53061 - what strings we compare to the regexps, and
53067 The debug prints are enabled by adding DEBUG_TUI_MATCHING=1 to the
53149 The last FAIL is due to:
53158 Attempt to use a type name as an expression^M
53165 -O2 -g -flto=auto, I run into timeouts due to the breakpoint in c_print_type
53173 While writing a gdb_test_multiple call in a test-case I tried to use -wrap in
53201 When using a compiler defaulting to -std=gnu90, we run into:
53210 -std=gnu11 to compile your code
53241 The problem is that the test-case attempts to use gcc -m32 to produce an
53258 ERROR: invalid command name "lmap"
53306 The testcase managed to trigger creation of a wild pointer in
53308 problem I happened to see in bfd_coff_get_syment.
53311 converting n_value from a pointer to an index.
53313 symbol value before converting to a pointer.
53321 * objcopy.c (copy_archive): Rename output_bfd to output_element.
53367 asm code with lots of debug info.
53387 used as the cpu name in triple.
53414 When running the gdb.dlang test-cases, and forcing gdb_find_gdc to be used
53434 We should exclude matches to the ending PC to prevent false matches with the
53465 construct of the "set language" command to say "pick the appropriate
53467 `current_language` points to the current effective language, and the
53471 - Change set_language to handle the "auto" (and "local", which is a
53475 - Adjust add_set_language_command to hard-code the "auto" string,
53478 - Remove auto_language, rename auto_or_unknown_language to
53491 is used to indicate that we don't know the symbol of the minimal
53492 symbol (yet), so language_unknown makes sense to me. Update a
53494 appears to "normalize" this value from "unknown" to "auto", remove
53495 that part and update the condition to just check for
53503 gdb: switch "set language" to getter/setter
53509 Switch the setting to use the add_setshow_enum_cmd overload that takes a
53519 the return value. This lets us remove the assignment to
53537 Each board is slightly different, and developers need to learn how to use each
53538 one, what parameters to pass and how, and which ones can be used in
53539 combination with each other. This is a threshold to start using them.
53544 Add script gdb/testsuite/make-check-all.sh, that's intended to function as a
53576 - Gdb asks readline to detect screen size,
53579 - readline reports back a screen size to gdb, which may have one column
53580 less than the actual screen size, to deal with lack of auto-wrap.
53582 we can expect the gdb command line to wrap),
53584 adjust to deal with lack of auto-wrap. This becomes readlines notion
53618 is due to gdb making readline adjust twice for the lack of auto-wrap, this is
53627 And for TERM=ansi, with width and heigth set to 0:
53644 clear that the values may be not up-to-date. ]
53646 I'd like to use this command in the regression test for PR cli/30346.
53710 This patch adds a new arch hook to handle this scenario, and
53712 to work if this compiler bug is fixed. A GCC patch is here:
53724 an unexpected address. The fix is to use gdbarch_convert_from_func_ptr_addr
53725 to convert from a function descriptor to the address recorded at the
53729 that provoked this bug. However, I'm unable to test it as-is on
53735 get64() is unreachable when !BFD64 (due to a check relatively early in
53737 extend it to remove more dead code).
53746 Make them return boolean and convert FETCH_DATA() uses to fetch_code().
53753 print_displacement() to a signed type as well, though (eliminating the
53763 uses to fetch_code().
53767 to recognize and act upon.
53770 Use a tristate (enum) return value type to be able to express all three
53771 cases which are of interest to the (sole) caller. This also allows doing
53790 Since I'd like the function's parameter to be pointer-to-const, two
53792 needing to be forward-declared).
53797 A semicolon was missing and "name" needs to be pointer-to-const. While
53808 even more, it limits the range to the gp+-2k, which means only the output
53809 section which are in the [gp-2K, gp+2K) range need to be considered.
53821 safe enough to commit.
53830 max_alignment_for_gp. It is used to record the maximum alignment of
53832 (riscv_elf_link_hash_table_create): Init max_alignment_for_gp to -1.
53836 range need to be considered.
53857 element points to the next element. The idea is to allow updating of
53860 fuzzers to create an archive that will cause ar or any other tool
53861 processing archives to hang. I'd implemented guards against pointing
53862 back to the previous element, but of course that didn't last long.
53864 So this patch implements a scheme to keep track of file offset ranges
53866 the add_range function comment. I needed a place to stash the list,
53867 so chose the obvious artdata.tdata backend extension to archive's
53869 while it would be possible to continue using different artdata.tdata
53870 for the big and small archives, it's nicer to use a union.
53894 artdata.tdata used here to pass info down to
53905 other archive specific fields from struct bfd to here, but that's a
53925 In commit 6967633c8b49 ("x86: convert testcases to use .insn") an ILP32
53942 No code has any right to access bfd_link_hash_entry u.def without
53953 * ldlang.c (lang_process): Move call to
53955 Allow backends to add to gc_sym_list before handling entry sym.
53962 This one was caused by me unnecessarily promoting an "int adv" to
53969 * dwarf.c (display_debug_lines_raw): Revert "adv" back to an int.
53975 much. Your operating system ought to be able to handle it by killing
54004 (sframe_encode): Use more appropriate var name.
54019 * sframe.c (sframe_header_sanity_check_p): Change return type to
54035 I happened across adjust_type_signedness, which may be used to modify
54053 Callers which want to make further parsing attempts at the buffer passed
54054 to the function need to be aware that due to the potential of string
54062 This reverts the code change done by 100f993c53a5 ("x86: Check
54068 The problem instead is that parse_register() alters the string handed to
54069 it, thus breaking valid assumptions in subsequent parsing code. Since
54074 string is const-qualified to signal that the string isn't altered, but
54075 the returned "end" pointer is not const-qualified, requiring const to be
54077 again be more convoluted code).
54082 Follow the model of strtol() et al - input string is const-qualified to
54084 not const-qualified, requiring const to be cast away (which generally is
54085 a bad idea, but the alternative would be more convoluted code).
54097 gdb: re-format Python code with black 23
54105 distinguish between the two. There have been proposals of how to extend
54113 The workaround is not transparent to GDB. The internal _Float128 type
54114 name is printed rather then the user specified long double type. This
54115 patch adds a new gdbarch method to allow PowerPC to detect the GCC
54116 workaround. The workaround checks for "_Float128" name when reading the
54118 and format fields from the _Float128 typedef are copied to the long
54126 The patch has been tested on Power 10 where GCC defaults to IEEE Float
54127 128-bit and on Power 10 where GCC defaults to the IBM 128-bit float. The
54173 Use the same example to run the new flow again:
54182 The disassemble time of the test cases has been reduced from ~20 minutes to ~4
54230 we use dlvsym (dlflag, "pthread_create", "GLIBC_<NN>") to find and call
54233 We need to call the default version symbol from libC.
54253 The dependence on help2man to create the man pages has been eliminated.
54255 to generate the man pages from the source.
54261 The index in the user guide has been enhanced to include an overview
54274 * src/Makefile.am: Move the man pages generation to doc/Makefile.am.
54290 I noticed some unnecessary casts to LONGEST in ada-lang.c. This patch
54297 Prior to this patch, it's not possible for GDB to debug GPU code in fork
54298 children or after an exec. The amd-dbgapi target attaches to processes
54299 when an inferior appears due to a "run" or "attach" command, but not
54301 possible to for an inferior to fork and for GDB to debug the GPU code in
54306 In the case of fork, we have nothing to do if `child_inf` is nullptr,
54308 inferior has vforked. We are already attached to the parent's address
54309 space, which is shared with the child, so trying to attach would cause
54313 In the case of exec, we detach from the exec'ing inferior and attach to
54316 the existing inferior, we need to do a detach/attach anyway, as
54317 amd-dbgapi needs to be aware of the new address space created by the
54322 amd_dbgapi_process_attach sense, not the ptrace sense) to native
54327 Same for exec. A previous version of the code had the amd-dbgapi target
54337 gdb: switch to right inferior in fetch_inferior_event
54342 fetch_inferior_event switches to an arbitrary (in practice, the first) inferior
54343 of the process target of the inferior used to fetch the event. The idea is
54344 that the event handling code will need to do some target calls, so we want to
54345 switch to an inferior that has target target.
54360 layer). fetch_inferior_event will then switch to the first inferior with
54361 "process target", so inferior 1. handle_signal_stop then tries to fetch the
54367 This will try to get the thread's register by calling into the current target
54371 I think it would be a good idea to switch to the inferior for which the
54377 Not all events are associated to an inferior though. For instance,
54381 either of these, switch to an arbitrary inferior with that process
54389 gdb: make regcache::raw_update switch to right inferior
54390 With the following patch, which teaches the amd-dbgapi target to handle
54425 to the linux-nat target, which gets confused.
54430 ... since linux-nat tries to do a ptrace call on tid 1.
54432 GDB should switch to the inferior the ptid belongs to before doing the
54433 target call to fetch registers, to make sure the call hits the right
54436 enough to fix this specific problem.
54438 However, I propose to change regcache to make it switch to the right
54442 My first attempt at doing this was to find an inferior using the process
54455 child, but there is no corresponding inferior. For instance, to restore
54460 So, this patch adds to regcache the information "the inferior to switch
54461 to to makes target calls". In typical cases, it will be the inferior
54468 the same inferior switching code to raw_write too.
54474 we don't need to pass both in parallel. The process stratum target is
54478 There is one spot that needs to be updated outside of the regcache code,
54480 a fork child we're about to detach" case mentioned above.
54482 regcache_test_data needs to be changed to include full-fledged mock
54483 contexts (because there now needs to be inferiors, not just targets).
54493 scoped_restore_current_thread object only we actually needed to switch
54496 Returning a scoped_restore_current_thread requires it to be
54507 doesn't really make sense to put it there. The only user of
54518 In the upcoming patch to support fork in the amd-dbgapi target, the
54519 amd-dbgapi target will need to be notified of fork events through an
54520 observer, to attach itself (attach in the amd-dbgapi sense, not ptrace
54521 sense) to the new inferior / process.
54525 right away. It attaches itself to the process and only pushes itself on
54528 If an inferior that is not using the ROCm runtime forks, we want to be
54529 notified of it, so we can attach to the child, and catch if the child
54540 gdb: pass execing and following inferior to inferior_execd observers
54541 The upcoming patch to support exec in the amd-dbgapi target needs to
54543 to the inferior continuing the execution. They may or may not be the
54545 are the same, we need to do the detach / attach dance.
54550 Change the signature to pass both inferiors, and update all existing
54558 Add 128-bit integer support to the Ada parser
54559 This adds support for 128-bit integers to the Ada parser.
54567 worthwhile to me, so this patch removes them.
54575 Add 128-bit integer support to the Rust parser
54576 This adds support for 128-bit integers to the Rust parser.
54582 Convert long_const_operation to use gdb_mpz
54583 This changes long_const_operation to use gdb_mpz for its storage.
54587 Additions to gdb_mpz
54588 In preparation for adding more 128-bit support to gdb, a few additions
54589 to gdb_mpz are needed.
54592 works like 'as_integer' but does not require the value to fit in the
54595 Second, gdb_mpz::export_bits is changed to handle the somewhat unusual
54605 * peXXigen.c (_bfd_XXi_swap_scnhdr_out): Do not force the .rsrc section to be writeable.
54606 * rescoff.c (write_coff_file): Add the SEC_READONLY flag to the .rsrc section.
54610 [gdb/symtab] Handle empty file name in .debug_line section
54611 With DWARF 5, it's possible to produce an empty file name in the File Name
54632 Fix this in read_formatted_entries, by transforming nullptr filenames in to ""
54644 Add support for the .gnu.sgstubs section to the linker for ARM/ELF based targets.
54646 * emulparams/armelf.sh (OTHER_PLT_SECTIONS): Define in order to handle the .gnu.sgstubs section.
54663 This commit changes mi_make_breakpoint_pending to accept the 'script'
54687 editor to get the syntax highlighting of this file wrong after this
54690 Maybe the real answer is to use a better editor, or fix my current
54692 changing {"} to "\"", which is handled fine, and means exactly the
54701 pauth: Create new feature string for pauth to prevent crashing older gdb's
54702 Older gdb's (9, 10, 11 and 12) have a bug that causes them to crash whenever
54708 there that will crash on connection to the above targets.
54711 instead we agreed to use a new feature name to prevent crashing those older
54714 Initially there was a plan to backport a trivial fix all the way to gdb 9, but
54726 I've added some documentation to explain the situation.
54732 FEAT_Debugv8p8. This is used to identify valid hardware debug registers.
54734 gdb currently only knows about versions up to FEAT_Debugv8p4. This patch
54738 future gdb will be able to identify debug registers in newer hardware.
54747 In the current code, when execute the following test on LoongArch:
54764 gdb.base/dump.exp has the following code to check 64-bit address
54793 The variable address difference here is due to the link script
54811 (3) How to fix
54814 functional problem for LoongArch. Refer to the handling of 64-bit
54815 targets in this testsuite, use the "is64bitonly" flag to skip those
54826 Use maint set tui-left-margin verbose to make the extend of the left margin
54841 use. Aside from some ugly warts in the symbol code (an ongoing
54843 seems to assume that symfile_bfd_open will return NULL on error,
54844 whereas in reality it throws an exception. As this code isn't
54857 linker relaxation test, and add linker scripts to nps-1x tests.
54862 tests to use base ARC ISA.
54872 functions. If these are used anywhere then it would pay to save and
54886 to handle an in-memory to file backed transition, seen in a testcase
54890 finding more than one match the function wants to restore the bfd back
54891 to its original state with another bfd_preserve_restore call before
54894 It is also not correct to restore abfd->iostream unless the iovec
54910 /* How many digits to use when formatting the line number. This
54915 code") started printing two trailing spaces instead:
54923 Fix this by reverting to the original behaviour: print one trailing space
54945 showing a character previously written, which happens to be a space, but also
54957 which is used to print the "B+>" bit, which is 3 chars wide.
54969 Fix this by redefining TUI_EXECINFO_SIZE to 3, and using:
54978 This changes the layout of the disassembly window back to what it was before
54986 to:
55029 and ends, making it harder to observe problems related to it.
55032 set to on replaces the spaces in the left margin with either '_' or '0',
55061 The new command allows us to spot the problem with any window width.
55064 between line numbers and source code"), we have:
55105 to make mipsisa32 and mipsisa64 interlink more systemtic.
55109 so we need to introduce a new instruction `mips_mach_32_64`, which holds the pair 32vs64.
55130 of the code reading relocs using sh_size (often no bfd section is
55131 created) but in the case of SHF_ALLOC dynamic relocs we had some code
55132 using the bfd section size. This led to a mismatch, sh_size is
55134 memory. Consistently using sh_size is enough to fix this PR, but I've
55135 also added tests to exclude SHF_COMPRESSED reloc sections from
55143 sizing to match slurp_relocs.
55145 (_bfd_elf_get_synthetic_symtab): Use NUM_SHDR_ENTRIES to size
55167 due to nop padding.
55173 bfd from being file backed to in-memory. This can have unfortunate
55180 modify bfd_reinit to make the bfd file backed again. Restoring the
55182 (part of BFD_FLAGS_SAVED) to be removed.
55183 One more detail: If restoring from file backed to in-memory then the
55184 bfd needs to be forcibly removed from the cache lru list, since after
55196 to in-memory, reopen the file. Restore flags.
55221 2) The 'h ^ g' to clear the top 4 bits is not needed, as those 4 bits
55222 will be shifted out in the next iteration. All we need to do is sink
55230 * elf.c (bfd_elf_hash): Refactor to optimize loop.
55231 (bfd_elf_gnu_hash): Refactor to use 32-bit type.
55247 Replace an assertion in the dwarf code with a warning message.
55255 Fix an attempt to allocate an excessive amount of memory when parsing a corrupt DWARF file.
55263 Fix an attempt to allocate an overlarge amount of memory when decoding a corrupt ELF format file.
55274 Spotted some code in print_one_breakpoint_location that was not
55287 gdb: warn when converting h/w watchpoints to s/w
55294 GDB will silently convert the watchpoint to a software watchpoint.
55323 even `run` then the inferior is going to be _very_ slow, which will be
55326 watchpoints are fast (at least compared to s/w watchpoints).
55329 when GDB downgrades a h/w watchpoint to s/w. The session now looks
55341 warning: watchpoint 1 downgraded to software watchpoint
55352 warning: watchpoint 1 downgraded to software watchpoint
55354 It's not much, but hopefully it will be enough to indicate to the user
55358 I've added an amd64 only test in gdb.arch/, I didn't want to try
55359 adding this as a global test as other architectures might be able to
55374 test makes use of. The test requires GDB to backtrace through a
55375 libgomp function, and the riscv prologue unwinder was failing to
55378 The reason for the failure to unwind was that the function prologue
55380 prologue scanning unwinder doesn't know what to do with this
55384 This commit adds support for c.li. After this GDB is able to unwind
55399 build to fail. Use GDB's version which provides a fallback for this case.
55408 PR win32/30255 points out that a call to a NULL function pointer will
55409 leave gdb unable to "bt" on Windows.
55411 I tracked this down to the amd64 windows unwinder. If we treat this
55454 even be invoked from ld with a feature added to stop ld of the
55457 The latter fix involved tracking input files (internally to libctf) not
55458 just with their input CU name but with a version of their input CU name
55459 that was augmented with a numeric prefix if their linker input file name
55460 was changed, to prevent distinct CTF dicts with the same cuname from
55461 overwriting each other. (We can't use just the linker input file name
55465 machinery to detect clashing output dicts and add a numeric prefix to
55468 This works fine, except that if you used the cu-mapping feature to force
55471 CTF_LINK_EMPTY_CU_MAPPINGS to force every possible output dict in the
55472 mapping to be created (even if empty), we did the creation of empty dicts
55473 first, and then all the actual content got considered to be a clash. So
55476 likely to confuse consumers that use this facility.
55482 CTF_LINK_EMPTY_CU_MAPPINGS to ctf_link().
55487 (ctf_link): Emit empty CTF dicts corresponding to no input in
55496 caller is apt to find a previous, lingering error and misinterpret
55501 child dicts (e.g. looking up information on a pointer to a type will
55503 type it's a pointer to in the parent). Those operations on the parent
55536 testsuite, and add a new no_cross flag to .lk files that is used to
55542 * testsuite/lib/ctf-lib.exp (run_lookup_test): Use it to
55554 In an experiment I'm trying, I needed Ada symbol cache entries to be
55555 allocated with 'new'. This patch reimplements the symbol cache to use
55556 the libiberty hash table and to use new and delete. A couple of other
55565 This changes "maint info frame-unwinders" to use ui-out. This makes
55566 the table slightly nicer. In general I think it's better to use
55571 [gdb/testsuite] Add -q to INTERNAL_GDBFLAGS
55578 This is free software: you are free to change and redistribute it.
55579 There is NO WARRANTY, to the extent permitted by law.
55589 Type "apropos word" to search for commands related to "word".
55593 This makes gdb.log longer than necessary and harder to read.
55595 We do need to test that the output is produced, but that should be limited to
55598 Fix this by adding -q to INTERNAL_GDBFLAGS, such that we simply have:
55673 that included a stack address in the test name, this makes it harder
55674 to compare results between runs.
55680 writing 8-bytes rather than 4 in order to clear the return address
55690 This changes apply_ext_lang_type_printers to use unique_xmalloc_ptr,
55715 __attribute__((used)) to globals does not help.
55717 So add explicit uses of all globals to the generated code.
55720 generated structs are not defined anywhere, leading to undefined
55725 driver. Fixed by passing "c++" as option to prepare_for_testing.
55731 gdb: run black code formatter on gdbarch_components.py
55732 The following commit changed gdbarch_components.py but failed to
55743 change to the generated source files after this commit.
55749 gdb/python: allow Frame.read_var to accept named arguments
55750 This commit allows Frame.read_var to accept named arguments, and also
55752 the wrong type are passed to this function.
55759 which allows the argument type to be checked early on. Currently, if
55766 Error while executing Python code.
55775 Error while executing Python code.
55781 as user code _could_ be relying on this, but I think the improvement
55782 is worth the risk, user code relying on the exact exception type is
55783 likely to be pretty rare,
55790 text of the exception to more closely match the "standard" error
55798 Error while executing Python code.
55807 Error while executing Python code.
55810 For existing code that doesn't use named arguments and doesn't rely on
55817 gdb/python: convert Frame.read_register to take named arguments
55819 Frame.read_register to accept named arguments. As with the previous
55826 possibility that the user has some code that can operate on either a
55829 Minor update to allow for named arguments, and an extra test to check
55838 and gdb.PendingFrame.create_unwind_info to accept keyword arguments.
55843 think it's nice to be consistent, and I don't see any particular draw
55844 backs to making this change.
55846 For PendingFrame.read_register I've changed the argument name from
55847 'reg' to 'register' in the documentation and used 'register' as the
55848 argument name in GDB. My preference for APIs is to use full words
55850 this change should not break any existing code.
55852 There should be no user visible changes (for existing code) after this
55861 Update gdb.UnwindInfo.add_saved_register to accept named keyword
55865 instead of PyArg_UnpackTuple to parse the function arguments.
55867 By switching to gdb_PyArg_ParseTupleAndKeywords, we can now use 'O!'
55884 My preference for argument names is to use full words where that's not
55885 too excessive. As such, I've updated the name of the argument from
55886 'reg' to 'register' in the documentation, which is the argument name
55889 For existing unwinder code that doesn't throw any exceptions nothing
55891 code that throws and catches the ValueError, and this code will break
55892 after this commit, but I think this is going to be sufficiently rare
55901 This commit aims to address a problem that exists with the current
55902 approach to displaced stepping, and was identified in PR gdb/22921.
55907 lead to random register corruption when the inferior makes use of
55911 displaced-stepping.c, and is this; after GDB tries to perform a
55921 However, if the displaced step is considered to have not completed
55924 fixup which involves adjusting the program counter back to its
55930 temporary registers are restored to their original values in the
55931 architecture specific code.
55938 architecture specific code considers safe to borrow for the lifetime
55947 modify the instruction to something like:
55951 with %rcx having its value adjusted to contain the original %rip
55978 modify up to 16 temporary registers, and the instruction being
55979 displaced stepped could be expanded to multiple replacement
55982 This commit only aims to address the issue on amd64 for now, though I
55988 We will now pass an extra argument to gdbarch_displaced_step_fixup,
55996 figure out what fixup needs to be performed.
56010 In order to move all architectures to this new API, I have moved the
56011 minimal roll-back version of the code inside the architecture specific
56016 For ARM the minimal code is no worse than what we had before, though I
56019 I've updated the gdb.arch/amd64-disp-step.exp test to cover the
56026 branches to itself. I added these tests after a first version of this
56028 to see if the displaced instruction had executed. This works fine in
56029 almost all cases, but when an instruction branches to itself a pure
56040 Oops, tried to free too much
56048 Fix memory leaks and do a general tidy of the code for printing coff
56056 throughout. Free "parents" before assigning, and set to NULL
56058 strings assigned to method, and free before assigning.
56064 objdump -g can't be used much. Trying to dump PE files invariably
56065 seems to run into "debug_name_type: no current file" or similar
56066 errors, because parse_coff expects a C_FILE symbol to be the first
56068 Pre-setting the file name won't hurt stabs dumping.
56083 The old stabs code didn't bother too much about freeing memory.
56087 syms on failure to create sections.
56115 gdb/testsuite: Default to assembler's preferred debug format in asm-source.exp
56116 The stabs debug format is obsolete and there's no reason to think that
56118 format wasn't set in asm-source.exp then leave it to the assembler to
56119 decide which one to use.
56162 lowest_text_address wasn't equal to -1.
56174 of how to go about specifying 'configure' time options for
56189 gdb, doc: add the missing '-gid' option to 'info threads'
56199 Convert the return type of 'should_print_thread' from int to bool.
56227 bfd+ld: when / whether to generate .c files
56228 Having been irritated by seeing bfd/elf{32,64}-aarch64.c to be re-
56232 to be (re-)generated which are actually needed for the build.
56233 Generating them all is only needed when wanting to update certain files
56234 under bfd/po/, i.e. in maintainer mode.
56236 In the course of looking around in an attempt to try to understand how
56237 things are meant to work, I further noticed that ld has got things
56243 Furthermore it became apparent that ld fails to enumerate the .c files
56247 time, but skipping ones which look to be of interest for debugging
56253 Trying to free malloc'd memory used by the stabs and coff debug info
56255 lot of code. It's better to bfd_alloc the memory which allows it all
56256 to be freed without fuss when the bfd is closed. In the process of
56259 Some of the stabs handling code grows arrays of pointers with realloc,
56260 to deal with arbitrary numbers of fields, function args, etc. The
56261 code still does that but copies over to bfd_alloc memory when
56262 finished. The alternative is to parse twice, once to size, then again
56263 to populate the arrays. I think that complication is unwarranted.
56266 something, eg. that I missed an attempt to free obj_alloc memory.
56284 fields over to debug_xalloc memory.
56297 (parse_stab): Delete string_used param. Revert code dealing
56298 with string_used. Copy so_string passed to debug_set_filename
56299 and stored as main_filename to debug_xalloc memory. Similarly
56300 for string passed to debug_start_source and push_bincl. Copy
56301 args to debug_xalloc memory. Don't leak args.
56302 (parse_stab_enum_type): Copy names and values to debug_xalloc
56303 memory. Don't free name.
56307 (parse_stab_cpp_abbrev): Use debug_xalloc for _vb$ type name.
56308 (parse_stab_one_struct_field): Don't free name.
56309 (parse_stab_members): Copy variants and methods to
56310 debug_xalloc memory. Don't free name or argtypes.
56318 (stab_find_tagged_type): Don't free name. Use debug_xzalloc.
56319 (stab_demangle_qualified): Don't free name.
56322 success to debug_xalloc memory, free on failure.
56323 (stab_demangle_fund_type): Don't free name.
56324 (stab_demangle_v3_arglist): Copy args to debug_xalloc memory.
56333 Add readMemory and writeMemory requests to DAP
56335 to the evaluation code is needed in order to test this -- this is one
56336 of the few ways for a client to actually acquire a memory reference.
56353 thread_info* as an argument and set the breakpoint::thread to hold the
56404 What happens here is the breakpoint condition includes a call to an
56409 After this GDB appears to report that it is stopped at Breakpoint 1,
56516 stopped_by_random_signal. This variable is reset to zero in
56518 inferior stopped due to some random signal.
56522 global is reset to 0.
56531 this causes us to reenter handle_signal_stop. The global variable
56532 stopped_by_random_signal is updated, this time it is set to true
56533 because the thread stopped due to SIGSEGV. As a result of this we
56537 complete, and we return to the original handle_signal_stop. However,
56586 gdbserver: allow agent expressions to fail with invalid memory access
56587 This commit extends gdbserver to take account of a failed memory
56588 access from agent_mem_read, and to return a new eval_result_type
56591 I have only updated the agent_mem_read calls related directly to
56592 reading memory, I have not updated any of the calls related to
56594 with that area of gdb/gdbserver, and I don't want to break anything,
56598 I've then updated gdb.base/bp-cond-failure.exp to test evaluating the
56604 gdbserver: allows agent_mem_read to return an error code
56607 attempt to access invalid memory then this will appear to succeed.
56610 fails, agent_mem_read will return an error code.
56614 next commit I will update the users of agent_mem_read to check for the
56615 error code.
56617 I've also updated the header comments on agent_mem_read to better
56623 When GDB fails to test the condition of a conditional breakpoint, for
56645 However, in the next few patches I plan to change this. In some cases
56646 I don't think it makes sense for GDB to report the stop as being at
56687 changed. However, if I make that change then every reference to
56690 So, in this commit, in preparation for the later commits, I propose to
56691 change the 'Error in testing breakpoint condition:' line to this:
56722 This turns out to be due to a gdbserver bug. To avoid cluttering this
56723 commit I've added a work around to the new test script so that the
56725 gdbserver, and update the test script to remove the work around.
56732 ibytes to avoid casts.
56737 This commit builds on the previous one to fix all the remaining
56748 Dump of assembler code for function bar:
56765 frame-pointer as the frame base address is clearly not going to work.
56766 We need to switch to using the stack-pointer instead.
56773 My proposed solution is to extend GDB such that GDB will scan the
56783 position within this instruction sequence to help calculate the
56790 to work for every function. If the compiler reorders the
56792 GDB is once again going to get the frame-id wrong.
56797 Remember, this is for debugging code without debug information,
56799 optimisation being used. Obviously GDB is going to struggle in these
56803 possible, we might be able to improve the logic to cover more
56813 Add support to the RISC-V prologue scanner for c.ldsp and c.lwsp
56829 The reason for the failures is that GDB is trying to build the
56832 to the return instruction itself.
56845 instruction happens to be one of the compressed instructions that I'm
56849 really does go from the start of the function right up to the current
56854 'foo'. As such, we can't usually rely on scanning right up to the end
56855 of the function -- there are some instructions we always need to stop
56865 gdb/riscv: convert riscv debug settings to new debug print scheme
56866 Convert the RISC-V specific debug settings to use the new debug
56892 This commit updates the disassembler to add the missing space, and
56912 The first of these commits fixed an issue in GDB and tried to extend
56913 the gdb.server/server-kill.exp test to cover the GDB fix.
56915 Unfortunately, the changes to gdb.server/server-kill.exp were not
56916 correct, and were causing problems when trying to run with the
56924 not about the original fix to GDB from the first commit, the actual
56927 While reviewing the second commit I wanted to check that the problem
56929 gdb.server/server-kill.exp script, so I reverted the change to
56934 while trying to insert a breakpoint. As soon as GDB spots that
56937 throw an exception which is caught in the insert breakpoints code, and
56938 we try to display an error that includes the breakpoint number
56947 and so we never try to print the breakpoint number which is what
56950 If I add an 'info frame' command to the test script, prior to killing
56952 calculated, and the first thing we do is try to insert the
56955 In order to reproduce this experiment you'll need to change a function
56973 A problem internal to GDB has been detected,
56994 (gdb) python global_test_unwinder.name = "foo"
56998 Error while executing Python code.
57004 (gdb) python global_test_unwinder.name = "foo"
57007 AttributeError: can't set attribute 'name'
57008 Error while executing Python code.
57019 the detection was supposed to be through a ptrace error code, but in reality,
57027 This patch fixes this issue in code that is shared between gdb and gdbserver,
57038 asan: heap buffer overflow printing ecoff debug info file name
57044 to terminate string sections with a NUL. Adjust invocation.
57062 This should sort out some very old FIXMEs in code handling stabs
57063 debug info. Necessary if we are to fuss over freeing up memory before
57065 viewpoint to *not* free memory, which takes some time, and leave that
57066 to process exit. The only reason to do so is that having many memory
57067 leaks in binutils/ code tends to hide leaks in bfd/ or opcodes/, which
57074 stab string passed to parse_stab. Free stab string when
57079 stashed. Pass to debug_start_source. Realloc file_types
57086 We may have added some abbrevs to the list before hitting an error.
57088 need to init it earlier to avoid an uninitialised memory access.
57109 syscall is active. But some active syscalls keep PC pointing to the SVC
57112 This leads to a broken backtrace like:
57113 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
57119 some syscalls will point PC to the SVC instruction itself. This happens
57124 complicated prologue where the GDB unwinder fails to properly determine
57126 is due to the "vpush" there in this case but I did not investigate it more:
57128 Dump of assembler code for function pthread_cond_timedwait@@GLIBC_2.4:
57146 section so that references to foo will be replaced by references to
57169 A recent patch caused my system gcc (Fedora 36, so gcc 12.2.1) to warn
57191 With test-case gdb.threads/threadapply.exp and editing set to on, we have:
57200 but with editing set to off, we run into:
57227 gdb_test_multiple "define remove" fails to match all resulting output, and
57243 "current_language". When I went to fix this, though, I then saw that
57258 of worker threads is set to zero. These turn out to be the same
57259 problem -- the cache can't be written to until the per-BFD's
57262 This patch avoids the race by rearranging the code slightly, to ensure
57270 Allow consumers of GDB to extract the name of the main method. This is
57273 Used by both MAP and DDT e.g. it is used to detect the presence of debug
57282 code of DW_AT_calling_convention attribute for determining the name of
57284 attribute has not been provided, such as with Fortran code compiled with
57289 Original code was removed with commit 6209cde4ddb8 ("Delete DWARF
57290 psymtab code"), and then an update to complement commit 81873cc81eff
57296 GDB: Favor full symbol main name for backtrace stop
57297 In the case where a Fortran program has a program name of "main" and
57312 Newer versions of GCC transform the program name to "MAIN__" in this
57328 This commit intends to move operands that require very special handling or
57330 under "W". I also intend this "W" to be "temporary" operand storage until
57334 to "Wif" because of its special handling (and allocating single character
57344 The author currently plans to allocate following three-character operand
57356 "f" to "Wif".
57360 * riscv-dis.c (print_insn_args): Move from "f" to "Wif".
57365 x86: convert testcases to use .insn
57368 in VEX/XOP/EVEX prefixes can't be set to their non-default values, since
57371 like the first one in bad-bcast.s: Its purpose is to illegaly set EVEX.b
57374 it sets EVEX.vvvv to other than 0xf (rendering the test ambiguous,
57380 be expressed by .insn, but I don't want to introduce bogus examples.
57384 Generally generated code is meant to remain the same. {,x86-64-}nops.d
57387 correction to opcode.s) to cover an apparent typo in the original tests
57390 Where necessary --divide is added as gas option, to allow for the use
57403 Since we have no insn suffix and it's also not realistic to infer
57406 telling us permitted size(s), a new syntax construct is introduced to
57411 evaluated at parsing time. Being explicit is generally recommended to
57415 eventually emitted immediate values will be padded up to 8-, 16-, 32-,
57421 .insn isn't going to have a constraint of only a single immediate when,
57427 syntax extension, restricted to .insn only, to allow specifying this in
57437 Note that because we can't really know how to encode their use, %cr8 and
57438 up cannot be used with .insn outside of 64-bit mode. Users would need to
57446 these off the expression before handing it to get_absolute_expression().
57448 Note that on targets where / starts a comment, --divide needs passing to
57449 gas in order to make use of the extension opcode functionality.
57456 road, but people using .insn are expected to know what they're doing
57457 anyway. Plus this way there's at least _some_ way to have those bits
57460 For now this will only allow operand-less insns to be encoded this way.
57471 to be permitted to satisfy the ELF spec.
57480 PR 30219 shows an internal error due to a "Bad switch" in
57485 Making the above change allows the errant test case to pass, but does
57488 fix, I still think it's important to add this case so that other
57489 situations which lead to print_exeption() being called won't generate
57492 In order to understand the underlying problem, please examine
57503 eventually leads to the internal error:
57519 causing a gdb_exception_forced_quit to be thrown. The exception
57521 exception_print to be called. As shown by the backtrace,
57522 print_exception is then called, leading to the internal error.
57524 The actual fix, also implemented by this commit, is to clear
57526 various cleanup code, called by quit_force, to run without triggering
57527 a gdb_exception_forced_quit. (Though, if another SIGTERM is sent to
57529 cleanup code will detect it and throw the exception.)
57538 host compiler that predated the switch to -fno-common.
57544 It was introduced as part of SME2, but it belongs to the
57566 also reorders the existing SVE_Zm3_22_INDEX to keep the
57579 worth of elements to two registers' worth, or two registers'
57580 worth to four registers' worth.
57593 These are the first SME2 instructions to have immediate operands.
57613 which narrow a pair of .S registers to a single .H register.
57653 encoding. They are the first instance of a ZA (as opposed to ZA tile)
57674 These are the first instructions to have tied register list
57675 operands, as opposed to tied single registers.
57699 Implementation-wise, the main things to note here are:
57724 bounds of 7 and 15, this is the first plain register operand to have a
57726 to record the minimum value, rather than having separate inserters
57728 an extra bit to the field.
57734 to and from ZA. As with SME, the instructions are also available
57750 code, operands that interpret predicates as counters are written
57754 existing instructions to support them. Since the new forms
57755 are just a programmer convenience, there's no need to make them
57767 messages if the parser allows all ZA indices to have a range.
57774 This is indicated by adding a "vgx2" or "vgx4" group size to the
57781 error messages if we allow any ZA index to have a group size
57782 during parsing, and wait until constraint checking to reject
57788 group size. But that's a general property that also applies to
57790 wrong thing to do. We need to be relatively confident that we're
57796 aarch64: Add _off4 suffix to AARCH64_OPND_SME_ZA_array
57797 SME2 adds various new fields that are similar to
57799 their offset fields. This patch adds _off4 to the name of the
57802 aarch64: Add a _10 suffix to FLD_imm3
57804 an lsb position suffix to the name of the field that we already have.
57829 patch is to extend binutils to support such lists.
57831 The parsing code already had (unused) support for strides of 2.
57832 The idea here is instead to accept all strides during parsing
57838 possibilities to be summed up in a single message.
57840 I've tried to update all code that handles register lists.
57846 it easier to see if a particular field has already been defined.
57884 of an optional extension. It's nevertheless useful to have a single
57886 and (b) it tends to improve error reporting.
57916 same operand. But if we get to operand 3 (say) and see a register
57917 instead of an immediate, that's likely to be a better match than
57920 The idea of this patch is to prioritise parsing-related errors
57921 based on operand index first, then by error code. Post-parsing
57927 aarch64: Try to report invalid variants against the closest match
57929 error against the final opcode entry that got to the qualifier-
57930 checking stage. It seems better to report the error against
57936 argument to AARCH64_OPDE_INVALID_VARIANT and then picks the
57961 4-register forms. If the user tries to use a 3-register list,
57966 This patch therefore switches the operand to a bitfield. If a
57977 no particular reason to separate them out. However, some SME2
57978 instructions have tied register list operands, and so we need to
57983 even though we already have a dedicated error code for register
57992 aarch64: Add an error code for out-of-range registers
58010 and 4-register forms of an instruction, and if the assembly code uses
58028 Trying to parse an invalid assembly line will trigger an error for
58030 entry to another, depending on the exact nature of the problem.
58036 one that the user intended to use, then the error can end up being
58040 name, or uses a type of register that is not accepted by any
58046 even though the hypothetical user was presumably attempting to use
58051 instructions reuse existing mnemonics. This could lead to us
58055 This patch tries to improve things by collecting together all
58058 actually seen, if any. It then tries to summarise all this
58059 in a more directed way, falling back to a generic error if
58070 more hits. The patch adds a specimen instruction to diagnostics.s
58073 generic messages seemed better. There's always going to be an element
58081 aarch64: Try to avoid inappropriate default errors
58088 same mnemonic, there could be several matches that lead to a
58103 This patch uses set_fatal_syntax_error to bump the priority of the
58112 error to report the problem. These default errors have the form
58116 GAS tries to pick the most appropriate one, using the opcode
58117 table order as a tiebreaker. But this can lead to cases where
58131 something that isn't remotely register-like, it seems better to
58134 so there's no need to pick a specific Y in "operand N must be
58143 qualifier associated with the register, and the logic to calculate
58146 The code that parses FP registers had the same need, but it
58149 This patch tries to handle both cases in the same way. It is
58150 needed by a later patch that tries to improve the register-related
58156 parse_address_main currently uses get_reg_expected_msg to
58163 The patch tries to use more tailored messages instead.
58173 aarch64: Move w12-w15 range check to libopcodes
58174 In SME, the vector select register had to be in the range
58175 w12-w15, so it made sense to enforce that during parsing.
58180 stage to the constraint-checking stage.
58189 naturally to PSEL.
58194 Just a minor clean-up to factor out the index parsing, partly to
58205 array indices don't currently allow "za" to be qualified,
58206 but we need to remove that restriction for SME2.
58213 aarch64: Move ZA range checks to aarch64-opc.c
58215 gas to libopcodes. Doing the checks there means that the error
58220 to the point of checking the completed opcode.)
58239 aarch64: Pass aarch64_indexed_za to parsers
58252 offsets from gas to libopcodes. That in turn requires the
58253 immediate field to be big enough to support all parsed values.
58260 aarch64: Rename za_tile_vector to za_index
58263 in SME2, so this patch generalises the name to "indexed_za".
58276 is that it allows ZA to take qualifiers. This is necessary for many
58279 However, to support existing unqualified uses of ZA, parse_reg_with_qual
58280 needs to treat the qualiier as optional. Hopefully the net effect is
58281 to give better error messages, since now that SME2 makes "za.<T>"
58282 valid in some contexts, it might be natural to use it (incorrectly)
58286 ZA tiles, to try to make some cases more specific.
58297 performed by parse_sme_zada_operand was to reject .q, but that can
58312 to return the register entry instead, since that has both pieces
58316 a mask of flags. This hopefully makes calls easier to read
58318 importantly, it allows a later patch to add a second flag.
58329 and REG_TYPE_ZATV. This slightly simplifies the existing code, but the
58330 main purpose is to enable later patches.
58334 aarch64: Rename REG_TYPE_ZA* to REG_TYPE_ZAT*
58336 REG_TYPE_ZAV. However, a later patch wants to make plain "za"
58337 a register type too, and REG_TYPE_ZA is the obvious name for that.
58339 This patch therefore adds "T" (tile) to the existing names.
58347 aarch64_operand_error can store arguments to the error while
58354 have to be provided explicitly rather than being inferred from other
58355 operands. The main change is to move the qualifier setting from the
58356 operand-level decoders to the opcode level.
58358 This is one step towards consolidating the ZA parsing code and
58359 extending it to handle SME2.
58364 GAS refuses to interpret register names like x0 as unadorned
58365 immediates, due to the obvious potential for confusion with
58373 was valid code before SVE was added, so it needs to stay valid
58374 code even when SVE is enabled. But we can make GAS reject newer
58381 This patch extends the SVE behaviour to SVE2. The old call
58382 to AARCH64_CPU_HAS_FEATURE was technically the wrong way around,
58413 When writing an unwinder it is necessary to create a new class to act
58414 as a frame-id. This new class is almost certainly just going to set a
58418 this job. Users can make use of this to avoid having to write out
58419 standard boilerplate code any time they write an unwinder.
58421 Of course, if the user wants their FrameId class to be more
58425 I've simplified the example code in the documentation to now use the
58429 Any existing user code will continue to work just as it did before
58437 gdb/python: Allow gdb.UnwindInfo to be created with non gdb.Value args
58445 Currently all of these frame-id attributes need to be gdb.Value
58447 code in py-unwind.c that only handles gdb.Value objects.
58449 If instead we switch to using get_addr_from_python in py-utils.c then
58454 py-unwind.c) to use get_addr_from_python. However, while looking at
58455 the code I noticed a problem.
58461 to extract the attribute value, in which case a Python error will have
58464 Now in pending_framepy_create_unwind_info we have this code:
58477 the attribute is not a gdb.Value, then currently we fail to extract
58488 Then we return to pending_framepy_create_unwind_info and immediately
58504 We need to update pending_framepy_create_unwind_info, the only user of
58510 This change also includes the switch to get_addr_from_python which was
58513 For well behaving user code there should be no visible changes after
58516 For user code that hits an error, hopefully the new errors should be
58527 While refactoring some other code in gdb/python/* I wanted to merge
58528 two code paths. One path calls value_as_address, while the other
58532 examining the code I noticed that value_as_address calls unpack_long
58539 I've updated the code to use unpack_pointer, and changed a related
58540 comment to say that we call unpack_pointer. I've also adjusted the
58541 header comment on value_as_address. The existing header refers to
58542 some code that is now commented out.
58544 Rather than trying to describe the whole algorithm of
58546 I've just trimmed the comment on value_as_address to be a brief
58556 It is not currently possible to directly create gdb.UnwindInfo
58557 instances, they need to be created by calling
58559 UnwindInfo can be linked to the pending frame.
58563 A consequence of all this is that it doesn't really make sense to
58565 parents __init__ method to correctly link up the PendingFrame
58568 to be invalid for use in GDB.
58572 test to check that this is indeed prevented.
58574 Any functional user code will not have any issues with this change.
58581 Having a useful __repr__ method can make debugging Python code that
58589 gdb/python: add some additional methods to gdb.PendingFrame
58592 limit to which methods we can add to it, but many of the methods that
58595 In this commit I've added those methods to PendingFrame that I believe
58610 - gdb.PendingFrame.name: Return the name for the frame's function,
58629 and cleaned the code slightly e.g. NULL to nullptr. Additionally each
58630 function required a small update to reflect the PendingFrame type, but
58635 For more extensive testing, I added the following code to the file
58654 name = pending_frame.name()
58655 assert name is None or isinstance(name, str)
58670 that uses 'disable unwinder' and expects a single unwinder to be
58673 going to crash GDB.
58682 files: having a single macro to check that the Python object is still
58685 This cleans up the code a little throughout the py-unwind.c file.
58695 scoped_restore to invalidate the pending frame objects. However, this
58696 only restores the pending_frame_object::frame_info field to its
58701 cleanup, it actually restores the frame_info field to an undefined
58703 accesses to the PendingFrame object result in undefined behaviour and
58726 This commit makes a few related changes to the gdb.unwinder.Unwinder
58729 1. The 'name' attribute is now a read-only attribute. This prevents
58730 user code from changing the name after registering the unwinder. It
58731 seems very unlikely that any user is actually trying to do this in
58734 2. We now validate that the name is a string in the
58737 make it easier to ensure the 'info unwinder' command shows sane
58738 output (how to display a non-string name for an unwinder?),
58745 calling the 'disable unwinder' command). It is not unreasonable to
58746 think that a user might register multiple unwinders (relating to
58767 gprofng: Add version symbols to libgprofng.ver
58778 It's wrong to have an alloc reloc section trying to use a non-alloc
58782 comment. Always set sh_link to .dynsym for alloc reloc
58783 sections and to .symtab for non-alloc.
58819 following cases, which refer to pr25749, will cause a symbol be
58828 shared object, so not only the non-preemptible absolute symbol need to
58852 There are two improvements, which are all referenced to aarch64,
58875 I just make the implementations similar to other targets, so that will be
58876 more easy to mainatain.
58880 and need to make ifunc-seperate* testcases work for rv32.
58886 RISC-V: Extract the ld code which are too complicated, and may be reused.
58888 best for RISC-V, so extract them out may be more easy to compare what's the
58893 from riscv_elf_check_relocs, to see if dynamic reloc is needed for the
58896 riscv_elf_relocate_section, to see if R_RISCV_32/64 need to generate
58899 riscv_elf_relocate_section, to see if R_RISCV_32/64 need to copy itslef
58902 riscv_elf_relocate_section, to see if R_RISCV_GOT_HI20 can be resolved
58910 to by the static link. This frame is correctly found when evaluating
58914 This patch fixes the problem by passing this frame through to
58919 Pass a frame to value_at_lazy and value_from_contents_and_address
58920 This patch adds a 'frame' parameter to value_at_lazy and ensures that
58921 it is passed down to the call to resolve_dynamic_type. This required
58922 also adding a frame parameter to value_from_contents_and_address.
58924 Nothing passes this parameter to value_at_lazy yet, so this patch
58929 Add frame parameter to resolve_dynamic_type
58930 This adds a frame parameter to resolve_dynamic_type and arranges for
58931 it to be passed through the call tree and, in particular, to all calls
58932 to dwarf2_evaluate_property.
58937 A 'const frame_info_ptr *' is used here to avoid including frame.h
58947 This rewrites version_compare to allow the input lists to have
58948 different lengths, then rewrites rust_at_least to use version_compare.
58952 the Rust compiler in use. It then changes various tests to use this
58961 prog.adb:16:11: warning: file name does not match unit name, should be "main.adb"
58984 the second call to it is redundant.
58992 displaced_step_dump_bytes really isn't specific to displaced stepping,
58993 and should really get a more generic name and move into gdbsupport/.
58995 This commit does just that. The function is renamed to
58999 ... I have updated the function to take an array view, which makes it
59000 slightly easier to call in a couple of places where we already have a
59001 gdb::bytes_vector. I've then added an inline wrapper to convert a raw
59009 Finally, I ended up having to add an include of gdb_assert.h into
59018 While investigating a displaced stepping issue I wanted an easy way to
59023 the original instruction, I just need to go find the information
59029 Also, the code that prints the bytes of the replacement instruction
59030 only prints 4 bytes, which clearly isn't always going to be correct.
59032 In this commit I remove the existing code that prints the bytes of the
59033 replacement instruction, and add two new blocks of code to
59034 displaced_step_prepare_throw. This new code prints the original
59055 [displaced] amd64_displaced_step_fixup: restoring reg 2 to 0x7ffff7f8a578
59064 The debug code tries to handle this by disassembling the entire
59066 than is necessary, but there's (currently) no easy way to know how
59067 many instructions to disassemble; that knowledge is all locked in the
59068 architecture specific code. Still I don't think it really hurts, if
59069 someone is looking at this debug then hopefully they known what to
59073 displaced stepping code could communicate back how many bytes its
59074 replacement sequence was, and then our debug print code could use this
59075 to limit the disassembly. But this seems like a lot of effort just to
59078 I'm not proposing to do anything about this issue for now.
59141 We have way too much duplicated code in bfd. Apply dd3a3d0af9f6 and
59142 920581c57e08 to pdp11.c.
59150 run_host_cmd adds $gcc_B_opt and $ld_L_opt to the command line if it
59152 run in lto.exp linking pr28138 is "sh", we need to add these by hand.
59158 is no need for the ld_compile command line to include
59162 and $ld_L_opt to pr28138 link line.
59164 unnecessary flags to ld_compile.
59173 Rename "raw" to "unrelocated"
59175 to use the word "unrelocated" instead.
59178 This changes minimal symbols to use unrelocated_addr. I believe this
59182 This changes psymbols themselves to use unrelocated_addr. This
59186 This changes partial symbol tables to use unrelocated_addr for the
59195 This changes gdb_bfd_lookup_symbol to use a function_view. This
59196 simplifies the code a little bit.
59230 complaints about it over the years. This patch changes varobj to emit
59237 gdb/testsuite: allow "require" callbacks to provide a reason
59240 investigation easier, I propose to allow the "require" callbacks to be
59241 able to return a list of two elements: the zero/non-zero value, and a
59244 Use the new feature in allow_hipcc_tests to demonstrate it (it's also
59320 This is due to this line in ${board}_spawn:
59331 to gdbserver instead of gdb, and we run into the timeout.
59357 FreeBSD, we have to correct the year of copyright manually. So fix this
59373 During startup program exited with code 127.^M
59384 During startup program exited with code 127.^M
59386 Connection to localhost closed.^M^M
59398 Given p = A where p is a pointer to some type and A is an array of
59400 according to the C standard.
59405 to address 0x62600000016c with insufficient space for an object of
59407 Oh well, diagnostics are sometimes hard to get right. The UB is easy
59408 to avoid.
59431 UNTESTED: gdb.rust/watch.exp: failed to prepare
59440 Since the rest of the code in allow_rust_tests is also about availability of
59441 the rust compiler, move it to can_compile.
59455 UNTESTED: gdb.rust/watch.exp: failed to prepare
59458 The problem is that find_rustc returns "" for remote host, so we fall back to gcc, which fails.
59497 fbsd-nat: Avoid a direct write to target_waitstatus::kind.
59498 This is in #ifdef'd code for a workaround for FreeBSD versions older
59517 We have to interpose each of the functions because we don't know
59526 - removed unused defines and duplicated code.
59527 - added the DCL_FUNC_VER macro to define the version symbols.
59537 * src/collector_module.h: Move the SYMVER_ATTRIBUTE macro to collector.h
59541 Clean up the old code.
59573 This commit tweaks displaced_step_finish & friends to pass down a
59575 patch later in the step-over-{thread-exit,clone] series will want to
59580 It's also a bit more logical this way, as we don't have to pass down
59599 destfile argument to gdb_remote_download, which doesn't work well with remotedir.
59607 not support changing to ".").
59614 In do_self_tests we try to find out the location of the gdb to debug, which
59615 will then be copied and renamed to xgdb.
59619 With remote host, we could upload that gdb from host to build/target, but we
59620 would miss the data directory (which is listed as the reason to skip
59626 It seems easier to just skip this on remote host.
59628 It could be made to work for the "[is_remote host] && [is_remote target]
59636 Change symbol::line to unsigned int
59662 This changes gdb to use scalar arithmetic for expression evaluation.
59664 I suspect this patch is not truly complete, as there may be code paths
59673 Both value_equal and value_less use value_as_long to check a
59683 binop_promote currently only handles integer sizes up to
59685 Simplify this code, unify the C and non-C (but not OpenCL, as I don't
59686 know how to test this) cases, and handle 128-bit integers as well.
59698 Add truncation mode to gdb_mpz
59699 This renames gdb_mpz::safe_export to export_bits, and adds a new flag
59700 to export a truncated value. This is needed by value arithmetic.
59704 However, this copy isn't always needed. This patch makes this code
59707 Add many operators to gdb_mpz
59708 This adds many operator overloads and other useful methods to gdb_mpz.
59723 are both mentioned in many CUs and that also require name
59845 My distro has no support for gdc, but I'd like to have the test-case
59847 and add it alongside (rather than replacing it, because it's good to use
59862 Also add a "show language" to check that we automatically set the language
59863 correctly to D.
59874 It's better not to drill down into u.auxent but instead use a pointer
59875 to the combined_entry_type. That way the fix_scnlen field is
59876 available, and no one looking at the codes needs to wonder whether
59890 (coff_get_normalized_symtab): Adjust to suit.
59895 long is a poor choice of type to store 32-bit values read from
59898 larger than 32 bits. If long is 32-bit then code needs to be careful
59899 to not accidentally index negative array elements. (I'd rather see a
59902 have 64-bit values. It's better to use unsigned exact width types to
59905 I decided to change the field names too, which makes most of this
59912 types. Rename l fields to u32 and u64 as appropriate.
59922 * xcofflink.c: Adjust to suit internal_auxent changes.
59924 * rdcoff.c: Adjust to suit internal_auxent changes.
59927 * config/tc-ppc.c: Adjust to suit internal_auxent changes.
59930 * xcoffread.c: Adjust to suit internal_auxent changes.
59932 * pe-dll.c: Adjust to suit internal_auxent changes.
59938 to an index, reset the union tag.
59944 fix_tag is set. This patch fixes code in coffgrok.c that accessed the
59945 field without first checking fix_tag, and removes a whole lot of code
59946 validating bogus pointers to prevent segfaults (which no longer
59977 Add an option to the gold linker to put its version string into the .comment section.
59989 UNTESTED: gdb.dlang/dlang-start.exp: failed to prepare
60006 While trying to use gdb_can_simple_compile with a d program, I ran into:
60016 set obj [standard_temp_file $name-[pid].$postfix]
60020 Fix this by removing "[pid]" in all calls to standard_temp_file.
60040 gdb.error: Don't know how to run. Try "help target".
60066 Preserve name of range types
60068 picked up by the AdaCore internal test suite. Previously, the name of
60070 not. This patch changes this code to preserve the name.
60079 supported values is "repl", which we took to mean evaluation of a gdb
60086 This patch requires the earlier patch to fix up scopes in DAP.
60102 to:
60115 Another regression was found due to that commit, and it was fixed in commit
60123 which contain only variables (i.e. no code with associated
60135 We were failing to add the offsets of the containing struct/union
60136 in this case, leading to all offsets being relative to the unnamed
60150 that couldn't actually happen. Update the comment to note what it
60161 isn't, but it's not quite smart enough to figure that out (it requires
60166 * ctf-lookup.c (ctf_symbol_next): Initialize sym to a suitable
60172 If no suitable qsort_r is found in libc, we fall back to an
60180 and added a no-qsort test to my regular testsuite run.
60184 * ctf-dedup.c (sort_output_mapping): Inputs are always equal to
60200 of the code in the new thread. This also lets us remove a FIXME.
60212 A problem internal to GDB has been detected,
60287 A problem internal to GDB has been detected,
60297 enabled more broad use of pointer authentication masks to remove non-address
60303 current thread. This means a call to inferior_thread () will assert, and
60304 attempting to call get_current_regcache () will also call inferior_thread (),
60312 Despite the call to switch_to_no_thread in switch_to_inferior_no_thread from
60313 do_target_wait_1 in the backtrace above clearing inferior_ptid, the call to
60339 Maybe this shouldn't happen, or maybe it is just an unfortunate state to be
60340 in. But this prevents the use of target_has_registers to guard against the
60348 If the target has support for pointer authentication, gdb needs to use
60349 a couple (or 4, for bare-metal) mask registers to mask off some bits of
60350 pointers, and for that it needs to access the registers.
60356 Simon suggested the use of inferior_ptid to fetch the register cache, as
60357 opposed to relying on the current register cache. Though we need to make sure
60361 a thread to fetch a register cache from and checking if the thread is actually
60364 The following patch implements this idea with safety checks to make sure we
60365 don't run into assertions or errors. If any of the checks fail, we fallback to
60366 using a default mask to remove non-address bits of a pointer.
60370 spot to cache those values. Besides, the mask registers can change constantly
60373 In some cases, it is just not possible to get access to these mask registers,
60375 to remove the non-address bits should be enough.
60378 to access a memory address (now that gdb is capable of reading memory even
60379 with threads running). Thus gdb will attempt to remove non-address bits
60380 of that memory access, will attempt to access registers, running into errors.
60387 * peicode.h (pe_ILF_make_a_symbol): Use sprintf output to
60388 increment string_ptr to end of new string.
60410 for which this evaluates to:
60419 which evaluates to:
60424 Note how in this reason argument, the first two '\"' seems to form a pair
60439 needed to change ".*/" into "(.*/)?" in:
60445 However, due to the fact that I got this output:
60456 I decided to make the matching somewhat stricter, to make sure that the two
60459 The commit turned out to be more strict than intended, and caused a regression
60477 Fix the test-case regression by reverting to the situation before the commit:
60518 node of the manual. I'm checking in this patch to correct it.
60522 Add support to readelf for the PT_OPENBSD_MUTABLE segment type.
60535 ERROR: remote_download to target of \
60536 /data/vries/gdb/src/gdb/testsuite/lib/opencl_kernel.cl to opencl_kernel.cl: \
60542 - downloading to a location which is safe for parallel testing, by
60574 bfd: aarch64: Refactor stub sizing code
60576 related code before adding new logic there.
60590 ppc, the SystemTap support seems to libe in the ARCH-linux-tdep.c
60594 just not aware of how to choose between them.
60597 the changes to riscv-linux-tdep.c is trivial if anyone thinks that's a
60601 indirect operands, all of which appear to be working fine with this
60602 commit. The generic expression support doesn't appear to be
60603 architecture specific, so I'd expect that to work fine too.
60619 to complete a displaced step, then GDB is going to crash.
60641 I found an upcast from template_symbol to symbol. This was necessary
60647 gdb/testsuite: adjust test cases to previous "maintenance info line-table" change
60650 failed to adjust some test cases that relied on it. This patch fixes
60655 FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
60673 native-extended-gdbserver, we run into a few FAILs, due to the test-cases
60674 trying to match inferior output together with gdb output.
60691 Commit 1acc9dca423f ("Change linetables to be objfile-independent")
60692 changed "maintenance info line-table" to print unrelocated addresses
60703 These tests run "maintenance info line-table" to record the address of
60705 therefore expects these addresses to match the runtime addresses,
60708 Add back the relocated addresses, next to the unrelocated addresses,
60717 The unrelocated addresses can always be useful trying to map this
60720 Adjust the is_stmt_addresses proc in the testsuite to match the new
60747 string offset when setting up name for use by error messages.
60768 It's an odd thing to have objdump -x show a different section table
60769 to objdump -h, but that can happen if swapping in symbols leads to
60797 Check unbalanced braces in memory reference to avoid assembler crash
60826 point. The alternate entry point is to setup the Table of Contents (TOC)
60829 The alternate entry point is typically referred to as the global entry
60830 point (GEP) in IBM. The normal entry point is typically referred to as
60847 to SAL.PC. However, SAL has just been declared. The value of SAL.PC is
60849 needs to be after the initialization of SAL.
60852 variables to fix the regression failures.
60867 In a recent commit I forgot to add a double quote before chmod here:
60914 removed handling of HOST_DIR in local-remote-host-native.exp to fix FAILs
60918 a host board no longer make compilation fail due to commit 80d6c79866f
60935 So this patch changes the return value to -1, that can fix bugs and maintain
60946 definitions are moved to ppc-tdep.h we no longer need to import these .c files.
60976 This patch updates the test to allow this.
60987 - downloading an executable to target,
60991 /home/remote-target and remotedir set to /home/remote-target/tmp.
61007 remote_upload call to:
61020 In some cases GDB will fail when attempting to complete a command that
61024 left containing invalid data during calls to cp_symbol_name_matches_1.
61026 The first question to address is why we are calling a C++ support
61027 function when handling a rust symbol. That's due to GDB's auto
61036 Here's the problematic symbol that leads to our crash:
61054 Now it's true that is some cases we might be able to figure out that a
61057 C++ symbol, we could look for ':<' and '>:' and refuse to accept this
61060 However, I'm not sure it is always possible to tell that a demangled
61061 symbol is rust or C++, so, I think, we have to accept that some times
61068 In our test case the user tries to complete a symbol name like this:
61072 This results in GDB trying to find all symbols that match 'pars',
61092 tries to match the demangled problematic symbol name against the user
61094 of the symbol name is stripped off, thus, we check 'pars' against
61104 occurs on the last iteration of the loop, when we are comparing to
61109 skipping over template parameters. This allows GDB to match the
61110 symbol name 'foo<int>(int,int)' if the user supplies 'foo(int,'.
61115 And so, when GDB tries to match against '<impl str>::parse', the first
61121 removes the '<impl str>' component from the symbol name and tries
61122 again, this time comparing to 'parse', which does match.
61125 match string, and the full symbol name within the
61139 '--- full symbol name
61141 When GDB calls completion_match_for_lcd::finish, GDB tries to create a
61144 completion match string, then GDB tries to do some weird string
61145 creation, which will cause GDB to crash.
61149 argument. This non-template text means GDB is likely to either match
61153 understood the issue, I was able to reproduce the crash using a pure
61192 to match, GDB removes the 'foo<int>::' component, and starts the
61199 our match string, and this will cause GDB to crash.
61201 This problem was reported to the mailing list, and a solution
61206 The solution proposed here is similar to one proposed by the original
61214 What I have done is add an assert to strncmp_iw_with_mode that the
61217 I've also added some other asserts in related code, in
61221 the skip ranges relate to the match pointer.
61228 depends on symbols from within the C++ source code.
61230 Since I originally posted this patch to the mailing list, the
61236 Use rust_demangle to fix a crash
61239 code by changing the order languages are sorted. However, this new
61240 commit doesn't address the issue in the C++ code which was fixed with
61244 going to merge this fix. I've left the discussion of rust in this
61246 the context of GDB prior to commit 6e7eef72164c00d6a5a7.
61253 It tries to resemble what's underlying is_part_of_name(), but doesn't
61263 reference - there's no point in forcing people to parenthesize the
61264 symbol name). Similarly including '%' as an identfier for Intel syntax
61265 had no real significance to the rest of the assembler. If '%' was to be
61266 valid in (unquoted) symbol names, LEX_PCT would need to be defined.
61269 defining LEX_AT or LEX_QM to zero: That would make '@' and/or '?' no
61271 is_identifier_char() considers a valid part of a name. (There's a minor
61274 specifically looks at the first character of [possibly] a symbol name.)
61279 will fail anyway for a zero-length name.
61282 "allow_naked_reg" part of the condition: This has only led to
61290 isn't going to be a branch: All elements of same-mnemonic template
61304 respective templates. (No change to generated tables.)
61312 for a particular value, which we don't really need to retain.
61315 improves similarity to adjacent lines.
61330 subsequently, though, to not further clutter the change here.
61332 As to the TILEZERO special case: If more instructions like this
61333 appeared, a new attribute would likely be the way to go. But as long as
61341 This patch is a correction to the tests.
61344 Forgot to change the logic to access the reloc howto from
61350 Use rust_demangle to fix a crash
61352 This turns out to happen because a Rust minsym winds up in a
61354 completer to pass invalid arguments to string::append.
61358 that minsyms are correctly marked as "Rust", avoiding this code and
61368 I noticed that ui_out::do_progress_end is public, just to support one
61370 progress_info to call it from its destructor, and finally changes
61371 debuginfod-support.c to follow.
61377 global thread-id. This function is used to implement the 'save
61384 most consistent solution would be for the saved breakpoints file to
61393 I then update the existing print_thread_id to make use of this new
61394 function, and finally, I update breakpoint::print_recreate_thread to
61399 updated the single inferior test gdb.base/save-bp.exp to have it
61410 guaranteed to be written back to the object unless the actual object
61421 gprofng: Use prototype to call libc functions
61423 We use dlsym() to get a function from libc.
61424 In some files, pointers to these functions do not have prototypes.
61425 I also moved the shared definitions to libcollector/collect.h.
61446 psymbol_functions::fill_psymbol_map was removed, but I forgot to
61463 Regen ld/po/BLD-POTFILES.in
61469 checking. This of course doesn't stop the fuzzers finding a way to
61473 check that next element isn't pointing back to the header.
61479 program headers are going to have their p_paddr forced to zero. Thus
61480 when not matching against an existing segment, don't try to use a
61486 calls to is_contained_by using new maps.
61514 Add some types to struct builtin_type
61515 This adds some types to struct builtin_type, ensuring it contains all
61522 Rename objfile_type to builtin_type
61523 This renames objfile_type to be an overload of builtin_type, in
61533 don't think there is a need to do this any more (if there ever was),
61534 because it is ok for an objfile-allocated type to refer to an
61542 This changes the set type creation function to accept a type
61552 This changes the array type creation functions to accept a type
61563 This changes the range type creation functions to accept a type
61637 This changes a few spots to reuse the existing builting "void" type,
61670 to abstract out the placement of new types, so that type-creation code
61704 starts, I was able to reproduce it by hand using his instructions.
61706 The bug is that most of the code in do_mixed_source_and_assembly uses
61713 This patch fixes the problem by introducing a new type to represent
61715 bug to some degree (it's still possible to manipulate a CORE_ADDR in a
61719 and now it's not possible to compare an unrelocated address from a
61728 Update the NetBSD system call table to add eventfd(2) and timerfd(2).
61749 Target returns error code '01'.
61752 anymore from an old bp_location to the new matching one. When a shared
61757 called. It tries to map old locations to new locations, and if
61762 to be implemented like this:
61772 and was changed to this:
61781 bl_address_is_meaningful started to return false for them, where it
61789 describes roughly "how do we ask the target to insert that location".
61795 meaningful, as we ask the target to insert the point at a specific
61799 inserting a signal catchpoint is done by asking the target to report
61800 that specific signal. GDB doesn't associate an address to that.
61802 But tracepoints do have a meaningful address to thems, so they can't be
61804 bp_loc_software_breakpoint, because we don't want GDB to insert
61807 type describes that the way to insert these locations is with
61810 GDB won't try to insert a memory breakpoint for them.
61812 With this, I see a few instances of 'Target returns error code: 01'
61829 point. The alternate entry point is to setup the Table of Contents (TOC)
61832 The alternate entry point is typically referred to as the global entry
61833 point (GEP) in IBM. The normal entry point is typically referred to as
61844 This patch adds a new address to struct execution_control_state to hold the
61851 point, GDB will detect that and continue to execute backwards in the
61854 The patch fixes the behavior of the reverse-finish command on PowerPC to
61858 A new test is added to verify the reverse-finish command on PowerPC
61871 is moved to lib/gdb.exp and renamed repeat_cmd_until. The existing procedure
61873 procedure. The existing procedure gdb_step_until is changed to just call
61874 the new repeat_cmd_until procedure with the command set to "step" and an
61875 optional CURRENT string. The default CURRENT string is set to "\}" to work
61897 due to trying to match libinproctrace.so using the target path, while the
61911 Target returns error code '.In-process agent library not loaded in process. \
61918 - moving the gdb_load_shlib to after the clean_restart, such that the
61933 Handle REMOTE_HOST_USERNAME in local-remote-host, similar to how that's done for
61936 This helps to keep the home dir clean.
61948 to target the result $target_obj may be a relative file path, which may give
61949 problems when trying to do:
61965 on build, and then attempt to execute it on target:
62002 due to having:
62030 escape_for_host that care of this for us, allowing us to write:
62042 (bfd_mach_o_get_dynamic_reloc_upper_bound): ..to here.
62045 * scripttempl/z80.sc: Use source_sh to source elf.sc.
62058 gas: apply md_register_arithmetic also to unary '+'
62059 Even a unary '+' has to be considered arithmetic; at least on x86 in
62061 Convert this specific case to binary + (i.e. 0 + <register>). (An
62062 implication is that md_operator(,1,) would need to deal with arch-
62066 To avoid duplicating what make_expr_symbol() does to construct a
62068 file-scope static one. This way there's also no need to invoke
62078 While doing the conversion, switch the variable to "bool".
62087 gas: isolate macro_strip_at to macro.c
62089 which would set macro_strip_at to non-zero, so the variable is converted
62090 to a #define (retaining the logic in case a new user would appear) and
62095 of-hook has disappeared. Go a step beyond merely moving the to be called
62128 This commit aims to add some of this missing information.
62133 A recent change to rs6000-aix-tdep.c broke the build. This patch
62174 instead, leading to a spurious FAIL.
62178 I inspected other testcases to see if we already had similar
62195 registration line in the skeleton code. But this is confusion for
62196 users (I think) as the skeleton code is almost complete, except for
62197 one missing line which the user has to figure out for themselves. By
62199 should be included in the skeleton code, and the example is therefore
62202 Additionally, in the example skeleton code the way in which the
62204 counter is (a) not correct, and (b) counter to what is laid out in the
62207 I've removed the incorrect code and replaced it with more generic
62208 comments indicating what needs to be done. As the actual actions that
62209 need to be performed are both architecture specific, and dependent on
62210 the function being unwound, it's almost impossible to include more
62211 exact code here, but I think what I'm proposing is less misleading
62225 Skip the tests to avoid any problems.
62272 ld/testsuite: add aarch64nto to ld-aarch64
62282 according to ELF argument -zexecstack, -zstack-size and a new NTO
62284 -zstack-size is added in order to ensure compatibility with previously
62291 * emulparams/aarch64nto.sh: Move to nto.em.
62341 - Renamed relocations to match llvm and linux kernel.
62362 Output sections without any input sections to initialise their flags
62363 have their flags initialised by data statements to LOAD, ALLOC,
62365 making the script initialise the section type to INFO, one of the
62366 noalloc section types. That also allows the address of .comment to be
62367 set to zero, as is usual for non-alloc sections.
62369 Also, use source_sh for all of the sourced scripts to set up make
62373 * scripttempl/misc-sections.sc: Set .comment address to zero
62374 and type to INFO.
62376 * scripttempl/arclinux.sc: Use source_sh to source DWARF.sc
62431 to make_lplt_section (where we do want sorting).
62436 (Target_powerpc::Scan::global): ..and here to correct PLT16 reloc
62458 According to black 23, gdb/printing.py was mis-formatted. This patch
62464 This patch enables AIX folks to see vector register contents while they
62471 the same name, which is confusing and known to cause trouble.
62484 No probe matching objfile=`<any>', provider=`<any>', name=`three_arg'^M
62489 due to compiling two executables with the same name, and when uploading the
62490 second one from host to build, we run into:
62510 This looks similar to the the problem for which there's already an xfail, so
62527 (gdb) FAIL: gdb.arch/i386-pkru.exp: runto: run to main
62532 # If DEBUGINFOD_URLS is set, gdb will try to download sources and
62550 the .S file is already copied from build to host, such that it's available for
62553 But that's not the case for the .c file, which is needed by gdb to show a
62561 (gdb) FAIL: gdb.arch/amd64-entry-value-inline.exp: continue to breakpoint: \
62571 Add --enable-linker-version option to bfd linker to add an entry in the .comment section.
62590 The DAP code already claimed to implement "scopes" and "evaluate", but
62602 adds a single new method to aid in this change. Unlike the earlier
62607 This changes gdb_mpq to hide its data, and renames the data member
62608 from 'val' to 'm_val', following gdb convention.
62612 Add operators and methods to gdb_mpq
62613 This adds some operators and methods to gdb_mpq, in preparation for
62622 This changes gdb_mpz to hide its data, and renames the data member
62623 from 'val' to 'm_val', following gdb convention.
62627 Add methods and operators to gdb_mpz
62628 This adds various methods and operators to gdb_mpz, as a step toward
62638 the .c files include this first. This patch changes this code to
62647 This patch fixes the problem by using a list to hold the frames. This
62663 It contains a number of tests related to remote file manipulation, exercising:
62685 Adjust the decoded line output to fit into 80 columns.
62715 to file scope.
62743 * dwarf2dbg.c (dw2_line, dw2_filename): Move to file scope and..
62745 (label_num, last_used, last_used_dir_len): Move to file scope.
62750 gas/ecoff.c: don't use zero struct copies to init
62771 The gdbarch::max_insn_length field is used mostly to support displaced
62774 instruction, and later, when fixing up the instruction, in order to
62777 However, it has started to be used in other places in GDB, for
62781 The problem is that the value assigned to max_insn_length is not
62783 that length, as required to support displaced stepping, see rs600,
62786 It seems to me that we are overloading the meaning of the
62787 max_insn_length field, and I think that could potentially lead to
62794 claims to do; represent the maximum length of a single instruction.
62797 displaced step buffers to be a single instruction in size, I propose
62802 I've updated all architectures to setup the new field if appropriate,
62803 and I've audited all calls to gdbarch_max_insn_length and switched to
62814 False to True. All components that previous set the invalid field to
62819 Component they need to make a choice to add an 'invalid=False' line
62822 The flip side of this is that 'invalid=False' seems to be far more
62824 we shouldn't be aiming to reduce our typing, rather we should choose
62825 based on which is least likely to introduce bugs. I think assuming
62828 Some additional components need to have an 'invalid=False' line added
62829 to their definition, these are components that have a predefault
62830 value, which is sufficient; the tdep code doesn't need to replace this
62831 value if it doesn't want to.
62834 considered to be invalid if they have not changed from their
62837 There's no change in the generated code after this commit, so there
62849 The gdbarch is already zero initialized, but these lines seem to
62850 exists so that we can know when to compare against "0" and when to
62851 compare against "NULL". At least, this seems to be useful in some
62852 places in the generated code.
62859 which doesn't compile as we compare a ULONGEST to NULL.
62868 as their initial value, and gcore_bfd_target now compares to NULL not
62877 We currently generate some validation code within the gdbarch getter
62880 This commit adjusts the algorithm used to generate this validation
62881 slightly to make the gdbarch.py code (I think) clearer; there's no
62882 significant changes to what is generated.
62889 - If the Value has its 'predicate' field set to true, then check the
62893 - If the Value has its 'invalid' field set to True, or the Value has
62924 All use a postdefault but no predefault to set the default value for
62941 Additionally, this commit allows a component to have both a predicate
62942 and for the 'invalid' property to be a string.
62944 Removing the option for 'invalid' to be None allows us to simplify the
62947 Allowing a component to have both a predicate and an 'invalid' string
62949 but also allow a predicate to ensure that the field has changed from
62952 This functionality isn't going to be used in this series, but I have
62954 it easier for others to add new components in the future.
62956 In gdbarch_types.py, I've updated the type annotations to show that
62958 for this field from None to False.
62960 The change to using False as the default is temporary. Later in this
62961 series I'm going to change the default to True, but we need more fixes
62966 predicate field set to True and the invalid field set to a string.
62973 skipped due to the invalid field being False. This comment is inline
62975 of the getters do have validation, so I think it is reasonable to have
62977 reason, rather than due to some bug.
62979 In gdbarch_components.py I've had to add 'invalid=True' for two
62987 ended up having to add this additional logic block:
62991 print(f" gdb_assert (gdbarch->{c.name} != {c.predefault});", file=f)
62993 which was needed to ensure we continued to generate the same code as
62998 print(f" /* Skip verify of {c.name}, invalid_p == 0 */", file=f)
63001 improving this in a later commit, but I don't plan to do that in this
63012 and set its invalid attribute to a string.
63014 This doesn't seem reasonable to me, I see no reason why a field can't
63016 and an invalid expression, which can be used to validate the value
63019 In this commit I restructure the verify_gdbarch generation code to
63020 allow the above, there is no change in the actual generated code in
63032 Due to the algorithm used in gdbarch.py for generated verify_gdbarch,
63037 There is no change in the generated code after this commit.
63044 Due to the algorithm used to generate verify_gdbarch in gdbarch.py, if
63065 its own twist -- some hex digits added to the end of a symbol. So,
63066 while gdb finds the correct name of "main":
63068 (top-gdb) p name
63075 This could perhaps be fixed. I also filed a new PR to suggest
63076 preferring the linkage name of the main program.
63080 "main.rs" -- i.e., the bug is specific to the source file name. The
63081 crash also seems to require the nested function inside of 'main', at
63089 Meanwhile, as I think it's important to fix this crash sooner rather
63090 than later, this patch changes inside_main_func to check that the
63186 The problem is that the TUI setup code uses "setenv TERM ansi", which has no
63205 test-case, to better understand whether the problem I'm looking at is
63206 related to the TUI or not.
63243 - adding an optional argument target_description to proc
63263 switch to main thread
63267 Use the "interrupt" command to stop the target^M
63273 the following monitor exit command to succeed.
63289 out-of-tree for a while but I think it's worth upstreaming. The code
63299 Remove dead code from scalar_binop
63300 scalar_binop has code for "&&" and "||", but I think this code can't
63301 currently be run -- and, furthermore, it doesn't make sense to have
63302 this code here, as the point of these operators is to short-circuit
63305 This patch removes the dead code.
63314 Similar to the arm target documentation situation, the documentation of the
63320 This patch attempts to clarify a bit more what all the possible features are.
63330 This patch attempts to clarify a bit more what all the possible features are.
63351 Change linetable_entry::is_stmt to bool
63352 This changes linetable_entry::is_stmt to type bool, rather than
63370 applies const to them.
63372 Note there is one hack to cast away const in mdebugread.c. This code
63373 allocates a linetable using 'malloc', then later copies it to the
63374 obstack. While this could be cleaned up, I chose not to do so because
63381 Change linetables to be objfile-independent
63382 This changes linetables to not add the text offset to the addresses
63384 together in one patch: I renamed the 'pc' member to 'm_pc', added the
63386 errors. Where possible I generally chose to use the raw_pc accessor,
63400 Add operator< and operator== to linetable_entry
63401 This adds a couple of comparison operators to linetable_entry, and
63402 simplifies both the calls to sort and one other spot that checks for
63413 gprofng: PR30195 [display text] Source code location can not be found
63422 PR gdb/30214: Prefer local include paths to system include paths
63427 include paths to directories within a clone or release tarball, then
63432 To fix, sort the include paths in INTERNAL_CFLAGS_BASE to add CFLAGS
63441 Similar to d58854b6dd88e05dbf2a5d1c32c5acb7bd6ea274 for x86_64.
63447 …/usr/bin/ld.bfd: /tmp/ccR8Yexy.o: TLS transition from R_386_TLS_GD to R_386_TLS_IE_32 against `a' …
63448 /usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
63455 intended to be unsupported.
63458 projects specify -mrelax-relocations=no to build relocatable object
63463 with -fno-plt will lead to the `TLS transition from R_386_TLS_GD ...`
63464 error which is hard to reason about.
63466 It seems easier to apply this simple change to prevent the footgun.
63478 …/usr/bin/ld.bfd: /tmp/ccSSBgrg.o: TLS transition from R_X86_64_TLSGD to R_X86_64_GOTTPOFF against …
63479 /usr/bin/ld.bfd: failed to set dynamic section sizes: bad value
63486 intended to be unsupported.
63489 projects specify -mrelax-relocations=no to build relocatable object
63494 with -fno-plt will lead to the `TLS transition from R_X86_64_TLSGD ...`
63495 error which is hard to reason about.
63497 There is another argument which may be weaker but relevant to the
63499 likely need some assembler support to disable relaxation. Without the
63500 support and if the compiler needs to support many gas version, the
63501 simplest solution would be to use -Wa,-mrelax-relocations=no.
63541 "--Type <RET> for more, q to quit, c to continue without paging--". ]
63565 - "q\n" is replied to the pagination prompt
63566 - without waiting for response to the "q\n", another test_multiline command is
63568 - in response to the "q\n" we get "Quit\n(gdb) "
63570 - the test-case concludes that there's a valid response to the "q\n", and
63601 FAIL: $exp: runto: run to main
63612 Sysroot is set to "target:", so gdb downloads the shared library from the target
63618 and internally refers to it as "target:/home/remote-target/$so".
63620 In load_auto_scripts_for_objfile, gdb gives up trying to auto-load scripts
63638 One spot that checks test_compiler_info can be switched to use
63642 I found a few more spots that check istarget that can be switched to
63649 This changes many tests to use 'require' when checking target_info.
63650 In a few spots, the require is hoisted to the top of the file, to
63651 avoid doing any extra work when the test is going to be skipped
63656 Move allocate_stub_method to stabsread.c
63727 Logic exists to deal with prereqs or prereqs, and in many cases
63730 - FP is already a prereq to F16,
63731 - SIMD and F16 are already prereqs to COMPNUM, and
63732 - SVE2 and BFLOAT16 are already prereqs to SME.
63739 Keep both representing exclusively what was parsed from input, to avoid
63744 the testcase to actually use distinguishable source and destination
63746 high bit encodings (from REX to VEX) can be noticed (in turn
63747 specifically assertions [not] triggering in the respective code).
63754 to avoid introducing a fragile cast) to convert to local variable to
63755 "unsigned", which in turn requires an adjustment to the pre-existing
63761 template. (This may allow further tightening, but if so that's to be the
63767 This is benign for all existing insns, but is going to be needed for
63769 function, to avoid the need for a forward declaration.
63779 (struct frame_data): Move to file scope.
63812 objdump's read_section is never used for bss-style sections, so to
63827 results in an internal error in frag_new due to abs_section_offset
63828 wrapping from -1 to 0. Frags in the absolute section don't do much so
63875 continue to end (timeout)
63878 The problem is that the test-case tries to match the "[Thread ... exited]"
63889 to test has nothing to do with the message, so it should pass. I only added
63891 gdb.threads/thread-specific-bp.exp") to handle a race, not realizing doing so
63923 Connection to localhost closed.^M^M
63942 due to using the system gdbserver /usr/bin/gdbserver rather than the one from
63946 remote-stdio-gdbserver, allowing find_gdbserver to do its work, such that we
63953 Connection to localhost closed.^M^M
63986 intended to kill gdbserver instead tries to kill the ssh client session in
63988 user (remote-target on localhost) to kill a pid owned by the the build user
64002 an observation is made that test-case gdb.server/server-kill.exp claims to
64011 - the method to get the gdbserver PID added in the commit doesn't work
64034 A "gdb_remote_download target" copies from build to target. So $binfile is
64035 assumed to be a target path, but it's actually a build path.
64038 - fist copying $binfile.bak to $binfile, and
64043 # Make sure we have the original symbol file in a safe place to copy from.
64046 and since "gdb_remote_download host" copies from build to host, $binfile.bak
64047 is assumed to be a host path, but it's actually a build path. This happens to
64051 So let's fix this by making build rather than host the "safe place to copy
64092 line where it wants to start the test and does a continue. GDB does not
64093 stop again on the same line where it is stopped, but rather continues to
64096 Initialize variable A to zero so the break on main will stop before setting
64112 and update the reference to Microsoft's docs.
64114 the bfd over to in-memory.
64117 Correct test target/skip lines to fix fails on alpha-dec-vms,
64126 Re: Move nm.c cached line number info to bfd usrdata
64143 (dummy_reloc16_extra_cases): Adjust to suit. Don't abort.
64145 errors. Tidy formatting. Use bfd_signed_vma temp var to
64160 for architectures to provide either a return_value or
64161 return_value_as_value implementation. Because of my failure to test
64169 I started trying to change GDB to not force architectures to provide a
64172 another, and it's easy to add a dummy implementation in the mean time.
64173 So it's better to not complicate the core of GDB to know how to deal
64177 (which we'll need to convert to the new return_value_as_value), which
64179 of return_value_as_value to avoid the failed assertion.
64188 and then calls objfile::forget_cached_source_info. It seems better to
64189 me to just have the method do all the work.
64194 I ran across the attribute reprocessing code recently and noticed that
64196 each spot reading attributes needs to be careful to "reprocess" them
64199 This seemed excessive to me, because while reprocessing applies to any
64204 few spots to call it. This is easily done because reading the
64216 This field is never initialized, it seems to me like it would be a good
64217 idea to initialize it to nullptr to avoid bad surprises.
64225 I realized that the memory for interp names does not need to be
64226 allocated. The name used to register interp factory functions is always
64228 interp_lookup to pass that name instead of the string that it receives
64230 then interps can simply store pointers to the name.
64232 So, change interp_lookup to pass `factory.name` rather than `name`.
64233 Change interp::m_name to be a `const char *` rather than an std::string.
64244 Since we don't need to copy it, make ui_interp_info non-copyiable, to
64252 Fix selfcheck regression due to new maint command
64253 Simon points out that the new maint command, intended to fix a
64262 gprofng reads Dwarf to find function names, sources, and line numbers.
64286 this caused the configure check "checking for ELF support in BFD" to stop
64287 working causing build failures as we need our LDFLAGS to be used for
64290 That change also meant the code failed to match the comments. Add back the
64319 to wait for all pending writes to the index cache.
64390 After upgrading the host OS, autotools were upgraded to 2.71
64425 Connection to localhost closed.^M^M
64429 The problem is that we're trying to run an executable on the target board using
64432 After fixing this by downloading the exec to the target board, we run into:
64437 Connection to localhost closed.^M^M
64441 Fix this by using an absolute path name for the exec on the target board.
64447 - fix a PATH-in-test-name issue
64476 Fix these (and make things more similar to the gdb.exp procs) by:
64493 …ep.c:338:32: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64496 …ep.c:345:36: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64499 …ep.c:351:37: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64502 …ep.c:367:36: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64505 …ep.c:375:35: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64508 …ep.c:380:35: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
64534 to. However, we do need this expression in order to select an integer
64543 since that returns unsigned int even when the enum decays to signed
64552 …unittests/enum-flags-selftests.c:254:1: error: static assertion failed due to requirement 'gdb::is…
64568 This is a bit hard to decode, but basically enumerations have the
64570 their implicit underlying type is unsigned. This code:
64592 somehow, changing integer_for_size to use std::underlying_type breaks that.
64594 Since the current code does what we want, and I don't see any way of doing it
64602 Use a pthread_barrier to ensure the child thread is started before
64603 the main thread gets to the first breakpoint.
64606 Use a pthread_barrier to ensure all threads are started before
64607 proceeding to the breakpoint where info threads output is checked.
64614 file and the expect script to support SYS_exit as an alternative to
64618 hardcoded syscall numbers specific to Linux kernels. Skip these
64626 Setting the stack size to 2*PTHREAD_STACK_MIN actually lowered the
64628 the test program to overflow their stack and crash. Double the
64636 registers to support TLS on other architectures (tpidr* on ARM and
64644 The orig_rax pseudo-register is Linux-specific and isn't relevant to
64646 system registers in other OS ABIs. This allows the test to pass on
64671 [gdb/testsuite] Move gdb.base/gdb-caching-proc.exp to gdb.testsuite
64676 Move test-case gdb.base/gdb-caching-proc.exp to gdb.testsuite, renaming it to
64677 gdb.testsuite/gdb-caching-proc-consistency.exp to not clash with
64691 and I want to cache the result of have_compile_flag.
64775 The recent work to have gdb link via libtool means that there are a
64779 Note that gdb can't really fully implement distclean due to the desire
64780 to put certain generated files into the distribution. Still, it can
64792 (bfd_mach_o_pre_canonicalize_one_reloc): Init sym_ptr_ptr to
64818 Downgrade objdump fatal errors to non-fatal
64820 to my_bfd_nonfatal.
64826 calls to my_bfd_nonfatal and clean up memory.
64831 Downgrade addr2line fatal errors to non-fatal
64837 Downgrade nm fatal errors to non-fatal
64838 Many of the fatal errors in nm ought to be recoverable. This patch
64840 to memory allocation failures.
64849 to read dynamic symbols for synth syms.
64856 Move nm.c cached line number info to bfd usrdata
64857 Replace the static variables used by nm to cache line number info
64858 with a struct attached to the bfd. Cleaner, and it avoids any concern
64878 bfd_nonfatal is used when a bfd error is to be printed. That's not
64881 * objdump.c (nonfatal): Rename to my_bfd_nonfatal.
64934 These two implementations accept "-SIGINT". But according to the POSIX
64935 spec [2], the kill utility should recognize the signal name without the
64940 Specify the signal to send, using one of the symbolic names defined
64943 the symbolic name 0 shall be recognized, representing the signal
64947 Equivalent to -s signal_name. [Option End]
64949 So, just in case some /bin/kill implementation happens to not recognize
64950 the SIG prefixes, change these two other calls to remove the SIG
64969 Simon pointed out that the recent patch to add half-float support to
64981 Small cleanup to use std::string::size instead of calling strlen on
64998 check_VecOperands() not paying attention to the immediately following
64999 call to get_broadcast_bytes() doing exactly that (again) first thing.
65010 As to help text - the default reported there clearly shouldn't be
65017 In the course of using the upcoming .insn directive to eliminate various
65024 There isn't really any good reason for code in rdcoff.c to distinguish
65027 coff_get_slot, simplifying the code.
65032 (parse_coff_base_type): Use coff_get_slot to store baseic types.
65045 Don't allocate entire array from 0 to type number, allocate a
65068 1933 | auto pair = internalvars.emplace (std::make_pair (name, internalvar (name)));
65074 uninitialized bytes of field u over from the temporary object to the new
65087 prints as an integer. I tracked this down to a missing case in
65106 to ignore static data member so that we can get the expected result.
65151 Don't write zeros to a gap in the output file
65174 'var_ctf' has unknown type; cast it to its declared type^M
65181 for ctf is to be used when dwarf2 is not present, and gdb reflects that,
65186 unconditional reading of ctf, allowing us to do:
65204 than dwarf2. The conditional reading of ctf is still done after the attempt to
65206 we've tried to read it.
65208 The new command allow us to replace uses of -Wl,--strip-debug added in commit
65223 to update the year. I found a bunch of other files that are in the same
65236 Once a baton is stored in a struct type, it doesn't make sense to
65246 code to be type-safe. If a new type is needed here, it seems like
65265 leads to a segfault. Fixed with the following patch, but I suppose
65269 so I'm not inclined to change gas behaviour to that extent.
65319 Error while executing Python code.^M
65323 due to having only 4 insn instead of 100:
65368 gdb: add HtabPrinter to gdb-gdb.py.in
65369 When debugging GDB, I find it a bit tedious to inspect htab_t objects.
65370 It is possible to find the entries by poking at the fields, but it's
65371 annoying to do each time. I think a pretty printer would help. Add a
65372 basic one to gdb-gdb.py.
65381 it's easy enough to cast the addresses to the right type to use them:
65412 value_in is unused. From git log, it seems to have been part of the
65431 due to the regexp matching "Hardware watchpoint" but not "Watchpoint":
65448 called which sets the disposition of the breakpoint to
65449 disp_del_at_next_stop and sets the breakpoint number to 0. Setting
65450 the breakpoint number to zero has the effect of hiding the breakpoint
65454 It was brought to my attention during a review of another patch[1]
65455 that setting a breakpoints number to zero will suppress the MI
65457 can be seen to be true, in delete_breakpoint, if the breakpoint number
65469 During my initial testing I wanted to see how GDB handled the
65470 breakpoint after it's number was set to zero. To do this I created
65476 thread-specific breakpoint, then use 'continue&' to resume the
65478 thread never stops - instead it sits in the spin. I then tried to use
65479 'maint info breakpoints' to see what GDB thought of the
65515 As the thread-specific breakpoint is set to disp_del_at_next_stop, and
65524 thread-id involves calling find_thread_global_id to convert the global
65525 thread-id into a thread_info*. Then calling print_thread_id to
65533 In this commit I've added an assert to print_thread_id (gdb/thread.c)
65534 to check that the pointed passed in is not nullptr. This assert would
65543 There is a comment explaining why this is the case in the code; it's
65549 But I realised this wasn't going to be good enough. When the MI
65551 parsing the notifications would not be able to match
65552 =breakpoint-deleted notification to the earlier =breakpoint-created
65561 The test I used to expose the above crash also brought another problem
65562 to my attention. In the above test we used 'continue&' to resume,
65581 …^done,threads=[{id="1",target-id="Thread 0x7ffff7c5eb80 (LWP 987035)",name="thread-bp-delet",state…
65589 I say "as expected" because the number was set to zero. But, even if
65590 the number was not set to zero we still wouldn't see the
65596 late. But remember, by setting the number to zero the breakpoint will
65602 not yet been sent out. This doesn't seem right to me.
65606 wait for GDB to next stop before sending the notification.
65612 of setting the disposition to disp_del_at_next_stop and setting the
65613 number to zero, we now just call delete_breakpoint directly.
65622 we no longer need to worry about 'maint info breakpoints' trying to
65627 remove_threaded_breakpoints) didn't take this approach. This code was
65629 to why this approach was taken, and the original email thread offers
65631 this change, so I'm hopeful that this is going to be fine.
65644 implementation. This callback is supposed to trigger whenever the
65671 associated with the breakpoint is released, so, when we get to the
65672 inferior_exit observer, there's no longer a Python object to call the
65675 My solution is to follow the model for how bpfinishpy_pre_stop_hook
65692 New tests added to covers all the cases I've discussed above.
65713 gdb.mi/mi-pending.exp, but I have instead updated mi-pending.exp to
65715 require making a couple of adjustments to mi-support.exp, but I think
65716 the result is that mi-pending.exp is now easier to read, and I see no
65720 test name was wrong - it described a breakpoint as pending when the
65723 But there's no changes to what is actually being tested after this
65731 I noticed that several tests included copy & pasted code to run the
65735 In this commit I factor this code out into a helper proc in
65737 pattern to make use of the helper proc.
65747 tests are going to be repeated once with the MI in the main UI, and
65756 The BODY will be run twice, once with VAR set to 'main' and once with
65757 VAR set to 'separate', inside BODY we can then change the behaviour
65763 be run just once with VAR set to 'main'.
65766 going to add another similar test in a later commit.
65768 There should be no change to what is tested with this commit.
65778 In this commit I add an extra (optional) argument to the
65779 mi_clean_restart proc, and pass this through to mi_gdb_start.
65782 also want to pass the 'separate-mi-tty' or 'separate-inferior-tty'
65783 flags to mi_gdb_start, and avoids having to otherwise duplicate the
65822 I know we need to be careful when adjusting MI output, but I'm hopeful
65831 this oddity either in the GDB code, or in the test, I suspect this was
65833 the expected results. I've updated these tests to remove the
65836 I've update lib/mi-support.exp to provide support for building
65841 lib/mi-support.exp functionality, but I'm going to do that in a later
65842 patch, this way it is clear what changes I'm actually proposing to
65843 make to the expected output.
65845 As I said, I hope that frontends will be able to handle this change,
65903 contributions to be ordered by section number and offset, otherwise it's
65904 unable to resolve line numbers.
65917 and to clean up input_debug when done.
65923 is in ancient code using "long" for counts and sizes, which is why the
65926 about signed integer overflow. It would be a good idea to replace
65928 care to do for COFF/ECOFF.
65937 bfd so no need to test". Wrong, this is objcopy output.
65949 During my audit of the use of gdb_exception with regard to QUIT
65953 Static analysis found this call path from the destructor to
65965 Since it's not safe to do a 'throw' from a destructor, we simply
65968 exception to be rethrown at the next QUIT check.
65974 order to restart forced quit processing at the next QUIT check.
65975 This is required because it isn't safe to throw into/through
65978 Thanks to Pedro Alves for suggesting this idea.
65995 calls set_quit_flag(). I've revised the later patch to call
65999 used as a bool, so I also changed its type to bool in this commit.
66009 but with a throw following a check to see if 'reason' is
66012 Most of these are straightforward - it made sense to continue to allow
66013 an existing catch of gdb_exception to also catch gdb_exception_quit;
66024 path to maybe_quit():
66031 Since there is a path to maybe_quit(), we must ensure that the
66032 catch block is not permitted to swallow a QUIT representing a
66035 However, for this case, we must take care not to change the way that
66036 Ctrl-C / SIGINT is handled; we want to send a suitable EINTR reply to
66040 checking the 'reason' code in the catch block for gdb_exception.
66045 a call path to maybe_quit():
66060 to swallow a gdb_exception_quit for SIGTERM. However, it does seem
66061 reasonable to output the exception via the mi interface so that some
66074 As with the Python updates, we don't want to permit this code to
66079 a gdb_exception is caught in try/catch code in the Guile extension
66082 cause the necessary cleanups to occur followed by GDB exiting.
66094 This commit contains updates to Python's QUIT handling. Ideally, we'd
66095 like to throw gdb_exception_forced_quit through the extension
66096 language; I made an attempt to do this for gdb_exception_quit in an
66098 (almost certainly) not safe to do so.
66100 Still, we definitely don't want to swallow the exception representing
66101 a SIGTERM for GDB, nor do we want to force modules written in the
66102 extension language to have to explicitly handle this case. Since the
66103 idea is for GDB to cleanup and quit for this exception, we'll simply
66105 had managed to make it back to the top level.
66115 concerned that there might be instances in which a QUIT (due to either
66116 a SIGINT or SIGTERM) might not cause execution to return to the top
66117 level. In some (though very few) instances, it is okay to not
66119 it is ever okay to swallow the exception caused by a SIGTERM.
66120 Allowing that to happen would definitely be a deviation from the
66127 1) There is no call path to maybe_quit() in the try block. I used a
66128 static analysis tool to help make this determination. In
66134 doesn't want to handle; these "not handled" conditions
66142 My first thought was to add catch blocks for gdb_exception_quit and
66144 handled without adding additional code by simply catching
66147 There are some oddball cases which needed to be handled differently,
66163 GDB will periodically check to see whether a Ctrl-C or SIGTERM has
66165 GDB's code. QUIT is defined to invoke maybe_quit(), which will be
66166 periodically called during any lengthy operation. This is supposed to
66167 ensure that the user won't have to wait too long for a Ctrl-C or
66168 SIGTERM to be acted upon.
66171 to pass the SIGINT onto the inferior or to call quit() which causes
66172 gdb_exception_quit to be thrown. This exception (usually) propagates
66173 to the top level. Control is then returned to the top level event
66178 cause GDB to exit(), but prior to that happening, the inferiors
66187 to get out of sync. When that happens, the "current_thread_ != nullptr"
66192 the way to the top level, and then have the top level call quit_force
66200 to be thrown.
66203 to catch gdb_exception_forced_quit and then call quit_force() from the
66204 catch block. I also changed start_event_loop() to also catch
66206 that catch block, it's sufficient to simply rethrow the exception
66207 since it'll be caught by the newly added code in captured_main().
66211 However, there are many other paths back to the top level which this
66213 code in GDB in which calls in the try-block might (eventually) call
66217 due to a swallowed gdb_exception_quit in one of the cases I've
66229 code 'REASON_FORCED_QUIT', return mask 'RETURN_MASK_FORCED_QUIT', and
66232 The addition of this exception plus supporting code will allow us to
66234 recognition of that fact to the upper levels of GDB where it can be
66236 will attempt to exit via a series of calls from the QUIT checking
66237 code. However, before it can exit, it must do various cleanups, such
66239 attempted while GDB is executing very low level code, such as reading
66241 GDB's state is out of sync with regard to the cleanup code's
66261 In a much earlier patch (see bug #12533), we changed the Python code
66262 to release new values from the value chain when constructing a
66267 However, suppose a value is passed to Python from some code in gdb
66268 that needs to use the value after the call into Python. In this
66270 because gdb code doesn't generally keep strong references to values (a
66271 consequence of the ancient decision to use the value chain to avoid
66274 This scenario can happen, as it turns out, when a value is passed to
66284 scoped_value_mark to ensure that the requirements of bug #12533 are
66289 places needed to be touched.)
66296 made a trivial ("require") change to it. However, while this fails
66326 the child, so better stop and let the user decide how to proceed.
66340 Aborting/stopping in this case doesn't make sense to me. As we're
66341 following the parent, thread 2 will still continue to exist in the
66350 back to the unfollowed thread, follow it (stay with the parent), and
66351 don't abort/stop. If we're following a fork (as opposed to vfork),
66352 then switch back again to the thread that the user was trying to
66354 selected, as we will need to see a vfork_done event first, before we
66357 As I was working on this, I managed to end up calling target_resume
66358 for a solo-thread resume (to collect the vfork_done event), with
66360 pointing to the vfork child. For a solo-thread resume, the scope_ptid
66361 argument to target_resume must the same as inferior_ptid. The mistake
66370 but I think it doesn't hurt to catch such a mistake earlier, hence the
66390 threads meanwhile), gdb switches back to that thread, gdb follows
66395 still switch back to the forking thread, even if you didn't want to
66405 gdb switches back to thread 1, and follows the fork.
66420 gdb switches back to thread 1.1, and follows the fork.
66423 get_last_target_status to find the thread that has a pending fork, it
66424 is possible to confuse it. For example, "run" or "start" call
66437 ... does not follow to the fork child of inferior 1, because the
66439 TARGET_WAITKIND_FORKED. Thanks to Simon for this example.
66441 All of the above are fixed by this patch. It changes follow_fork to
66442 not look at get_last_target_status, but to instead iterate over the
66446 gdb.base/foll-fork.exp is augmented to exercise the last "start"
66464 [Switching to process 693251]
66494 The current code already behaves this way, though in a poor way. This
66499 point to it, so we can say that the thread exited meanwhile.
66501 The patch also extends "info program" output a little, to let the user
66525 The existing code considered these running/exited cases as an error,
66554 The gdb.base/info-program.exp testcase was much extended to test
66561 Convert previous_inferior_ptid to strong reference to thread_info
66565 issue, I realized that the problem was related to how I was using
66566 previous_inferior_ptid to look up the thread the user had last
66572 I decided to fix this by replacing previous_inferior_ptid with a
66573 strong reference to the thread, called previous_thread.
66575 I have since found a new motivation for this change -- I would like to
66576 tweak "info program" to not rely on get_last_target_status returning a
66582 A new update_previous_thread function is added that can be used to
66584 several places that really want to get rid of previous_thread thread,
66616 I.e., GDB was failing to restart the thread counter back to 1, because
66617 the previous_thread thread was being help due to the strong reference.
66631 (normal_stop): Adjust to compare previous_thread and
66659 This patch changes them to:
66701 easier to make typing work in a subsequent patch, but it also helps
66723 Add type annotations to gdbarch*.py to fix all errors shown by pyright.
66724 There is one change in copyright.py too, to fix this one:
66736 gdb: split gdbarch component types to gdbarch_types.py
66743 Solve this by introducing a third file, gdbarch_types.py, to define
66746 import. For this to work though, gdbarch-components.py needs to be
66747 renamed to gdbarch_components.py.
66757 helpful when editing Python code. I don't think I have to explain the
66758 advantages of type checking to a crowd used to C/C++.
66760 Setting typeCheckingMode to "strict" makes pyright flag a bit more type
66771 helpful to ensure that all component types had a `predicate` attribute.
66772 The generator code could then avoid having code like "if the component
66774 component types have a predicate attribute which defaults to False. We
66776 Info.__init__. We however need to make the printer parameter of
66785 The way _Component uses kwargs is handy to save a few characters, but it
66790 it would be better to spell out the parameters.
66805 gdb: remove invalid / dead code from gdbarch.py
66820 will cause gdb to crash. This happens due to some confusion about
66821 field indices in rust_language::print_enum. The fix is to use
66833 Now that gdb_indent.sh has been removed, I think it makes sense to
66841 arranges for range types to be handled this way in ax-gdb.c, letting a
66848 constructs probably cannot reasonably be converted to agent
66853 conditional breakpoint from 5 minutes to 5 seconds.
66857 examining the code in the corresponding evaluation methods.
66862 This commit makes use of the new script to regenerate the Linux
66879 The result is that a lot more syscalls end up assigned to groups.
66889 <syscall name="accept4" groups="network"/>
66890 <syscall name="accept" groups="network"/>
66891 <syscall name="access" groups="file"/>
66892 <syscall name="acct" groups="file"/>
66893 - <syscall name="arch_prctl" groups="process"/>
66894 <syscall name="bind" groups="network"/>
66895 + <syscall name="bpf" groups="descriptor"/>
66896 <syscall name="break" groups="memory"/>
66897 <syscall name="brk" groups="memory"/>
66898 + <syscall name="bsd43_fstatfs" groups="descriptor"/>
66899 + <syscall name="bsd43_fstat" groups="descriptor"/>
66900 + <syscall name="bsd43_killpg" groups="process"/>
66901 + <syscall name="bsd43_kill" groups="process"/>
66902 + <syscall name="bsd43_lstat" groups="file"/>
66903 + <syscall name="bsd43_madvise" groups="memory"/>
66904 + <syscall name="bsd43_mincore" groups="memory"/>
66905 + <syscall name="bsd43_mmap" groups="descriptor,memory"/>
66906 + <syscall name="bsd43_mprotect" groups="memory"/>
66907 + <syscall name="bsd43_mremap" groups="memory"/>
66908 + <syscall name="bsd43_munmap" groups="memory"/>
66909 + <syscall name="bsd43_oldfstat" groups="descriptor"/>
66910 + <syscall name="bsd43_oldstat" groups="file"/>
66911 + <syscall name="bsd43_quotactl" groups="file"/>
66912 + <syscall name="bsd43_sbreak" groups="memory"/>
66913 + <syscall name="bsd43_sbrk" groups="memory"/>
66914 + <syscall name="bsd43_statfs" groups="file"/>
66915 + <syscall name="bsd43_stat" groups="file"/>
66916 + <syscall name="cacheflush" groups="memory"/>
66917 <syscall name="chdir" groups="file"/>
66918 <syscall name="chmod" groups="file"/>
66919 <syscall name="chown32" groups="file"/>
66920 <syscall name="chown" groups="file"/>
66921 <syscall name="chroot" groups="file"/>
66922 + <syscall name="clone2" groups="process"/>
66923 + <syscall name="clone3" groups="process"/>
66924 <syscall name="clone" groups="process"/>
66925 <syscall name="close" groups="descriptor"/>
66926 <syscall name="connect" groups="network"/>
66927 + <syscall name="copy_file_range" groups="descriptor"/>
66928 <syscall name="creat" groups="descriptor,file"/>
66929 <syscall name="dup2" groups="descriptor"/>
66930 <syscall name="dup3" groups="descriptor"/>
66932 <syscall name="epoll_create1" groups="descriptor"/>
66933 <syscall name="epoll_create" groups="descriptor"/>
66934 <syscall name="epoll_ctl" groups="descriptor"/>
66935 + <syscall name="epoll_pwait2" groups="descriptor"/>
66936 <syscall name="epoll_pwait" groups="descriptor"/>
66937 <syscall name="epoll_wait" groups="descriptor"/>
66938 <syscall name="eventfd2" groups="descriptor"/>
66939 <syscall name="eventfd" groups="descriptor"/>
66940 + <syscall name="execveat" groups="descriptor,file,process"/>
66941 <syscall name="execve" groups="file,process"/>
66942 <syscall name="execv" groups="file,process"/>
66943 <syscall name="exit_group" groups="process"/>
66944 <syscall name="exit" groups="process"/>
66945 + <syscall name="faccessat2" groups="descriptor,file"/>
66946 <syscall name="faccessat" groups="descriptor,file"/>
66947 <syscall name="fadvise64_64" groups="descriptor"/>
66948 <syscall name="fadvise64" groups="descriptor"/>
66950 <syscall name="flock" groups="descriptor"/>
66951 <syscall name="fork" groups="process"/>
66952 <syscall name="fremovexattr" groups="descriptor"/>
66953 + <syscall name="fsconfig" groups="descriptor,file"/>
66954 <syscall name="fsetxattr" groups="descriptor"/>
66955 + <syscall name="fsmount" groups="descriptor"/>
66956 + <syscall name="fsopen" groups="descriptor"/>
66957 + <syscall name="fspick" groups="descriptor,file"/>
66958 <syscall name="fstat64" groups="descriptor"/>
66959 <syscall name="fstatat64" groups="descriptor,file"/>
66960 <syscall name="fstatfs64" groups="descriptor"/>
66962 <syscall name="getdents" groups="descriptor"/>
66963 <syscall name="get_mempolicy" groups="memory"/>
66964 <syscall name="getpeername" groups="network"/>
66965 + <syscall name="getpmsg" groups="network"/>
66966 <syscall name="getsockname" groups="network"/>
66967 <syscall name="getsockopt" groups="network"/>
66968 <syscall name="getxattr" groups="file"/>
66969 - <syscall name="inotify_add_watch" groups="descriptor"/>
66970 + <syscall name="inotify_add_watch" groups="descriptor,file"/>
66971 <syscall name="inotify_init1" groups="descriptor"/>
66972 <syscall name="inotify_init" groups="descriptor"/>
66973 <syscall name="inotify_rm_watch" groups="descriptor"/>
66974 <syscall name="ioctl" groups="descriptor"/>
66975 + <syscall name="io_destroy" groups="memory"/>
66976 + <syscall name="io_setup" groups="memory"/>
66977 + <syscall name="io_uring_enter" groups="descriptor,signal"/>
66978 + <syscall name="io_uring_register" groups="descriptor,memory"/>
66979 + <syscall name="io_uring_setup" groups="descriptor"/>
66980 <syscall name="ipc" groups="ipc"/>
66981 - <syscall name="kill" groups="signal"/>
66982 + <syscall name="kexec_file_load" groups="descriptor"/>
66983 + <syscall name="kill" groups="signal,process"/>
66984 + <syscall name="landlock_add_rule" groups="descriptor"/>
66985 + <syscall name="landlock_create_ruleset" groups="descriptor"/>
66986 + <syscall name="landlock_restrict_self" groups="descriptor"/>
66987 <syscall name="lchown32" groups="file"/>
66988 <syscall name="lchown" groups="file"/>
66989 <syscall name="lgetxattr" groups="file"/>
66991 <syscall name="lstat" groups="file"/>
66992 <syscall name="madvise" groups="memory"/>
66993 <syscall name="mbind" groups="memory"/>
66994 + <syscall name="memfd_create" groups="descriptor"/>
66995 + <syscall name="memfd_secret" groups="descriptor"/>
66996 <syscall name="migrate_pages" groups="memory"/>
66997 <syscall name="mincore" groups="memory"/>
66998 <syscall name="mkdirat" groups="descriptor,file"/>
66999 <syscall name="mkdir" groups="file"/>
67000 <syscall name="mknodat" groups="descriptor,file"/>
67001 <syscall name="mknod" groups="file"/>
67002 + <syscall name="mlock2" groups="memory"/>
67003 <syscall name="mlockall" groups="memory"/>
67004 <syscall name="mlock" groups="memory"/>
67005 <syscall name="mmap2" groups="descriptor,memory"/>
67006 <syscall name="mmap" groups="descriptor,memory"/>
67007 + <syscall name="mount_setattr" groups="descriptor,file"/>
67008 <syscall name="mount" groups="file"/>
67009 + <syscall name="move_mount" groups="descriptor,file"/>
67010 <syscall name="move_pages" groups="memory"/>
67011 <syscall name="mprotect" groups="memory"/>
67012 + <syscall name="mq_getsetattr" groups="descriptor"/>
67013 + <syscall name="mq_notify" groups="descriptor"/>
67014 + <syscall name="mq_open" groups="descriptor"/>
67015 + <syscall name="mq_timedreceive" groups="descriptor"/>
67016 + <syscall name="mq_timedreceive_time64" groups="descriptor"/>
67017 + <syscall name="mq_timedsend" groups="descriptor"/>
67018 + <syscall name="mq_timedsend_time64" groups="descriptor"/>
67019 <syscall name="mremap" groups="memory"/>
67020 <syscall name="msgctl" groups="ipc"/>
67021 <syscall name="msgget" groups="ipc"/>
67023 <syscall name="oldfstat" groups="descriptor"/>
67024 <syscall name="oldlstat" groups="file"/>
67025 <syscall name="oldstat" groups="file"/>
67026 + <syscall name="oldumount" groups="file"/>
67027 + <syscall name="openat2" groups="descriptor,file"/>
67028 <syscall name="openat" groups="descriptor,file"/>
67029 <syscall name="open_by_handle_at" groups="descriptor"/>
67030 <syscall name="open" groups="descriptor,file"/>
67031 + <syscall name="open_tree" groups="descriptor,file"/>
67032 + <syscall name="osf_fstatfs64" groups="descriptor"/>
67033 + <syscall name="osf_fstatfs" groups="descriptor"/>
67034 + <syscall name="osf_fstat" groups="descriptor"/>
67035 + <syscall name="osf_lstat" groups="file"/>
67036 + <syscall name="osf_mincore" groups="memory"/>
67037 + <syscall name="osf_mremap" groups="memory"/>
67038 + <syscall name="osf_old_fstat" groups="descriptor"/>
67039 + <syscall name="osf_old_killpg" groups="process"/>
67040 + <syscall name="osf_old_lstat" groups="file"/>
67041 + <syscall name="osf_old_stat" groups="file"/>
67042 + <syscall name="osf_sbrk" groups="memory"/>
67043 + <syscall name="osf_select" groups="descriptor"/>
67044 + <syscall name="osf_shmat" groups="ipc,memory"/>
67045 + <syscall name="osf_sigprocmask" groups="signal"/>
67046 + <syscall name="osf_statfs64" groups="file"/>
67047 + <syscall name="osf_statfs" groups="file"/>
67048 + <syscall name="osf_stat" groups="file"/>
67049 + <syscall name="osf_utimes" groups="file"/>
67050 + <syscall name="osf_wait4" groups="process"/>
67051 <syscall name="pause" groups="signal"/>
67052 <syscall name="perf_event_open" groups="descriptor"/>
67053 + <syscall name="pidfd_getfd" groups="descriptor"/>
67054 + <syscall name="pidfd_open" groups="descriptor"/>
67055 + <syscall name="pidfd_send_signal" groups="descriptor,signal,process"/>
67056 <syscall name="pipe2" groups="descriptor"/>
67057 <syscall name="pipe" groups="descriptor"/>
67058 <syscall name="pivot_root" groups="file"/>
67059 + <syscall name="pkey_mprotect" groups="memory"/>
67060 <syscall name="poll" groups="descriptor"/>
67061 + <syscall name="posix_fstatfs" groups="descriptor"/>
67062 + <syscall name="posix_fstat" groups="descriptor"/>
67063 + <syscall name="posix_kill" groups="process"/>
67064 + <syscall name="posix_lstat" groups="file"/>
67065 + <syscall name="posix_madvise" groups="memory"/>
67066 + <syscall name="posix_mmap" groups="descriptor,memory"/>
67067 + <syscall name="posix_munmap" groups="memory"/>
67068 + <syscall name="posix_sbreak" groups="memory"/>
67069 + <syscall name="posix_SGI_madvise" groups="memory"/>
67070 + <syscall name="posix_SGI_mmap" groups="descriptor,memory"/>
67071 + <syscall name="posix_SGI_mprotect" groups="memory"/>
67072 + <syscall name="posix_SGI_msync" groups="memory"/>
67073 + <syscall name="posix_SGI_munmap" groups="memory"/>
67074 + <syscall name="posix_statfs" groups="file"/>
67075 + <syscall name="posix_stat" groups="file"/>
67076 <syscall name="ppoll" groups="descriptor"/>
67077 + <syscall name="ppoll_time64" groups="descriptor"/>
67078 <syscall name="pread64" groups="descriptor"/>
67079 <syscall name="pread" groups="descriptor"/>
67080 + <syscall name="preadv2" groups="descriptor"/>
67081 <syscall name="preadv" groups="descriptor"/>
67082 + <syscall name="process_madvise" groups="descriptor"/>
67083 + <syscall name="process_mrelease" groups="descriptor"/>
67084 <syscall name="pselect6" groups="descriptor"/>
67085 + <syscall name="pselect6_time64" groups="descriptor"/>
67086 + <syscall name="putpmsg" groups="network"/>
67087 <syscall name="pwrite64" groups="descriptor"/>
67088 <syscall name="pwrite" groups="descriptor"/>
67089 + <syscall name="pwritev2" groups="descriptor"/>
67090 <syscall name="pwritev" groups="descriptor"/>
67091 + <syscall name="quotactl_fd" groups="descriptor"/>
67092 <syscall name="quotactl" groups="file"/>
67093 <syscall name="readahead" groups="descriptor"/>
67094 <syscall name="readdir" groups="descriptor"/>
67095 - <syscall name="read" groups="descriptor"/>
67096 <syscall name="readlinkat" groups="descriptor,file"/>
67097 <syscall name="readlink" groups="file"/>
67098 + <syscall name="read" groups="descriptor"/>
67099 <syscall name="readv" groups="descriptor"/>
67100 <syscall name="recvfrom" groups="network"/>
67101 - <syscall name="recv" groups="network"/>
67102 + <syscall name="recvmmsg_time64" groups="network"/>
67103 <syscall name="recvmmsg" groups="network"/>
67104 <syscall name="recvmsg" groups="network"/>
67105 + <syscall name="recv" groups="network"/>
67106 <syscall name="remap_file_pages" groups="memory"/>
67107 <syscall name="removexattr" groups="file"/>
67108 + <syscall name="renameat2" groups="descriptor,file"/>
67109 <syscall name="renameat" groups="descriptor,file"/>
67110 <syscall name="rename" groups="file"/>
67111 + <syscall name="riscv_flush_icache" groups="memory"/>
67112 <syscall name="rmdir" groups="file"/>
67113 <syscall name="rt_sigaction" groups="signal"/>
67114 <syscall name="rt_sigpending" groups="signal"/>
67115 <syscall name="rt_sigprocmask" groups="signal"/>
67116 - <syscall name="rt_sigqueueinfo" groups="signal"/>
67117 + <syscall name="rt_sigqueueinfo" groups="signal,process"/>
67118 <syscall name="rt_sigreturn" groups="signal"/>
67119 <syscall name="rt_sigsuspend" groups="signal"/>
67120 + <syscall name="rt_sigtimedwait_time64" groups="signal"/>
67121 <syscall name="rt_sigtimedwait" groups="signal"/>
67122 <syscall name="rt_tgsigqueueinfo" groups="process,signal"/>
67123 <syscall name="select" groups="descriptor"/>
67125 <syscall name="semget" groups="ipc"/>
67126 <syscall name="semop" groups="ipc"/>
67127 <syscall name="semtimedop" groups="ipc"/>
67128 + <syscall name="semtimedop_time64" groups="ipc"/>
67129 <syscall name="sendfile64" groups="descriptor,network"/>
67130 <syscall name="sendfile" groups="descriptor,network"/>
67131 - <syscall name="send" groups="network"/>
67132 <syscall name="sendmmsg" groups="network"/>
67133 <syscall name="sendmsg" groups="network"/>
67134 + <syscall name="send" groups="network"/>
67135 <syscall name="sendto" groups="network"/>
67136 + <syscall name="set_mempolicy_home_node" groups="memory"/>
67137 <syscall name="set_mempolicy" groups="memory"/>
67138 <syscall name="setns" groups="descriptor"/>
67139 <syscall name="setsockopt" groups="network"/>
67141 <syscall name="sigreturn" groups="signal"/>
67142 <syscall name="sigsuspend" groups="signal"/>
67143 <syscall name="socketcall" groups="descriptor"/>
67144 - <syscall name="socket" groups="network"/>
67145 <syscall name="socketpair" groups="network"/>
67146 + <syscall name="socket" groups="network"/>
67147 <syscall name="splice" groups="descriptor"/>
67148 <syscall name="ssetmask" groups="signal"/>
67149 <syscall name="stat64" groups="file"/>
67150 <syscall name="statfs64" groups="file"/>
67151 <syscall name="statfs" groups="file"/>
67152 <syscall name="stat" groups="file"/>
67153 + <syscall name="statx" groups="descriptor,file"/>
67154 + <syscall name="svr4_fstatfs" groups="descriptor"/>
67155 + <syscall name="svr4_fstat" groups="descriptor"/>
67156 + <syscall name="svr4_fstatvfs" groups="descriptor"/>
67157 + <syscall name="svr4_fxstat" groups="descriptor"/>
67158 + <syscall name="svr4_kill" groups="process"/>
67159 + <syscall name="svr4_lstat" groups="file"/>
67160 + <syscall name="svr4_lxstat" groups="file"/>
67161 + <syscall name="svr4_mincore" groups="memory"/>
67162 + <syscall name="svr4_mmap" groups="descriptor,memory"/>
67163 + <syscall name="svr4_mprotect" groups="memory"/>
67164 + <syscall name="svr4_munmap" groups="memory"/>
67165 + <syscall name="svr4_sbreak" groups="memory"/>
67166 + <syscall name="svr4_statfs" groups="file"/>
67167 + <syscall name="svr4_stat" groups="file"/>
67168 + <syscall name="svr4_statvfs" groups="file"/>
67169 + <syscall name="svr4_xstat" groups="file"/>
67170 <syscall name="swapoff" groups="file"/>
67171 <syscall name="swapon" groups="file"/>
67172 <syscall name="symlinkat" groups="descriptor,file"/>
67173 <syscall name="symlink" groups="file"/>
67174 + <syscall name="sync_file_range2" groups="descriptor"/>
67175 <syscall name="sync_file_range" groups="descriptor"/>
67176 <syscall name="syncfs" groups="descriptor"/>
67177 + <syscall name="sysv_brk" groups="memory"/>
67178 + <syscall name="sysv_fstatfs" groups="descriptor"/>
67179 + <syscall name="sysv_fstat" groups="descriptor"/>
67180 + <syscall name="sysv_fstatvfs" groups="descriptor"/>
67181 + <syscall name="sysv_fxstat" groups="descriptor"/>
67182 + <syscall name="sysv_kill" groups="process"/>
67183 + <syscall name="sysv_lstat" groups="file"/>
67184 + <syscall name="sysv_lxstat" groups="file"/>
67185 + <syscall name="sysv_madvise" groups="memory"/>
67186 + <syscall name="sysv_mmap64" groups="descriptor,memory"/>
67187 + <syscall name="sysv_mmap" groups="descriptor,memory"/>
67188 + <syscall name="sysv_mprotect" groups="memory"/>
67189 + <syscall name="sysv_msync" groups="memory"/>
67190 + <syscall name="sysv_munmap" groups="memory"/>
67191 + <syscall name="sysv_quotactl" groups="file"/>
67192 + <syscall name="sysv_statfs" groups="file"/>
67193 + <syscall name="sysv_stat" groups="file"/>
67194 + <syscall name="sysv_statvfs" groups="file"/>
67195 + <syscall name="sysv_xstat" groups="file"/>
67196 <syscall name="tee" groups="descriptor"/>
67197 - <syscall name="tgkill" groups="signal"/>
67198 + <syscall name="tgkill" groups="signal,process"/>
67199 <syscall name="timerfd_create" groups="descriptor"/>
67200 + <syscall name="timerfd_gettime64" groups="descriptor"/>
67201 <syscall name="timerfd_gettime" groups="descriptor"/>
67202 - <syscall name="timerfd" groups="descriptor"/>
67203 + <syscall name="timerfd_settime64" groups="descriptor"/>
67204 <syscall name="timerfd_settime" groups="descriptor"/>
67205 - <syscall name="tkill" groups="signal"/>
67206 + <syscall name="timerfd" groups="descriptor"/>
67207 + <syscall name="tkill" groups="signal,process"/>
67208 <syscall name="truncate64" groups="file"/>
67209 <syscall name="truncate" groups="file"/>
67210 <syscall name="umount2" groups="file"/>
67211 <syscall name="umount" groups="file"/>
67212 <syscall name="unlinkat" groups="descriptor,file"/>
67213 <syscall name="unlink" groups="file"/>
67214 - <syscall name="unshare" groups="process"/>
67215 <syscall name="uselib" groups="file"/>
67216 - <syscall name="utime" groups="file"/>
67217 + <syscall name="userfaultfd" groups="descriptor"/>
67218 <syscall name="utimensat" groups="descriptor,file"/>
67219 + <syscall name="utimensat_time64" groups="descriptor,file"/>
67220 <syscall name="utimes" groups="file"/>
67221 + <syscall name="utime" groups="file"/>
67222 <syscall name="vfork" groups="process"/>
67223 <syscall name="vmsplice" groups="descriptor"/>
67224 <syscall name="wait4" groups="process"/>
67239 So I looked at the strace sources, to confirm that clone3 is in fact
67240 recorded in the "process" group there too, and to check what other
67271 * testsuite/gas/elf/dwarf-5-macro.s: Change Line.s to Line2.s.
67276 In C++ it is possible to use an empty enum as a strong typedef. For
67329 …PR 28909 * doc/local.mk (asconfig.texi): Use "cp -p" to preserve timestamps. * Makefile.in: Regene…
67349 printed, and fail in this case. This is enough to know that the test has
67351 we have to check if GDB outputted more than just the input line, because
67400 disassemble.c, which is needed in order for GDB to start using the
67416 I've long wanted to remove 'struct buffer', and thanks to Simon's
67417 earlier patch, I was finally able to do so. My feeling has been that
67422 the code and the remaining #includes.
67425 This changes top.c to use std::string rather than struct buffer. Like
67430 This changes event-top.c to use std::string rather than struct buffer.
67432 to be made.
67435 This changes handle_qxfer_threads, in gdbserver, to use std::string
67440 gdbserver, to use std::string rather than struct buffer.
67443 This changes handle_qxfer_traceframe_info, in gdbserver, to use
67447 This changes tracefile-tfile.c to use std::string rather than struct
67454 cache. In particular, the cache will require gdb to wait for the
67455 cooked index to be finalized. As this happens in the foreground, it
67458 This patch changes gdb to write the cache entry a worker thread. (As
67462 Some care is taken to ensure that this can't crash, and that gdb will
67466 waits for the index cache task to complete.
67468 To avoid gdb exiting early, an exit observer is used to wait for all
67472 using "-batch" to pre-generate the index, though, it would be.
67473 However I don't think there is much to be done about this, as it was
67478 Only use the per-BFD object to write a DWARF index
67479 The DWARF index does not need access to the objfile or per-objfile
67483 This patch implements this idea by changing the entire API to only be
67487 This patch removes some code that ensures that the BFD came from a
67488 file. It seems to me that checking for the existence of a build-id is
67502 before the first ":" as it has to be the file path.
67505 In order to avoid modifying many regexps to allow such drive letters,
67521 x86: allow to request ModR/M encoding
67525 encoding forms. In those cases {load} or {store} can be used to control
67526 the encoding used. Extend this to ModR/M-less encodings which have a
67532 this function, apparently as an unnoticed side effect of adding D to
67546 Note that in i386-gen.c:isa_dependencies[] I'm only adding it to models
67553 While MOV to/from segment register as well as selector storing insns
67565 give meaning to the combination of Imm8 and Imm8S in templates (so far
67568 to fit in a byte.
67574 Another small adjustment to the testsuite is necessary: AAM and AAD were
67575 never sensible to use with 0xffffff90 operands. This should have been an
67595 Fix accesses to limited-length values in `contents_copy_raw' and
67606 Enhance better_fit() function to prefer function symbols over non-function symbols.
67622 (insert_os_after): Change parameter to a list union pointer.
67628 RISC-V: Add --[no-]relax-gp to ld
67629 --relax enables all relaxations. --no-relax-gp disables GP relaxation to
67647 * testsuite/ld-riscv-elf/code-model-relax-medlow-01-norelaxgp.d: New.
67681 could be done with a bit more configure code. However, I think we
67685 Tom Tromey proposed a while ago to remove this option, but it ended
67690 However, there was no strong opposition to remove it. The argument was
67695 not like MI adds any external dependency. It's just a bit more code.
67702 accordingly to always include the MI objects in the build.
67704 [1] https://github.com/search?q=%22--disable-gdbmi%22&type=code
67713 This leads to weird code in a couple of spots that tries to
67718 The fix is to add a bit of quoting when evaluating the expression.
67726 gdb: add AMDGPU header files to HFILES_NO_SRCDIR
67728 debugging") missed adding these header files to the HFILES_NO_SRCDIR
67742 According to LoongArch ELF ABI specification [1], support the register
67765 but it shows the information of all registers in the current code,
67775 Fix the BFD library's find_nearest_line feature to produce consistent results.
67777 * dwarf2.c (comp_unit_contains_address): Renamed to ... (comp_unit_may_contain_address): this,
67778 and added code to return true if the CU's ranges have not yet been computed.
67779 …(_bfd_dwarf2_find_nearest_line_with_alt): Use the renamed function, simplifying code in the proces…
67790 No need to read contents if we won't do anything.
67833 expecting to look at something other than a whole lot of zeros, don't
67834 allow fuzzers to avoid the size checking.
67898 Just like we suppress emitting REX.W for e.g. MOV from/to segment
67925 Also fix ubsan "applying zero offset to null pointer".
67936 This leads to NULL stabp and stabs_end in print_section_stabs. Since
67937 stabs_end - STABSIZE is then a pointer to a very large address, the
67969 gdb: add --with-curses to --configuration output
67971 Since b5075fb68d4 (Rename to allow_tui_tests, 2023-01-08) it does show
67972 --enable-tui (or --disable-tui), but one might want to know if GDB was
67975 Since configure.ac uses AC_SEARCH_LIBS to check for the curses library,
67978 (HAVE_CURSES_H, etc.) but it would be cumbersome to use those in
67979 print_gdb_configuration because we would have to check for all 6 symbols
67984 'action-if-found' argument to AC_SEARCH_LIBS, and use it in
67997 run into compilation errors due to unsupported compilation flags.
68019 UNTESTED: gdb.reverse/step-indirect-call-thunk.exp: failed to prepare
68022 Fix this by requiring istarget "x86*", similar to what was added in
68039 UNTESTED: gdb.base/morestack.exp: failed to prepare
68064 UNTESTED: gdb.reverse/time-reverse.exp: failed to prepare
68106 However, in line.l test, it's expecting to trigger an input file switch.
68107 As the second filename doesn't matter in it, change it to fit for those
68112 * testsuite/gas/elf/line.l: Change Line.s to Line2.s.
68121 The Linux Kernel can be configured to use pauth instructions for some
68126 1 - The target needs to advertise pauth support.
68127 2 - The hook to remove non-address bits from a pointer needs to be registered
68128 in aarch64-tdep.c as opposed to aarch64-linux-tdep.c.
68132 have up to 4 pauth masks (2 masks or 4 masks):
68139 pauth_dmask and pauth_cmask are the masks used to remove pauth signatures
68141 to remove pauth signatures from kernel addresses.
68143 The second point is easily addressed by moving code around.
68152 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
68170 ld/testsuite: don't output to /dev/null
68174 Fix that by outputting to a real file for all targets.
68214 FUNCTION is identical to func, so simplify doc.str.
68227 /* Set to N to open the next N BFDs using an alternate id space. */
68236 This occurs because the code fragment for bfd_use_reserved_id comes
68247 called by any user of the library, so I don't think it's useful to put
68267 external form of the relocation information attached to SEC into
68277 the external form of the relocation information attached to SEC
68292 Commit 42c13555ff88 ("Change value::m_stack to bool") erroneously
68293 changed a `0` to `false` in this call to read_value_memory. This
68303 the regexp to allow such cases.
68312 ld/testsuite: adjust to Windows path separator.
68335 @subheading The @code{-command-name} Command
68339 @subheading -command-name
68341 In this commit I've updated all these trace commands to use the
68349 command, and then continue to use @subheading for each part of
68352 In this commit I've updated these to use @subsubheading where
68388 The target architecture is set to "i386:x86-64".
68401 .eh_frame section), we'd like to start using the dwarf2 unwinder instead of
68414 - renaming the "amd64 epilogue" unwinder to "amd64 epilogue override", and
68421 The target architecture is set to "i386:x86-64".
68438 The target architecture is set to "i386".
68459 Fix this by moving the use of compunit_epilogue_unwind_valid to
68491 Tested on x86_64-linux, although sofar I was not able to trigger the warning
68525 Fix this by reverting back to the original loop shape as much as possible by:
68528 set to 1.
68537 alpha-linuxecoff has compressed archives that are decompressed to a
68538 bfd-in-memory. We'd need to handle quite a lot of corner cases to
68551 Convert contained_in to method
68552 This converts contained_in to be a method of block.
68555 This changes block to make the data members 'private'.
68562 This changes global_block to inherit from block, which is what was
68566 This changes block and global_block to add initializers, and then to
68575 This patch changes this code to use allocate_block instead, fixing a
68578 I don't know how to test this patch.
68588 Convert explicit iterator uses to foreach
68589 This converts most existing explicit uses of block_iterator to use
68599 initialization API decide which to use based on an optional parameter.
68601 Store 'name' in block_iterator
68602 This changes the block_iterator to store the 'name' that is used by
68603 block_iter_match_next. This avoids any problem where the name could
68605 to understand.
68607 Convert block_static_link to method
68608 This converts block_static_link to be a method. This was mostly
68611 Convert set_block_compunit_symtab to method
68612 This converts set_block_compunit_symtab to be a method. This was
68615 Convert block_static_block and block_global_block to methods
68616 This converts block_static_block and block_global_block to be methods.
68617 This was mostly written by script. It was simpler to convert them at
68620 Convert block_containing_function to method
68621 This converts block_containing_function to be a method. This was
68624 Convert block_linkage_function to method
68625 This converts block_linkage_function to be a method. This was mostly
68628 Convert more block functions to methods
68630 block_set_using to be methods. These are all done at once to make it
68631 easier to also convert block_initialize_namespace at the same time.
68634 Convert block_inlined_p to method
68635 This converts block_inlined_p to be a method. This was mostly written
68638 Convert block_gdbarch to method
68639 This converts block_gdbarch to be a method. This was mostly written
68642 Convert block_objfile to method
68643 This converts block_objfile to be a method. This was mostly written
68646 Don't allow NULL as an argument to block_global_block
68650 Don't allow NULL as an argument to block_static_block
68654 Don't allow NULL as an argument to block_using
68656 Remove this. No caller seems to be affected.
68658 Don't allow NULL as an argument to block_scope
68664 namespace object. However, this isn't truly needed, so arrange to
68667 Rearrange block.c to avoid a forward declaration
68682 patch fixes it by arranging to transfer ownership of the name to the
68699 For D, it is broken because, while the code in cooked_index_shard::add
68700 specifically excludes Ada, it fails to exclude D. This means that the
68702 is for the code in find_main_name to use d_main_name to find the name.
68705 However, the code in dwarf2_build_psymtabs_hard fails to create a
68706 fully-qualified name, so the name always ends up as plain "main".
68712 way to test those at present.
68715 fully-qualified name in dwarf2_build_psymtabs_hard will crash, because
68716 cooked_index_entry::full_name uses the canonical name -- and that is
68719 However, we don't want to wait for canonicalization to be done before
68720 computing the main name. That would remove any benefit from doing
68726 to full_name to let us avoid crashes, slowdowns, and races here.
68728 This is kind of tricky and ugly, so I've tried to comment it
68731 While doing this, I had to change gdb.dwarf2/main-subprogram.exp. A
68732 different possibility here would be to ignore the canonicalization
68738 current_language to be a function (hidden behind a macro) to let us
68740 could still be made to work. However, that also seemed rather tricky,
68749 go_symbol_package_name package name asserts that it is only passed a
68751 to just check and return early in this case.
68783 Update the test to check that the invalid architecture is NOT stored,
68812 is currently broken due to multiple issues.
68819 thread from a (pid, 0, 0) ptid_t to a (pid, 0, tid) ptid_t and
68827 Add similar switching to pdc_write_data where it was missing
68833 First of all, aix-thread.c used to have a number of global
68837 to a per-inferior data structure instead.
68850 the first inferior was not correctly detected due to a
68851 bug in solib-aix.c, where the BFD file name for shared
68853 for the first time, which caused the library to no longer
68854 be recognized by name when loaded a second time.
68860 to error. These are unnecessary because error never returns.
68880 This is not related to gdb, we get the same result by just running the exec.
68887 So, when we get to the second insn in _exit:
68896 sufficient to fix it:
68906 We could of course fix this by simply not running to exit. But ideally we'd
68909 Alternatively, we could hand-code an _exit syscall and bypass glibc
68912 Taking a step back, the -nostartfiles -static was added to address that the
68913 xmm registers were not zero at main (which AFAICT is a valid thing to happen).
68919 Instead, simplify things by reverting to the original situation:
68923 and fix the original problem by setting the xmm registers to zero rather than
68926 Now that we're no longer forcing -static, add nopie to the flags to prevent
68943 It's better to positively select targets for .section support than to
68944 try to exclude all targets that don't. Make a new is_coff_format so
68951 is_coff_format to select targets, exclude ti coff.
68967 PR30046, power cmpi leads to unknown architecture
68969 gas -mpwr, -mpwr2 or -mpwrx options to choose bfd_arch_rs6000.
68971 of ppc_arch will never be reached, so it can be deleted and the code
68976 Delete dead code.
68982 both its callers and callees use it to mean "enabled". This is
68990 is limited to trace frames. This patch updates the documentation to
69002 …* ldlang.c (lang_add_string): Add maximum size parameter. Move escape character handling code int…
69006 …* testsuite/ld-scripts/asciz.t: Adjust to work on more architectures and to test more aspects of t…
69007 * testsuite/ld-scripts/asciz.d: Adjust to match the changes to the test linker script.
69019 this function to constify its return type.
69051 Rename gas_late_init to plain gas_init, to reinforce the idea that
69056 file and arrange for dump_statistics to be called here rather
69069 a79b8f6ea8c2, unfortunately this command was never added to the
69084 Convert it to an if() to deal with situations like this one found by
69093 code.
69110 This changes value::bits_synthetic_pointer to return bool and fixes up
69117 Change value::m_stack to bool
69118 This changes value::m_stack to be a bool and updates the various uses.
69124 Change value::m_initialized to bool
69125 This changes value::m_initialized to be a bool and updates the various
69132 Change value::m_lazy to bool
69133 This changes value::m_lazy to be a bool and updates the various uses.
69139 Change value::m_modifiable to bool
69140 This changes value::m_modifiable to be a bool and updates the various
69150 to the Python interpreter, then the breakpoint condition would still
69183 The fix is to disable cooperative SIGINT handling while handling
69187 This commit augments the testcase added by the previous commit to test
69224 then a Ctrl-C is translated into a call to target_pass_ctrlc().
69226 The target_terminal::is_ours() case above is there to handle the
69232 the "background". The CLI is responsive to user commands. If users
69233 type Ctrl-C, they're expecting it to interrupt whatever command they
69236 and the Ctrl-C is meant to go to the main thread, handling the CLI.
69247 The idea is to set a breakpoint in the "foo" function with a condition
69248 that sends SIGINT to GDB, and then evaluates to false, which results
69306 GDB has the terminal, and forwards Ctrl-C to the inferior otherwise.
69337 For testing a following patch, I wanted a way to send a SIGINT to GDB
69338 from a breakpoint condition. And I didn't want to do it from a Python
69339 breakpoint or Python function, as I wanted to exercise non-Python code
69341 runs a command under the shell, and returns the exit code. With this,
69363 Returns the command's exit code: zero on success, non-zero otherwise.
69387 I don't think there's a reason that Ada needs to be different. We
69391 switch (type->code ())
69399 ... and the type's name already has the <>s.
69431 Internal function types have type code TYPE_CODE_INTERNAL_FUNCTION,
69436 modern GCCs. You would need to enable -Wswitch-enum for that, which
69446 be a little weird to handle them here.
69448 I tried to reach this code with TYPE_CODE_XMETHOD, but couldn't figure
69449 out how to. ptype on an xmethod isn't treated specially, it just
69451 gdb.python/py-xmethods.exp testcase to make sure of that.
69453 My thinking is that whatever type code we add next, the most likely
69455 adding another case to that "do nothing" list. If we do need special
69456 casing for whatever type code, I think that tests added at the same
69458 special casing, then it still looks better to me to print the type
69459 somewhat incompletely than to error out and make it harder for users
69460 to debug whatever they need. So I think that the best thing to do
69461 here is to just remove all those explicit "do nothing" cases, along
69464 After doing that, I decided to write a testcase that iterates over all
69472 A problem internal to GDB has been detected,
69494 gdb/dwarf2: split .debug_names reading code to own file
69495 Move everything related to reading .debug_names from read.c to
69504 gdb/dwarf2: split .gdb_index reading code to own file
69505 Move everything related to reading .gdb_index from read.c to
69514 gdb/dwarf2: move some things to read.h
69515 The following 2 patches move .gdb_index and .debug_names reading code to
69516 their own file. Prepare this by exposing some things used by that code
69517 to read.h.
69531 I managed to narrow it down to:
69591 to something that used to be allocated on the frame obstack, that has
69608 in the frame_stash. A deletion function was added to the frame_stash
69619 corresponding to frames in the "bfcache" hash table. It then relies on
69620 record_btrace_frame_dealloc_cache being called for each frame to remove
69625 to a use-after-free when that entry is accessed later, which ASan
69628 The proposed solution is to explicitly call frame_info_del on frame 0,
69663 In a few cases I had to slightly reword the comment. There were also
69677 strange to me:
69699 This patch also reorders a few documentation comments to ensure that
69716 Change internalmode to be an intrinsic variable
69717 Currently, internalmode is a special word to set an internal state
69718 variable. Because this series adds variables anyway, change this to
69722 leak memory, so I put some extra effort into trying to handle this for
69739 To implement variables in chew, it's convenient to have a
69758 Convert to C90 and a few tweaks.
69770 Add copyright headers to the .str files
69773 sense because these are inputs to chew.
69782 The BFD docs currently specify all the parameters to @node. However,
69784 in info doesn't know how to find the next node.
69788 everything to a single-argument @node.
69814 I think that a nice way to fix it is to make the output of "show
69828 gdb: add constructor to internalvar
69829 Add a constructor that takes the name as a parameter. Initialize the
69837 gdb: use std::string for internalvar::name
69838 Change internalvar::name to std::string, automating memory management.
69839 It becomes necessary to allocate internalvar with new instead of XNEW.
69841 I didn't find how to trigger the code in complete_internalvar. It is
69843 "condition" command, but I never managed to get in the right code path.
69851 When connecting to a certain target, gdb issues a warning about the
69871 It seems to me that, because the architecture rejected the
69890 @subheading The @code{-break-after} Command
69896 stabs.texinfo as well, though those all look right to me already.
69908 This function is used to read sections other than stabs, and there is
69929 …PR 30078 * testsuite/ld-elf/merge4b.s: Use .asciz instead of .string in order to avoid the special…
69956 gas: buffer_and_nest() needs to pass nul-terminated string to temp_ilp()
69958 and s_linefile()") I didn't pay attention to the dual purpose of the
69959 nul character previously used. This was to a fair degree because of the
69963 properly use sb_terminate() to mark the end of the string. (Note that
69974 * ecoff.c (_bfd_ecoff_slurp_symbolic_info): Define FIX to set
69975 pointers into swapped internal data to NULL if count is zero.
69985 positive integers, but it's not hard to modify the code to handle type
69990 check. Don't allocate entire array from 0 to type number,
70002 necessary here, as a ui_file is passed to
70009 functions) are specific to .gdb_index only, they are not shared with the
70017 gdb: cast return value of std::unique_ptr::release to void
70021 …value.c:2784: note: cast the expression to void to silence this warning [bugprone-unused-return-va…
70026 Silence these warnings by casting to void. Add a comment to explain
70035 I suppose this was possible in the CVS days for the tui directory to be
70046 While investigating something else, I noticed some weird code in
70052 fixes the memcpy. I also added a static assert to assure myself that
70053 the code in gdbserver is correct -- gdbserver is passing its own
70054 buffer directly to agent_run_command.
70062 (Ice Lake to Raptor Lake microarchitectures).
70084 run is not pinned to a specific cpu, the test may either PASS or XFAIL.
70095 Mention that the -plugin command line option is used to load plugins.
70108 Adds a new directive to the linker script syntax: ASCIZ.
70113 gas: correct symbol name comparison in .startof./.sizeof. handling
70119 It being zero and happening to work right now doesn't mean the insns
70127 particular the nul character. s_linefile() attempts to compensate for
70130 nothing else on the line needs to move ahead, which luckily is easily
70135 to buffer_and_nest()'s invocation of the function: The line terminator
70136 now needs to be a newline, not nul.
70162 is a value_ref_ptr. These were introduced by the function-to-method
70163 script, replacing older code that passed the result of .get() to a
70175 all uses with a call to value::lval.
70184 of these set_* methods to be replaced with constructors; but I haven't
70195 destructor private to enforce this.
70202 This hoists the 'private' in struct value to also encompass the data
70219 to use it.
70231 This patch turns a grab bag of value functions to methods of value.
70240 This changes preserve_one_value to be a method of value. Much of this
70249 call_xmethod to be methods of value. value_from_xmethod is a static
70256 Change some code to use value methods
70258 struct value. However, in these cases it seemed simpler to change
70259 them to use the public API rather than convert them to be methods.
70273 This changes value_non_lval and value_force_lval to be methods of
70281 This turns many functions that are related to optimized-out or
70282 availability-checking to be methods of value. The static function
70283 value_entirely_covered_by_range_vector is also converted to be a
70298 Fully qualify calls to copy in value.c
70300 existing calls to 'copy' in value.c, to ensure it will still compile
70312 require_available to be private methods.
70319 This changes value_incref and value_decref to be methods of value.
70327 This moves the value_ref_policy methods to be defined out-of-line.
70328 This is a necessary step to change value_incref and value_decref to be
70336 This changes value_bits_synthetic_pointer to be a method of value.
70343 This changes value_contents_eq to be a method of value. It also
70361 This changes value_fetch_lazy to be a method of value. A few helper
70362 functions are converted as well, to avoid problems in later patches
70403 This changes allocate_value to be a static "constructor" of value.
70410 This changes allocate_value_lazy to be a static "constructor" of
70413 I considered trying to change value to use ordinary new/delete, but it
70414 seems to me that due to reference counting, we may someday want to
70415 change these static constructors to return value_ref_ptr instead.
70431 This changes the value_address and set_value_address functions to be
70440 to be methods of value.
70446 Convert value_lval_const and deprecated_lval_hack to methods
70448 to be methods on value.
70456 functions to be methods of value.
70463 This changes the value_stack and set_value_stack functions to be
70471 This changes the value_lazy and set_value_lazy functions to be methods
70479 This changes various offset-related functions to be methods of value.
70487 This changes value_enclosing_type to be a method of value. Much of
70495 This changes deprecated_value_modifiable to be a method of value.
70502 This changes value_offset to be a method of value. Much of this patch
70510 This changes value_parent to be a method of value. Much of this patch
70518 This changes value_bitpos to be a method of value. Much of this patch
70526 This changes value_bitsize to be a method of value. Much of this patch
70534 This changes value_arch to be a method of value. Much of this patch
70542 This changes deprecated_set_value_type to be a method of value. Much
70550 This changes value_type to be a method of value. Much of this patch
70557 Move struct value to value.h
70558 This moves struct value to value.h. For now, all members remain
70567 struct value is going to move to value.h, but to avoid having
70568 excessive code there, first move the destructor body out-of-line.
70583 this fixes the entry for 'fucomp' to use the correct Reg value
70588 Remove unused imports from gdb's Python code
70599 the Python interpreter is shut down, we no longer need to dynamically
70602 This commit changes known_window_types to a statically allocated data
70647 Instead, GDB retains a reference to the window factory object, which
70648 forces the Python object to remain live even after the Python
70653 thus the underlying Python references are never decremented to zero,
70654 and so GDB never tries to delete these Python objects.
70656 This commit is the first half of the work to clean up this edge case.
70663 list and release the reference that is held to the underlying Python
70669 reset the reference to the underlying Python object. I don't think
70672 only called when trying to apply a new TUI layout - something that
70682 gdb/python: allow Python TUI windows to be replaced
70685 "... It's an error to try to replace one of the built-in windows,
70688 I take this to mean that if I imported a Python script like this:
70701 This is pretty useful in practice, as it allows users to iterate on
70704 However, right now, this is not how GDB operates. The second call to
70709 std::unordered_map::emplace to insert the new factory function, and
70723 missing, though, the docs will fail to build:
70726 …make[4]: *** No rule to make target '../../../src/gdb/doc/../../readline/readline/doc/rluser.texi'…
70730 READLINE_TEXI_INCFLAGS empty, causing doc/Makefile.in to output a line to
70739 dependencies to be included from readline.
70773 better to display such 32-bit instructions using a '.short' directive
70776 This commit updates the mips disassembler to do this, and adds a new
70795 Error while executing Scheme code.
70802 Error while executing Scheme code.
70805 updates the test regexp to handle this optional 'ERROR: ' string.
70810 Move all the function local static state variables to file scope,
70811 in order to tidy memory on exit and to reinit everything for that
70832 Split off gas init to functions
70843 fallback to "hipcc" so the compiler will be searched in the PATH. This
70844 removes the fallback to the hard-coded "/opt/rocm/bin" prefix.
70856 To achieve this, adjust gdb_simple_compile to ensure that the hip
70860 One thing to note is that it is possible to have a hipcc installed with
70863 part). In the context of the gdb.rocm tests, we want to detect such
70869 is installed with the all ROCm installations (it is used by hipcc to
70879 gdb/testsuite: require amd-dbgapi support to run rocm tests
70880 Update allow_hipcc_tests to check that GDB has the amd-dbgapi support
70888 gdb/testsuite: Rename skip_hipcc_tests to allow_hipcc_tests
70889 Rename skip_hipcc_tests to allow_hipcc_tests so it can be used as a
70911 xatexit to tidy most of the hash table memory, but of course that's
70912 ineffective without a call to xexit. The other major memory leak
70914 to not closing the input file and thus not freeing memory attached to
70927 Move some code from dwarf2/read.c to die.c
70929 DIE-related code out of dwarf2/read.c and into this new file. This is
70930 just a small part of the long-term project to split up read.c.
70931 (According to 'wc', dwarf2/read.c is the largest file in gdb by around
70946 Failed to take account of an earlier commit:
70955 This small fix updates describe_other_breakpoints to take account of
70963 Additionally, PR gdb/17199 relates to this area of code, but is more
70964 of a request to refactor some parts of GDB, this commit does not
70972 for the call to the named function. Consider this session:
71001 for foo, and use these to create entries in GDB's msymbol table:
71015 This means that GDB creates 3 msymbols to represent the 2 symbols
71020 iterate_over_minimal_symbols passing in the name we are looking for
71024 the name we're looking for as the hash key), first we walk the hash
71029 mangled, as a result, in this case, the iteration of the linkage name
71033 results. In order to match symbol names, GDB obtains a symbol name
71036 use is cp_fq_symbol_name_matches, which delegates the work to
71038 language set to language_cplus.
71041 skip any parameters in the demangled symbol name when checking for a
71042 match, e.g. 'foo' will match the demangled name 'foo()'. The way this
71061 During the demangled name matching, due to the use of MATCH_PARAMS
71063 name. And so, '_Z3foov@plt', which demangles to 'foo()@plt' matches
71064 'foo', and '_Z3foov', which demangles to 'foo()' also matches 'foo'.
71066 By contrast, for C, there are no demangled hash table entries to be
71068 linkage name symbols which are 'foo@plt' and 'foo'. The plain 'foo'
71070 case the 'foo@plt' will not match due to the '@plt' suffix.
71078 I propose to fix this in strncmp_iw_with_mode. When the mode is
71082 matching. Thus, when comparing 'foo' to 'foo()@plt' GDB will
71089 end of its name, e.g.:
71095 the 'const' modifier results in a failure to match, when previously
71103 to be skipped.
71126 confusing. Long term I'd like to potentially fold these two fields
71129 What this commit does is switch to using -1 as the "default" value for
71131 changed from 0 to -1. I've updated all the code I can find that
71146 it seems to me that in practice an Ada task maps 1:1 with a GDB
71147 thread, and so it doesn't really make sense to allow uses to give both
71154 I've added new tests to cover the CLI as well as the Python and Guile
71160 to the docs themselves. Currently we document the commands with a
71169 and 'thread' would be expected to work; it seems clear to me in the
71176 OK, and any future attempt to combine them will give an error.
71189 want to not show the task number in this situation, so this commit
71190 adds this missing information, and extends gdb.ada/tasks.exp to check
71197 gdb: don't print global thread-id to CLI in describe_other_breakpoints
71199 thread-id to the CLI. For CLI output we should be printing the
71219 instead say 'thread 2.1' which corresponds to how the user specified
71230 relating to long command lines. A similar patch has existed in the
71233 updated the patch to current testsuite standards.
71339 However, my debugging experience doesn't seem to be degraded at all, I
71340 can still see the GDB source code just fine; which is because the
71349 reorder some of the 'dir' commands, which would seem to indicate these
71350 commands were important to some people, at some time.
71352 One possible fix would be to replace @srcdir@ with @abs_srcdir@, this
71356 However... I'd like to propose that we instead remove all the extra
71358 debug information should allow us to correctly find all of the source
71359 files without having to add any extra 'dir' entries. Obviously,
71362 I think we can afford to be a little more aggressive here. If it
71375 The target architecture is set to "i386".
71389 The target architecture is set to "i386:x86-64".
71405 ISTM me there's no reason for the i386 unwinders to be there for amd64.
71407 Furthermore, there's a generic need to play around with enabling and disabling
71414 manually disable the "i386 epilogue", but I take the fact that I have to do
71443 since the user is specifically asking to look at all those zeros.
71447 just wanted to find a non-empty section to look at section headers
71449 spu tests are fixed by adding -j options to objdump, which makes the
71455 (dump_section): Allow -j to override the default of not
71489 open_source_file relies on errno to communicate the reason for a missing
71493 for debuginfod_find_source to set errno to a value unrelated to the
71506 to open a source file. Use this value to generate the error message
71514 Move implementation of perror_with_name to gdbsupport
71516 implementation to the clients.
71519 same, resulting in unnecessary code duplication.
71522 optional parameter for specifying the errno used to generate the
71525 Also move the implementation of perror_string to gdbsupport since
71538 order to print it, what I call "limited length" arrays.
71540 The motivation behind this work is to make it possible to print slices
71552 notice that the request to print 10 elements still fails, even though 10
71572 and Fortran () array element/dimension accesses go straight to the
71579 GDB/testsuite: Add `-nonl' option to `gdb_test'
71580 Add a `-nonl' option to `gdb_test' making it possible to match output
71590 While it makes sense to allow accessing out-of-bounds elements in the
71591 debuggee and see whatever there might happen to be there in memory (we
71593 want to make people's life easier in chasing bugs), e.g.:
71605 such then and verify accesses to be in-range for them:
71660 According to our documentation the `max-value-size' setting is a safety
71666 that the setting does not apply to values previously printed.
71669 to lift the setting for value history accesses, under an implication
71683 and the use of `value_copy' by `make_cv_value', used by Python code.
71687 GDB: Switch to using C++ standard integer type limits
71698 parameters -- it only makes sense to call them with keyword arguments.
71699 This patch changes the few remaining cases to start with the special
71709 (gdb) PASS: gdb.gdb/selftest.exp: send ^C to child process
71712 FAIL: gdb.gdb/selftest.exp: send SIGINT signal to child process (timeout)
71716 set description "send SIGINT signal to child process"
71740 This changes main_info to use std::string. It removes some manual
71749 (gdb) PASS: gdb.base/longjmp.exp: with_probes=0: pattern 1: next to longjmp
71751 warning: Breakpoint address adjusted from 0x83dc305fef755015 to \
71772 The test-case intends to set the breakpoint on line number 63 in
71775 It tries to do so by specifying "break 63", which specifies a line in the
71778 Due to the KFAIL PR, gdb stopped in __libc_siglongjmp, and because of presence
71783 Fix this by adding a $subdir/$srcfile: prefix to the breakpoint linespecs.
71785 I've managed to reproduce the FAIL on x86_64/-m32, by installing the
71786 glibc-32bit-debuginfo package. This allowed me to confirm the "current source
71816 The target architecture is set to "i386".
71831 The target architecture is set to "i386:x86-64".
71856 time complexity of the linker relaxation but some code portions did not
71860 actual number of passes for the RISC-V linker relaxation from 3 to 2.
71866 * elfnn-riscv.c (_bfd_riscv_relax_section): Fix a comment to
71872 passes from 3 to 2.
71878 By using alloc rather than malloc we can leave tidying memory to the
71879 generic bfd code when the bfd is closed. bfd_check_format also
71881 to bfd_release at bad_format_free in mmo_object_p, it's a little extra
71882 code and work for no gain.
71898 I don't see any particular reason to disallow local labels inside
71920 With that added, the only further missing piece to use more generic code
71925 code.
71931 way their ModR/M bytes are built. There's no reason to invoke special
71932 case code. With that the handling of an immediate there can also be
71935 okay only because that case was already handled by more generic code).
71940 This really isn't a "modifier" and rather ought to live next to the base
71941 opcode anyway. Use the bits we presently have available to fit in the
71942 field, renaming it to opcode_space. As an intended side effect this
71946 In generated code arrange for human readable output, by using the
71955 to further uses of an already available local variable.
71984 Add full display feature to dwarf-mode.el
71986 files. In this situation, it's handy to be able to expand all the
71987 DWARF, rather than moving to each "..." separately and using C-u C-m.
71993 use "g" to restore the buffer to a pristine state; checking the file
71997 the C-m binding from trying to re-read a DIE which has already been
72005 * dwarf-mode.el: Bump version to 1.8.
72008 (dwarf-mode-map): Bind "A" to dwarf-refresh-all.
72037 removed by this patch to avoid confusion.
72040 "Cause GDB to print structures in an indented format with one member per line"
72058 * I changed nfields to 'unsigned', per Simon's request. I looked at
72063 enough C test case, so I resorted to using the DWARF assembler.
72078 In PR gdb/29854, Simon pointed out that it would be good to be able to
72080 idea here is to be able to interrupt a command like "break" -- not to
72084 to, by default, allow a quit. Polling is done, because there doesn't
72085 seem to be a better way to interrupt a wait on a std::future.
72087 For v2, I realized that the thread compatibility code in thread-pool.h
72096 coff/pe code. It is tested by the xcoff backend but not set.
72099 the .loader section, and it's easy enough to dispense with it there.
72125 xcofflink.c, and I can't see a reason why keep_syms needs to be set.
72127 sh_relax_delete_bytes. There doesn't appear to be any way that
72142 Clear cached file size when bfd changed to BFD_IN_MEMORY
72145 pe_ILF_build_a_bfd converts an archive entry over to BFD_IN_MEMORY,
72157 host pointer, so the test is better done in format-specific code.
72178 * expr.c (operand): Call SKIP_ALL_WHITESPACE after call to expr.
72182 gdb: give sentinel for user frames distinct IDs, register sentinel frames to the frame cache
72187 A problem internal to GDB has been detected,^M
72191 The sequence of events leading to this is the following:
72202 sentinel_frame global to nullptr.
72213 - Deep down the stack, something wants to fill in the unwind stop
72214 reason for frame 0, which requires trying to unwind frame 1. This
72215 leads us to trying to unwind the PC of frame 1:
72240 aarch64_dwarf2_prev_register, to handle unwinding the PC. This
72247 user-created frame, to this_frame->next is the special sentinel frame
72250 - When time comes to un-lazify the value, value_fetch_lazy_register
72251 calls frame_find_by_id, to find the frame with the ID we saved.
72276 easier to explain as a single patch.
72281 fields are now filled with the addresses used to create the user frame.
72284 the user tries to create the same frame, with the same addresses,
72296 to check if a frame id represents a sentinel frame.
72298 comparison to `frame_id_build_sentinel (0, 0)`. The sentinel_frame
72299 global is meant to contain a reference to the "target" sentinel, so
72301 - Add stack and code address parameters to create_sentinel_frame, to be
72302 able to create the various types of sentinel frames.
72303 - Adjust get_current_frame to create the regular "target" sentinel.
72304 - Adjust create_new_frame to create a sentinel with the ID specific to
72306 - Adjust sentinel_frame_prev_register to get the sentinel frame ID from
72309 - Change get_next_frame_sentinel_okay to check for a
72312 sentinel frame (and we would want the assert to catch it).
72317 - Change frame_stash_add's assertion to allow sentinel frame levels
72319 - Make create_sentinel_frame add the frame to the frame cache.
72323 called, we probably want to emit the frames invalid annotation. The
72324 goal of that check is to avoid unnecessary repeated annotations, I
72330 However, I left the global there to avoid slowing the typical case down
72336 in the value, and value_fetch_lazy_register is able to find that
72352 I propose to make it so the dealloc_cache callbacks are called when the
72354 deletion function to the hash table. This happens when
72363 that sentinel frames are registered to the cache.
72367 that some dealloc_cache would need to access some data on that obstack,
72368 so it would be better to free it after clearing the hash table.
72375 A few tdep files include block.h but do not need to. This patch
72377 examining the resulting .Po file to make sure that block.h was not
72382 think most of the check_objfile functions need to be defined in the
72397 However, higher up the in chain, for the CLI we get to
72411 and for MI we get to mi_cmd_interpreter_exec, which has:
72427 exception's error code. I can't see why we'd want that.
72429 And, I can't see why we need to have interp_exec catch the exception
72431 we need to handle propagating exceptions across C code, like across
72434 It seems to me that we can simplify things by removing some
72459 ^error,msg="Undefined MI command: foobar",code="undefined-command"
72471 ^error,msg="Undefined MI command: foobar",code="undefined-command"
72485 since it simplifies things to not have it, the patch just removes it.
72503 (gdb) compile code var = a->get_var ()
72510 This patch arranges to catch any catastrophic failure and then simply
72518 simple to prevent this file from causing a failure.
72523 fixup_symbol_section delegates all its work to fixup_section, so merge
72526 Because there is only a single caller to fixup_symbol_section, we can
72531 the buildsym code now.
72534 is modified to skip sections that do not have this flag set.
72538 Remove most calls to fixup_symbol_section
72539 Nearly every call to fixup_symbol_section in gdb is incorrect, and if
72544 this code (the fallback loop -- the minsym lookup code is "ok") is
72545 careful to remove these offsets before comparing addresses.
72552 considered this approach, but I reasoned that the code has been this
72554 to simply remove the offending calls.
72560 applied. So, it seems to me that the symbol implicitly is in the same
72565 The previous patch hard-coded SECT_OFF_TEXT into the buildsym code.
72571 Do not pass section index to end_compunit_symtab
72572 Right now, the section index passed to end_compunit_symtab is always
72580 offset to the address. It seems to me that the choice of offset here
72587 applying it to a symbol when the address is set. This is done for
72595 chooses the first one. However, it seems better to make this default
72596 depend on the type of the symbol -- i.e., default data symbols to
72597 .data and text symbols to .text.
72604 This changes the cooked_index_functions to avoid an extra null check
72617 Use maint ignore-probes to test both cases, if possible.
72631 Fix this by using maint ignore-probes to simulate the absence of the relevant
72659 due to commit 44288716537 ("gdb, testsuite: extend gdb_test_multiple checks").
72678 f.bfd_ptr is set too early to be a reliable indicator of good debug
72721 1' for breakpoint 2 is due to a bug in print_one_breakpoint_location,
72747 additional 'thread 1' is redundant. In fact, there's a comment to
72748 this very effect in the code:
72750 /* FIXME: This seems to be redundant and lost here; see the
72753 So, lets fix this FIXME. The new plan is to remove all the trailing
72776 I've retained the existing code (but now only for MI like outputs),
72779 I've extended an Ada test to cover the new task related output, and
72816 Remove the stale reference to INFO, which is now "this target
72827 The user can specify 'all' as signal name, the documentation implies
72830 GDB). I've updated the docs to list this limitation.
72832 The 'handle' command also allows the user to specify multiple signals
72835 docs to describe this feature.
72841 disturbs gcc test results. On the other hand, there may be reason to
72856 * testsuite/ld-elf/elf.exp: Pass --secure-plt for powerpc to
72877 What happens is that this loop which is supposed to run "just short of forever":
72890 - changing the pointed-at type of myp from signed to unsigned, which makes the
72892 which is already enough to make it impossible for me to reproduce the FAIL.
72893 But let's try to solve this more structurally).
72894 - changing the pointed-at type of myp from int to long long, making the wrap
72896 - making sure the loop runs forever, by setting the loop condition to 1.
72911 keywords can be used to create a thread or task specific breakpoint or
72919 The exception to the above is that when the 'thread' keyword is used
72928 keywords can be repeated, and (to me), given the keyword takes a
72929 single id, I don't think it makes much sense to repeat the keyword.
72930 As such, I see this more as adding a missing error to GDB, rather than
72931 making some big change. However, I have added an entry to the NEWS
72935 I've added some new tests to check for the new error.
72938 did use the 'thread' keyword twice, and expected the breakpoint to be
72940 the use of '-force-condition', and I don't think that being able to
72943 As such, I've updated this test to expect the error when 'thread' is
72951 vmas it's not too difficult to handle cases where the original vma was
72954 This patch was really in response to an addr2line buffer overflow
72959 the call to _bfd_dwarf2_find_nearest_line in
72969 to result in only one read of .debug_info, not multiple reads of the
72973 (unset_sections): Reset vma to it.
72978 (_bfd_dwarf2_find_nearest_line_with_alt): Simplify call to
72983 [PR 30082] Pass $JANSSON_LIBS and $ZSTD_LIBS to ld-bootstrap/bootrap.exp
72995 gdb/testsuite: don't try to set non-stop mode on a running target
72996 The test gdb.threads/thread-specific-bp.exp tries to set non-stop mode
73002 connects to the target. As a consequence I'm able to move the
73020 only the requirement for resource_table to be aligned to 8. But also
73024 aligned to 4, which would cause firmware load failure on AARCH64 hosts.
73026 Fix this by using COMMONPAGESIZE and MAXPAGESIZE to signify respectively
73040 (.data): Align output section size to COMMONPAGESIZE.
73046 The popular method to load PRU firmware is through the remoteproc Linux
73047 kernel driver. In order to save a few bytes from the firmware, the PRU
73049 host loader is supposed to zero out the bss segment. This is important
73053 behaviour of the kernel core remoteproc [2]. That default is to zero
73070 due to reordering of the output sections. I believe this is a harmless
73071 issue. I could not rewrite the PASS criteria to ignore the output
73091 bpf: fix error conversion from long unsigned int to unsigned int [-Werror=overflow]
73093 …: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘184467440737094…
73096 The use of a narrow size to handle the mask CGEN in instruction format
73099 annotations in `src' field of the instruction, used to identify BPF
73115 Move the implementation over to target_desc_info. Remove the
73132 Remove this function, since it's now a trivial access to
73139 gdb: change inferior::tdesc_info to non-pointer
73140 I initially made this field a unique pointer, to have automatic memory
73141 management. But I then thought that the field didn't really need to be
73151 gdb: move target_desc_info to inferior.h
73152 In preparation for the following patch, where struct inferior needs to
73153 "see" struct target_desc_info, move target_desc_info to the header file.
73155 I initially moved the structure to target-descriptions.h, and later made
73157 occured to me that target_desc_info is really an inferior property that
73158 involves a target description, so I think it makes sense to have it in
73165 gdb: use assignment to initialize variable in tdesc_parse_xml
73167 assignment to initialize the description variable.
73179 optimize_encoding() and hence needs explicit checking for a request to
73184 optimize_encoding() and hence needs explicit checking for a request to
73193 isn't very useful. With there being a way to specific otherwise
73194 unknown insns to the assembler, use that same representation (to be
73215 This patch adds the foundation for GDB to be able to debug programs
73216 offloaded to AMD GPUs using the AMD ROCm platform [1]. The latest
73220 The ROCm platform allows host programs to schedule bits of code for
73222 are typically referred to as `kernels` (not related to operating system
73226 language [2], OpenCL and OpenMP, but we're going to focus on HIP here.
73244 /* Allocate memory for the device to write the result to. */
73251 /* Copy result from device to host. Note that this acts as a synchronization
73252 point, waiting for the kernel dispatch to complete. */
73268 ELF binary with the device code. The ELF for the device can be
73287 GDB port is to let the user debug host threads and these GPU threads
73307 [Switching to AMDGPU Wave 2:2:1:1 (0,0,0)/0]
73338 One thing to notice is the host and GPU threads appearing under
73339 the same inferior. This is a design goal for us, as programmers tend to
73345 Another thing to notice is the error messages when trying to read
73352 There were already some patches posted by Zoran Zaric earlier to make
73357 We think it's better to get the basic support for AMD GPU in first,
73358 which will then give a better justification for GDB to support these
73366 a few things related to AMD GPU threads debugging. Different components
73367 talk to the library, as show on the following diagram:
73377 - The amd-dbgapi target is a target_ops implementation used to control
73390 execution units) offloads some requests to the amd-dbgapi library,
73391 so that knowledge about the various architectures doesn't need to be
73396 code objects loaded on the device from the amd-dbgapi library, and
73397 makes GDB read their symbols. This is very similar to other solib
73399 libraries are the pieces of code loaded on the device.
73403 appear in the same inferior requires the two targets to be in that
73409 amd-dbgapi target to intercept target calls and handle them if they
73410 concern GPU threads, and offload to beneath otherwise. See
73430 to us by the amd-dbgapi library (in practice, a monotonically
73433 belong to the init process, which would also have pid == 1 (and it's
73434 improbable for the init process to offload work to the GPU and much less
73435 for the user to debug it). We can therefore differentiate GPU and
73440 (in its own pid namespace). For instance, if you were to execute a ROCm
73441 program in a container, then spawn a GDB in that container and attach to
73443 workaround for this is to have a dummy process (like a shell) fork and
73446 The amd-dbgapi target watches native inferiors, and "attaches" to them
73450 is a precondition for amd_dbgapi_process_attach to work. When the
73453 inferior. The amd-dbgapi target is then able to intercept target_ops
73483 in device code and resuming execution, pretty much like the example
73501 In the ROCm port, we need to access the underlying stream of a
73502 gdb_printing_disassembler, so make it public. The reason we need to
73503 access it is to know whether it supports style escape code. We then
73504 pass that information to a temporary string_file we use while
73513 In ROCm-GDB, we install an solib provider for the GPU code objects on
73514 top of the svr4 provider for the host, in order to add solibs
73515 representing the GPU code objects to the solib list containing the host
73520 GPU (un)loads a code object, we want the host side (svr4) to be a no-op.
73533 svr4_so_ops.handle_event if so. However, it doesn't feel right to
73536 Instead, this patch changes svr4_handle_solib_event to not assume it is
73558 detach method on the inferior's target stack. This allows observer to
73561 will need it in order to call amd_dbgapi_process_detach before the
73570 A following patch will want to declare variables of the same type as
73585 A following patch will want to install a breakpoint and then keep a
73586 non-owning reference to it. Make install_breakpoint return a non-owning
73587 reference, to make that easy.
73595 gdb: add supports_arch_info callback to gdbarch_register
73598 gdbarch_printable_names to return these architectures.
73606 Add an optional callback to gdbarch_register that is a predicate
73626 GDB has been converted to a C++ program for many years[1], and the
73695 merge test, and makes references to the merged strings from .data
73696 rather than .text to better support targets that relax text by
73713 Provide a way for config/obj-* to clean up at end of assembly, and do
73734 gdbserver: Add PID parameter to linux_get_auxv and linux_get_hwcap
73736 made it avoids a null pointer dereference when HWCAP needs to be obtained
73739 Fixing linux_read_auxv, linux_get_hwcap and linux_get_hwcap2 to take a PID
73741 code path.
73743 Changes are propagated to allow passing the new parameter through the call
73751 It helped me during development, catching bugs closer to when they actually
73784 To avoid this, in this commit I switch to using runto_main. However,
73786 breakpoints. As the point of the above commit was to check that a
73788 we need to avoid this breakpoint deleting behaviour.
73818 to a user, they will see warnings from GDB when really everything is
73829 In this patch I propose that we defer any warnings related to looking
73833 GDB completely fails to find any suitable debug information will the
73839 crc_mismatch.debug to trigger "CRC mismatch" warning. A local
73840 debuginfod server is setup to supply the correct debug file, now when
73843 The build-id-no-debug-warning.exp is similar to the previous test. It
73846 then loading it to GDB. It then also sets up local debuginfod server
73847 with the correct debug file to download to make sure no warnings are
73858 This function has a gas_assert, ie. possible call to as_abort, which
73865 gdb/dwarf: rename cooked_index_vector to cooked_index
73873 gdb/dwarf: rename cooked_index to cooked_index_shard
73874 I propose to rename cooked_index_vector and cooked_index such that the
73875 "main" object, that is the entry point to the index, is called
73879 This patch renames cooked_index to cooked_index_shard. The following
73880 patch renames cooked_index_vector to cooked_index.
73897 * dwarf2dbg.c (DWARF2_LINE_VERSION): Set to 2 for -gdwarf-2.
73912 gdb: add nullptr check to cooked_index_functions::dump
73923 A problem internal to GDB has been detected,^M
73928 The problem is that when cooked_index_functions fails to build an index,
73933 that if the cooked index failed to build, that message is not printed.
73939 gdbsupport: allow passing nullptr to checked_static_cast
73954 gdb/testsuite: adjust ensure_gdb_index to cooked_index_functions::dump changes
73968 slightly. Adjust ensure_gdb_index to expect the trailing colon.
74006 fix file_chain.tail pointer if the insert point happens to be
74021 additional instructions I'm adding I opted to add a whole new test
74030 consistent alias handling"), for the assembler to actually be able to
74045 always tidies up even after an error, attempting to tidy the cached
74056 This adjusts the testsuite to get rid of a number of XPASSes that have
74057 appeared. Someone might like to look into a better patch for the s390
74119 gdb: Replace memcpy with std::copy to avoid some g++ warnings on sparc
74122 Use std::copy to avoid the warnings:
74141 would be useful to have a way to dump the index contents. For those not
74146 "maintenance print objfiles" command. I tried to make the output
74147 well structured and indented to help readability, as this prints a lot
74153 name: __ioinit
74175 The display of address maps above could probably be improved, to show it
74179 to_string" [1]. If my patch is to be merged before Pedro's series, I
74189 This commit introduces shared infrastructure that can be used to
74190 implement enum_flags -> to_string functions. With this, if we want to
74191 support converting a given enum_flags specialization to string, we
74192 just need to implement a function that provides the enumerator->string
74218 If we happen to forget to update the mapping array when we introduce a
74237 code violates the assumption of std::lower_bound and std::upper_bound
74238 that the range is sorted with respect to the comparison.
74241 and that a second layer of filtering would have to be done. However,
74250 case-insensitively, but we're careful to always sort '<' before any
74252 "func<param>" will be sorted next to each other -- i.e., "func1" will
74255 Second, the compare function is changed to work in a strcmp-like way.
74256 This makes it easier to test and (IMO) understand.
74273 This changes the lnp_state_machine constructor to initialize members
74274 directly; and changes lnp_state_machine itself to initialize members
74290 should ideally receive const pointers to objects, to indicate they
74301 addrmap::foreach I could find to make them use static_cast.
74309 xfail would be more appropriate as the problem appears to be in gcc,
74315 The workaround for the vCont packet is no longer required due to the
74318 the supported vCont actions are set to the target's remote state
74325 memory read- and write packet size. It is a further change to commit
74326 "gdb: Make global feature array a per-remote target array" to apply the
74330 to allow the command line configuration for all future remote
74331 connections. Similar to the command line configuration of the per-
74344 It is required to adapt the test gdb.base/remote.exp which is failing
74346 connects to gdbserver at gdb start time. Due to this patch two loggings
74347 "The target may not be able to.." are shown if the command 'set remote
74350 moved to a later time point of the test. It is sufficient to be
74351 connected to the server when "runto_main" is executed. Now the
74352 connection time is similar to a testrun with
74355 To allow the user to distinguish between the packet-size configuration
74365 "You'll notice that remote.c includes some FIXME notes. These refer to
74367 supported are still globals. For example, if we connect to two
74370 e.g., one ARM baremetal stub, and a x86 gdbserver, to debug a
74371 host/controller scenario as a single program. That isn't going to
74373 that for another pass, since it does not appear to be trivial, and I'd
74374 rather land the base work first. It's already useful to be able to
74379 Using this patch it is possible to configure per-remote targets'
74391 packet. As one of the targets supports vCont, it should be possible to
74400 [Switching to inferior 2 [<null>] (<noexec>)]
74406 [Switching to inferior 1 [<null>] (<noexec>)]
74412 as it is connected to a target supporting the vCont package.
74421 [Switching to inferior 2 [<null>] (<noexec>)]
74427 [Switching to inferior 1 [<null>] (<noexec>)]
74432 Now only one warning is shown for inferior 2, which is connected to
74437 provides functions to determine supported features of the target.
74445 targets (due to the global feature array used by all remote
74480 Due to this configuration change, it is required to adapt the test
74481 "gdb/testsuite/gdb.multi/multi-target-info-inferiors.exp" to configure the
74487 outputs are adapted. Due to this change it is required to adapt each
74519 -fno-asynchronous-unwind-tables, due to trying to concatenate two lists using:
74529 leaving the responsibility to set srcfile_flags and srcfile2_flags to each
74560 The two calls can be traced back to
74568 flag to update_exec_info to defer the refresh.
74572 update_exec_info does not to call refresh_window in some cases, which
74573 is why I'm using a flag to control the refresh.
74584 was seeing two calls to tui_source_window_base::refresh_window when
74588 when the pad needed to be refilled. The two called both come from
74593 The check_and_display_highlight_if_needed is being used to draw the
74594 window box to the window, this is needed here because
74600 However, we can move the check_and_display_highlight_if_needed to be
74602 rely on the refresh_window call within it to be our single refresh
74609 gdb/tui: rewrite of tui_source_window_base to handle very long lines
74614 The problem can be traced back to the newpad call in
74616 a backing pad to hold the window content.
74618 Unfortunately, there appears to be a limit to the size of pad that can
74623 It just so happens that the reset of the tui_source_window_base code
74629 window, we seem to see a whole bunch of blank lines. I've not
74630 bothered to track down exactly what's happening there, but it's some
74631 consequence of GDB attempting to write content to a WINDOW* that is
74636 Consider we have the following window content to display:
74652 Now we will copy a 10 character wide view into this pad to the
74662 use this to select which part of the pad is copied onto the display.
74664 The benefit of this is that we only need to copy the content to the
74670 then we try to allocate a very large pad, which can fail.
74672 What I propose is that we allow both the pad and the display view to
74673 scroll. Once we allow this, then it becomes possible to allocate a
74676 right GDB will continue to copy content from the pad just as it does
74677 right now. But, when the user scrolls to the edge of the pad, GDB
74684 If we return to our example above, but this time we assume that the
74695 included in the pad. There is still enough content though to fill the
74699 right to this point:
74720 now correctly loads the assembler code, and we can scroll around as
74723 Most of the changes are pretty mundane, just updating to match the
74726 calls to tui_puts when copying content to the pad.
74729 are written to the pad these escape sequences are translated into
74732 Now however, we sometimes only write a partial string to the pad,
74741 If we want to copy this to the pad, but skip the first 3 characters,
74742 then what we expect is to have the pad contain 'DEFGHIJKLM', but this
74757 This makes more sense in the context of a later commit where I plan to
74758 add another member variable that is similar to m_horizontal_offset.
74761 So I had to choose, place the new member variable next to
74766 I chose to make m_horizontal_offset private, which is this commit.
74774 internal backtrace that is generated is printed directly to the file
74778 to the start of each line after the '\n'.
74780 This is mostly fixable, we could update bt-utils.c to use '\r\n'
74782 one we can't easily fix is if/when GDB is built to use execinfo
74783 instead of libbacktrace, in this case we use backtrace_symbols_fd to
74785 terminator. Fixing this would require switching to backtrace_symbols,
74786 but that API uses malloc, which is something we're trying to
74787 avoid (this code is called when GDB hits an error, so ideally we don't
74788 want to rely on malloc).
74790 However, the execinfo code is only used when libbacktrace is not
74796 the terminal in raw mode we don't have the ability to scroll back,
74800 handle a fatal signal, or when we hit the internal error code
74802 need to update the bt-utils.c code, and the execinfo version of the
74803 code (using backtrace_symbols_fd) works just fine. We also get the
74804 ability to scroll back to view the error message and all of the
74809 time when it is not safe to call tui_disable, in these cases the extra
74810 tui_disable call might cause GDB to loose the original error.
74823 (1) Window name "NAME" is ambiguous
74825 (2) Unrecognized window name "NAME"
74829 Error (1) is triggered when the user gives a partial window name, and
74830 the name matches multiple windows in the current layout.
74833 layout; if the partial name matches one window in the current layout,
74835 ambiguous, and focus will shift to the matching window in the current
74839 use of the Python API to trigger and test this error.
74842 triggered by something like 'focus status'. The named window needs to
74843 be present in the current layout, and non-focusable in order to
74846 Error (2) is what I'd like to improve in this commit. This error
74847 triggers if the name the user gives doesn't match any window in the
74850 recognize the window name.
74852 In this commit I propose to to split this error into three different
74855 (a) Unrecognized window name "NAME"
74867 the current layout then that window will continue to be selected, just
74876 understanding of what went wrong. Instead of GDB claiming to not know
74877 about a window, the mention of the current layout will hint to the
74885 In a following commit I managed to trigger the line feed scrolling
74906 - move the logic into process_operands(), putting it closer to related
74911 x86: drop dead SSE2AVX-related code
74913 also specify VEX3SOURCES. Hence there's no need for an "else" to the
74931 only leads to a waste of resources.
74944 This is similar to "Call bfd_close_all_done in output_file_close",
74945 but with some code tidying in the pe/pep write_build_id functions.
74947 no need to go looking for the output bfd via link_info (and doing so
74951 * emultempl/pe.em (write_build_id): Rename t to td. Formatting.
74953 (setup_build_id): Rename t to td. Formatting.
74961 It seems reasonable to continue after errors in bfd_close_all_done,
74964 necessary if bfd_close_all_done is to work on odd bfd's opened by
74986 macro name requires a little restructuring of the define_macro
74987 interface due to the name being used in the error message, and exposed
74988 the fact that the name and other fields were not initialised by the
74996 which prior to this patch reported
74997 mac.s:1: Warning: attempt to redefine pseudo-op `.macro' ignored
74999 rather than reporting the attempt to redefine twice.
75003 (free_macro): Free macro name too.
75006 from macro_hash on attempt to redefined pseudo-op.
75009 * read.c (s_macro): Adjust to suit.
75020 Adds the correct constant to the S_COMPILE3 CodeView record when
75026 Change gdb.base to use clean_restart more consistently.
75029 Change gdb.python to use clean_restart more consistently.
75032 Change gdb.cp to use clean_restart more consistently.
75035 Change gdb.disasm to use clean_restart more consistently.
75038 Change gdb.perf to use clean_restart more consistently.
75041 Change gdb.go to use clean_restart more consistently.
75044 Change gdb.stabs to use clean_restart more consistently.
75047 Change gdb.fortran to use clean_restart more consistently.
75050 Change gdb.ada to use clean_restart more consistently.
75053 Change gdb.dwarf2 to use clean_restart more consistently.
75056 Change gdb.reverse to use clean_restart more consistently.
75059 Change gdb.arch to use clean_restart more consistently.
75062 Change gdb.guile to use clean_restart more consistently.
75065 Change gdb.threads to use clean_restart more consistently.
75068 Change gdb.objc to use clean_restart more consistently.
75071 Change gdb.trace to use clean_restart more consistently.
75074 Change gdb.opencl to use clean_restart more consistently.
75077 Change gdb.linespec to use clean_restart more consistently.
75080 Change gdb.pascal to use clean_restart more consistently.
75083 This changes a number of MI tests to use mi_clean_restart rather than
75085 also provides a nicer model to copy for future tests.
75089 This just seemed weird to me, so I've fixed this up. In this patch,
75090 no other cleanups are done, the startup is just moved to a more
75091 logical (to me) spot.
75093 Remove unnecessary call to standard_testfile
75094 This test does not build a program and does not need to call
75099 hoisting the "require" closer to the top of the file made it more
75104 Remove some dead code in gdb.fortran/info-types.exp
75106 This seems to have been intentional and has been in place since:
75114 This patch removes the dead code.
75123 Change gdb.dlang to use clean_restart more consistently.
75127 {args} and handling the argument by hand, change it to use Tcl's own
75146 I decided not to duplicate the comment.
75153 resolve gas shift expressions with large exponents to zero
75155 shifts exceeding bits in a valueT to zero.
75165 Due to a GDB bug (visible when building with -D_GLIBCXX_DEBUG), GDB
75166 crashes somewhere in the middle of gdb.cp/cpexprs.exp, and thus fails to
75172 Avoid the TCL error by initializing the "correct" variable to a dummy
75180 Prior to this patch, I get:
75188 The problem is that the PC to disassemble is taken from the breakpoint
75193 I chose to fix this by watching for a breakpoint changed event giving
75195 think this is an interesting way to fix it, because it adds a bit of
75198 Other ways to fix it would be:
75214 the event of interest. This is similar to what
75221 gdb/testsuite/dap: rename dap_read_event to dap_wait_for_event_and_check
75222 I think that name describes a bit better what the proc does, it is
75223 similar to "wait_for" in tuiterm.exp.
75231 almost all immediately use ton::2dict to convert them to dicts, to
75237 string "2" in JSON. By converting to TCL dicts, we lose that
75238 information. If some tests specifically want to check the types of some
75240 objects, without having to complicate other callers who don't care.
75248 preceding patch, I think it's a bit better to just let any exception
75249 propagate, to make for easier debugging.
75257 didn't know why. I think it's better to make it not catch any
75260 things are going really badly, it's not like we'll want to recover from
75267 gdb/testsuite/dap: write requests to gdb.log
75269 that it becomes harder to tell what text is from GDB and what text is
75270 going to GDB, but I think that seeing responses without seeing requests
75273 something that was sent to GDB, and not GDB output.
75280 Prefix some procs that are only used internally with an underscore, to
75281 make it clear they are internal. If they need to be used by some test
75295 gprofng: PR30043 libgprofng.so.* are installed to a wrong location
75310 In order to work around this in gdb, epilogue unwinders were added with a
75328 - commenting out some .cfi directives to break the epilogue unwind info, and
75329 - hand-editing the producer info to 4.4.7 to activate the fix.
75346 ld/testsuite: Add missing targets to PDB tests
75350 ld: Add pdb support to aarch64-w64-mingw32
75351 This extends PDB support to the aarch64 PE targets.
75353 The changes to the test files are just to make it so they can be assembled as
75355 The only actual code change here is in adding the architecture constants
75356 to pdb.c.
75363 doing so, the impact can be reduced to checking the state and
75370 to provide the value of this register. In some situations, it might
75371 not be trivial to determine the value to return and it would cause a
75372 performance bottleneck to do the computation each time.
75374 This patch allows the called function to have a "cache" object that it
75375 can use to store some metadata between calls to reduce the performance
75383 dwarf2_frame_get_fn_data can be used to retrieve the function unique
75385 dwarf2_frame_allocate_fn_data can be used to allocate and retrieve the
75390 Clean up unusual code in mi-cmd-stack.c
75391 I noticed some unusual code in mi-cmd-stack.c. This code is a switch,
75393 seemed cleaner to me to have the earlier case just conditionally fall
75398 i386: Pass -Wl,--no-as-needed to compiler as needed
75399 Pass -Wl,--no-as-needed to linker tests to fix
75406 when --as-needed is passed to linker by compiler.
75409 * testsuite/ld-i386/i386.exp: Pass -Wl,--no-as-needed to compiler
75419 This changes some tests to use require with 'is_remote', rather than
75430 silently because a compilation fails. I didn't attempt to address
75437 a single call to istarget -- that proc only accepts globs, not regular
75441 tests to use it in a 'require'.
75446 This changes many tests to use require when checking 'istarget'. A
75449 No change was needed to 'require' to make this work, due to the way it
75451 bonus of helping to ensure that the reason that a test is skipped is
75456 Rename skip_vsx_tests to allow form
75457 This renames skip_vsx_tests to allow_vsx_tests and updates it users to
75460 Rename skip_power_isa_3_1_tests to allow form
75461 This renames skip_power_isa_3_1_tests to allow_power_isa_3_1_tests and
75462 updates its users to use require.
75464 Rename skip_float_test to allow form
75465 This renames skip_float_test to allow_float_test and updates its users
75466 to use require.
75468 Convert skip_altivec_tests to allow form
75469 This renames skip_altivec_tests to allow_altivec_tests and updates its
75470 users to use require.
75484 as I used to get before commit d25a8dbc7c3 ("[gdb/testsuite] Allow debug
75485 srcfile2 in gdb.base/unwind-on-each-insn.exp"), due to the test-case trying to match
75504 This shortcuts the test due to no longer recognizing that stepi still lands
75533 due to a mismatch between the regexp and the different output due to using
75550 to check various invariants at each insn, in particular hoping to excercise
75576 to check various invariants at each insn, in particular hoping to excercise
75681 I don't think the existing code can throw an exception, so this is
75692 after the previous couple of commits, trying to focus the status
75700 gdb/tui: convert if/error to an assert
75712 The gdb.tui/tui-focus.exp test script exercises this area of code, and
75720 so I started adding some. This exposed a bug in GDB; we are able to
75724 this code path we assert that the currently focused window is
75728 The fix is simple; add a check to the tui_set_focus_command function
75729 to ensure that the selected window is focusable. If it is not then an
75736 the test script gdb.tui/tui-nl-filtered-output.exp to take account of
75744 In the above commit the TERM environment variable was changed to be
75746 tui mode, no longer do unless TERM is set to 'ansi'.
75753 In this commit I update the test script to correctly activate our
75754 terminal emulator, the test continues to pass after this update, but
75761 the test script gdb.tui/tui-disasm-long-lines.exp to take account of
75769 In the above commit the TERM environment variable was changed to be
75771 tui mode, no longer do unless TERM is set to 'ansi'.
75778 In this commit I update the script to use Term::clean_restart, which
75779 correctly sets TERM to 'ansi'. I've also added a check that the asm
75783 However, I also notice that GDB doesn't appear to fully work
75787 The test is trying to disassemble some code that (deliberately) uses a
75788 very long symbol name, this eventually results in GDB entering
75789 tui_source_window_base::show_source_content and trying to allocate an
75790 ncurses pad in order to hold the current page of disassembler output.
75792 Unfortunately, due to the very long line, the call to newpad fails,
75794 the following calls appear to crash when passed a nullptr, however,
75795 all the output that is written to the pad is lost, which is why we
75796 don't see any assembly code written to the screen.
75819 This was when we changed the testsuite to set the TERM environment
75820 variable to "dumb" by default.
75822 After this, any tui test that didn't set the terminal mode back to
75823 'ansi' would fail to activate tui mode.
75826 are generic enough that the test continued to pass, even after this
75835 test suite that deliberately tries to enter tui mode in a dumb
75836 terminal, it would be sad if we one day managed to break GDB such that
75841 gdb/testsuite: rename test source file to match test script
75846 This commit renames the source file to cpcompletion.cc to match the
75847 test script, this is more inline with how we name source files these
75855 completion testing to check tab-completion as well as completion using
75873 * src/Makefile.am: Move the build of gprofng.1 to doc/Makefile.am.
75904 This patch adjusts column widths of the affected cells to fix a subset
75906 command to fix them.
75918 Terminate early of there are no relocs to put
75929 gdb: some int to bool conversion
75933 …t.c:1045:23: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
75936 …t.c:1057:22: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
75939 …t.c:1073:24: error: implicit truncation from 'int' to a one-bit wide bit-field changes value from …
75960 ld: Set default subsystem for arm-pe to IMAGE_SUBSYSTEM_WINDOWS_GUI
75962 default subsystem for arm-pe from 9 (IMAGE_SUBSYSTEM_WINDOWS_CE_GUI) to
75971 Add support for secidx relocations to aarch64-w64-mingw32
75973 relocation to aarch64-w64-mingw32. As with x86, this is a two-byte LE
76012 and $x29 (and strip the output of info frame to the first line, for brevity):
76073 answer once sp has been restored to entry value by the before-last insn.
76091 One purpose of the gdb.base/unwind-on-each-insn.exp test-case is to test the
76093 compiled with nodebug, to prevent the dwarf unwinders from taking effect.
76099 Currently, that happens to be not the case due to the current implementation
76121 In test-case gdb.base/unwind-on-each-insn.exp, we try to determine the last
76127 The use of the last disassembled insn in the test-case is to stop stepping in
76130 However, the intent is to stop stepping just before returning to main.
76134 - is executed just before returning to main
76137 Fix this by simplying the test-case to continue stepping till stepping out of
76148 frame-view.c:73: undefined reference to `pthread_create'
76149 ld: frame-view.c:76: undefined reference to `pthread_join'
76151 UNTESTED: gdb.base/frame-view.exp: failed to prepare
76154 Fix this by adding pthreads to the compilation flags.
76171 Remove path name from test
76174 to locate one. This one is probably harmless, as I think the path
76175 does not vary; but it's also easy to fix and suppress one warning.
76178 I noticed a weird-looking bit of code in gdb.btrace/enable.exp that is
76183 An earlier patch failed to update a string in allow_aarch64_sve_tests.
76197 demand whenever trying to obtain the wrapper frame_info pointer, either
76201 Add an "is_null" method, because it is often needed to know whether the
76204 Make m_ptr mutable, so that it's possible to reinflate const
76216 frame_info_ptr::prepare_reinflate method, move that code to the
76225 This patch teaches frame_info_ptr to reinflate user-created frames
76232 frames). To reinflate a user-created frame, we need to call
76233 create_new_frame, to make it lookup an existing user-created frame, or
76240 In order to test this, I initially enhanced the gdb.base/frame-view.exp
76243 causes print_frame_args to not reinflate its frame (which is a
76268 gdb: make it possible to restore selected user-created frames
76269 I would like to improve frame_info_ptr to automatically grab the
76270 information needed to reinflate a frame, and automatically reinflate it
76291 [Switching to Thread 0x7ffff7cc46c0 (LWP 4171134)]
76305 [Switching to thread 1 (Thread 0x7ffff7cc5740 (LWP 4171122))]
76313 The first calls to "frame" looks good:
76328 to behave, especially since it's not tested. I heard accounts that it
76329 used to be possible to select a frame like this and do "up" and "down"
76330 to navigate the backtrace starting from that frame. The fact that
76331 create_new_frame calls frame_unwind_find_by_frame to install the right
76332 unwinder suggest that it used to be possible. But that doesn't work
76349 I don't want to address all the `select-frame view` issues , but I think
76351 shown above, is a bug. I would expect that command to show the
76373 My goal here is to fix this particular problem.
76377 null_frame_id / -1, indicating to restore_selected_frame to use the
76385 != 0` to account for the fact that we can restore user-created frames,
76388 Finally, change lookup_selected_frame to make it able to re-create
76394 order to have a known stack frame to switch to, the test spawns a second
76395 thread, and tells the first thread to use the other thread's top frame.
76403 The subsequent patches will need to call create_new_frame with an
76406 nicer to have a version of the function that takes a frame_id directly.
76413 gdb: add user-created frames to stash
76414 A subsequent patch makes it possible for frame_info_ptr to reinflate
76416 user-created frame_info need to do reinflation, we want them to end up
76417 pointing to the same frame_info instance, and not create two separate
76429 frame_id::operator== to account for frame_id::user_created_p.
76432 create one if it doesn't find one. The goal is to avoid the
76437 It will be able to just call create_new_frame and it will do the right
76446 Later in this series, we'll need to differentiate frame ids for regular
76449 frame_id::user_created_p field to indicate a frame is user-created, and
76460 gdb: move frame_info_ptr to frame.{c,h}
76462 fields internal to frame_info, which we don't want to expose outside of
76463 frame.c. Move the frame_info_ptr class to frame.h, and the definitions
76464 to frame.c. Remove frame-info.c and frame-info.h.
76471 gdb: move call site types to call-site.h
76478 choosing to put it under dwarf2/. If another debug info reader ever
76479 wants to provide call site information, we can introduce a layer of
76490 gdb: move sect_offset and cu_offset to dwarf2/types.h
76491 I want to move the call_site stuff out of gdbtypes.h, to a new header
76492 file, to break some cyclic include problem. The call_site stuff uses
76493 cu_offset, also defined in gdbtypes.h, so cu_offset also needs to move
76494 somewhere else (otherwise, call-site.h will need to include gdbtypes.h,
76495 and we are back to square 1). I could move cu_offset to the future new
76497 at cu_offset is not specific to call sites, it's used throughout
76498 dwarf2/. So, move it to its own file, dwarf2/types.h. For now,
76500 call site stuff is moved to its own file.
76515 Doing so reveals that a bunch of files were relying on frame.h to
76523 gdb: move compile_instance to compile/compile.h
76524 struct compile_instance needs to be visible to users, since we use
76534 gdb: move type_map_instance to compile/compile.c
76535 It's only used in compile/compile.c, it doesn't need to be in a header.
76544 * README-how-to-make-a-release: Include sframe-spec html and pdf
76551 returning a CORE_ADDR but intending to return a bool. This patch
76552 changes all the pc_in_* functions to return bool instead.
76557 It seems to me that a notif_client is read-only, so this patch changes
76558 the code to use "const" everywhere.
76576 This patch changes the code to accept either result, and then to issue
76604 When processed by this code:
76615 My obvious fix is just to skip the fixup for base types larger than a
76629 I am looking at this code [1]:
76631 /* Normally, the DWARF producers are expected to use a signed
76632 constant form (Eg. DW_FORM_sdata) to express negative bounds.
76647 Nothing in the testsuite seems to exercise it, as when I remove it, all
76651 Update gdb.dwarf2/subrange.exp to have a test for it. When removing the
76652 code above, the new test fails with:
76671 to check a situation that once failed with the new section merging
76673 string sections (i.e. pointing to zeros). It made bootstrap.exp fail
76674 but that depends on many factors to actually go wrong so this is a more
76696 * use input-offset-to-entry maps instead of retaining full input
76703 writing on the machine I used was going from 14400 perf samples to 9300
76704 perf samples or from 3.7 seconds to 2.4 seconds, i.e. about 33% .
76716 efficiently when maintaining the shared "name" field only in the actual
76717 hash entry. (To express the shared nature, also convert "name" to by
76718 pointer-to-const.)
76720 While doing the conversation also pull out common code from the involved
76727 bytes long. Otoh no register name is longer than 8 bytes. Hence even for
76742 bytes long. Otoh no register name is longer than 7 bytes. Hence even for
76753 - convert a leftover strncmp() to startswith() (apparently an oversight
76756 md_assemble() (valid up to the point where match_template() is
76772 x86: move insn mnemonics to a separate table
76773 Using full pointers to reference the insn mnemonic strings is not very
76779 For 64-bit builds this reduces table size by 6.25% (prior to the recent
76788 In preparation for changing the representation of the "name" field
76800 was not being run. However, it occurred to me that Tom de Vries' new
76801 "maint ignore-probes" command could be used to enable this test
76825 `set print characters' option set to `elements' and the limit controlled
76838 There are new tests for Ada and Pascal, as the string printing code for
76839 these languages is different than the generic string printing code used
76840 by other languages. Modula2 also has different string printing code,
76841 but (a) this is similar to Pascal, and (b) there are no existing modula2
76857 The motivation behind this change is to allow users a finer level of
76859 be thought of as arrays of characters, users often want to treat these
76863 option is set to `elements', which makes the limit for character strings
76865 to. Using `set print characters' with any other value makes the limit
76867 be restored to the default with the `set print characters elements'
76871 with the same semantics, i.e. one can use `elements' to make a given
76878 to the old 'print_max' to use a new `get_print_max_chars' helper which
76880 to use.
76882 Likewise, the documentation is just updated to reference the new setting
76886 now indicates if the setting also applies to character strings:
76890 Limit on string chars or array elements to print is 200.
76893 Limit on array elements to print is 200.
76899 Set limit on array elements to print.
76900 "unlimited" causes there to be no limit.
76901 This setting also applies to string chars when "print characters"
76902 is set to "elements".
76905 In the testsuite there are two minor updates, one to add `-characters'
76906 to the list of completions now shown for the `print' command, and a bare
76918 options) to define arbitrary keywords for the user to use, removing
76927 to be used, however unlike `var_zuinteger_unlimited' any number of such
76932 "n" would be confusing as to whether it stands for "non-negative" or
76936 keywords allowed for a command and numerical values they correspond to.
76938 underlying variable type, allowing extra values to be allowed outside
76939 that range, which may or may not be individually made visible to the
76940 user. An optional value translation is possible with the structure to
76942 internally translated to UINT_MAX or INT_MAX. Such translation can now
76955 which get translated to INT_MAX for the setting to be used with.
76967 set to `{}') here, then only the keyword would be allowed for the user
76968 to enter and while -1 would still be used internally trying to enter it
76973 replacing "only -1 is allowed to set as unlimited" previously used for
76974 `var_zuinteger_unlimited' settings only rather than propagating it to
76984 used to communicate corresponding parameter values. Do not add a new
76987 such as `listsize', to be accessed from Scheme code.
76990 programmer to expand the syntax of the `make-parameter' command and the
76991 `gdb.Parameter' class initializer to have arbitrary extra literals along
77011 to. This patch removes these unnecessary includes. Tested by
77026 The sp alias is superfluous, because the canonical name of x31 is already sp.
77064 and after assigning 99 to u.a, the test-case expects u.c to contain 99 (which
77067 Fix this by instead assigning 0x63636363, to ensure that u.c == 99 for both
77080 So let's not copy .libs/libbfd.a to libbfd.a now that nothing in the
77081 binutils-gdb source tries to link against it.
77086 (CLEANFILES): Adjust to suit.
77092 bfdlib relinks and fails to find libsframe, the install time
77093 dependencies of libbfd need to be updated.
77096 * Makefile.def: Reflect that libsframe needs to installed before
77097 libbfd. Reorder a bit to better track libsframe dependencies.
77107 All of them also need changing to support objdump -W calls to
77138 This is just a patch to fix overlong lines. Wrapping the HOWTO macro
77146 This adds a new flag to the reloc howtos that can be used to
77147 incrementally change targets over to simple bfd_install_relocation
77149 I've made a few other changes to bfd_install_relocation, removing dead
77150 code and comments that are really only applicable to
77154 check to where data is accessed, as it seems reasonable to me to not
77159 testsuite failures due to _NONE and _ALIGN relocs at the end of
77161 size set to zero, but I would rather not edit lots of files when it
77162 involves checking that target code does not use the size.
77169 code dealing with output_offset and output_section. Just set
77170 relocation to addend if install_addend. Move reloc offset
77171 bounds check to just before section data is accessed, avoiding
77177 sim: info: convert verbose field to a bool
77179 convert it to an explicit bool. Further, update the API docs to
77185 from sim-signal.c and unify it across all boards since it compiles to
77186 the same code.
77188 sim: v850: reduce extra header inclusion to igen files
77189 Limit these extra header includes to only when specific igen files
77190 include us until we can move the includes to the igen fils directly.
77205 of mn10300-sim.h, sim-fpu.h and/or sim-signal.h to dv-mn103cpu.c,
77214 GDB: Add references to erased args in cli-decode.c
77219 `args' parameter and removing references to `var', `set_setting_func'
77237 Rename CLASS to THECLASS in the documentation for `theclass' parameters
77271 Accessing gdb.Objfile.build_id caused GDB to crash when objfile is
77282 …* objcopy.c (merge_gnu_build_notes): Remember the last non-deleted note in order to speed up the s…
77289 drop all the logic to simplify.
77293 Use subsystem to distinguish between pei-arm-little and pei-arm-wince-little
77299 header is used to do the disambiguation for us, so that WinCE images get
77300 assigned to pei-arm-wince-little, and everything else to pei-arm-little.
77304 Revert "gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'"
77314 When I converted gdbarch to use the registry, I forgot to remove the
77315 two fields that were used to implement the previous approach. This
77319 The new paramless.exp test was not converted to the new "require"
77325 PR record/29927 - reverse-finish requires two reverse next instructions to
77331 not valid the GEP is called to setup the TOC before execution continues at
77337 recorded log is reached causing gdb to stop at the wrong place.
77339 This patch adds a new address to struct execution_control_state to hold the
77343 range is set to execute back to the alternate entry point (GEP on PowerPC).
77347 Function process_event_stop_test checks uses a stepping range to stop
77348 execution in the caller at the first instruction of the source code line.
77352 Test finish-reverse-next.exp is updated to include tests for the
77361 PR record/29927 - reverse-finish requires two reverse next instructions to
77365 single step from the first instruction in the callee to get back to the
77366 caller. GDB stops on the last instruction in the source code line where
77367 the call was made. When stopped at the last instruction of the source code
77369 of the same source code line thus requiring two step/next commands to
77370 reach the previous source code line. It should only require one step/next
77371 command to reach the previous source code line.
77374 function stops at the first instruction in the source code line where the
77386 This patch requires a number of regression tests to be updated. Test
77387 gdb.mi/mi-reverse.exp no longer needs to execute two steps to get to the
77391 gdb.reverse/singlejmp-reverse.exp are updated to the correct expected
77394 This patch adds a new test gdb.reverse/finish-reverse-next.exp to test the
77399 was moved to lib/gdb.exp and renamed cmd_until.
77401 The patch has been tested on X86 and PowerPC to verify no additional
77415 This is because the -re that is supposed to match this SIGSEGV is after
77433 This happens because the new index uses strncasecmp to compare.
77434 However, to make this work correctly, we need a custom function that
77448 table. So, it seemed cleaner to move these there as well.
77451 The DWARF reader has some code to remove empty indices. However, I
77452 think this code has been obsolete since some earlier changes to
77453 parallel_for_each. This patch removes this code.
77456 I found that parallel_for_each would submit empty tasks to the thread
77460 arranges to instead shrink the result vector and process the trailing
77465 gas: arm: Change warning message to not reference specific A-class architecture revision
77472 the message to not specify an architecture revision at all and
77512 This still triggers an error due to being misidentified as "vcvtn+e"
77514 patterns (these have all been added to the testing of this patch).
77519 that isn't adequate to cover all the extra cases that have been
77547 libctf: update regexp to allow makeinfo to build document
77548 While trying to build gdb on latest openSUSE Tumbleweed, I noticed the
77562 This is free software: you are free to change and redistribute it.
77563 There is NO WARRANTY, to the extent permitted by law.
77567 missing in regexp that makes it impossible to match versions higher than
77575 suggested to solve this problem permanently. That is, we don't care
77579 In this way, the problem will be resolved permanently, thanks to Eli.
77584 * configure.ac: Update regexp to match versions higher than 7.0.
77602 * config/tc-hppa.c (expr_end): Rename to expr_parse_end.
77640 Since we switched to gnulib, it guarantees that a sys/stat.h exists
77641 for us to include, so we're doubly OK.
77646 Since we switched to gnulib, it guarantees that a unistd.h exists
77647 for us to include, so we're doubly OK.
77650 This logic was added in order to expose the strsignal prototype for
77651 nrun.c. Since then, we've migrated to gnulib as our portability layer,
77653 need to duplicate the work.
77658 Add explicit arch-specific modules.c rules to keep the build from
77663 My local testing of this code didn't catch this bug because of how
77666 the build to generate correct modules.c files. But when building
77667 from a cold cache, the pattern rules would force common/modules.c to
77668 be used leading to crashes at runtime.
77683 Copying & pasting the first rule missed updating the dep to the right
77689 switch from noinst_LIBRARIES to EXTRA_LIBRARIES so that the library
77698 need to expand all the modules.c targets as a recursive dep. Each
77702 sim: common: move modules.c to source tracking
77707 sim: common: move libcommon.a dep to ppc code
77708 Rather than force this to be built ahead of time for all targets,
77709 move the dep to the ppc code since it's the only user of it now.
77713 there, we don't need to generate them all first -- we can let the
77716 sim: common: move libcommon.a objects to sources
77720 We aren't affected by that bug with the current code, but as we move
77726 need to mark the igen tool as a recursive dep. Each port depends on
77731 need to expand all the hw-config.h targets as a recursive dep. Each
77744 Pass internal gdb flags to --configuration invocations
77745 The test suite uses the --configuration flag to feature-test gdb.
77746 However, when I added this, I neglected to pass the internal gdbflags
77747 to this, causing an error, which then caused failures in the test
77751 to verify that I could reproduce the failure.
77755 Update how-to-make-a-release file now that the 2.40 release is out
77769 Rename to allow_tui_tests
77770 This changes skip_tui_tests to invert the sense, and renames it to
77771 allow_tui_tests. It also rewrites this function to use the output of
77773 to that output.
77775 Rename to allow_guile_tests
77776 This changes skip_guile_tests to invert the sense, and renames it to
77777 allow_guile_tests. It also rewrites this proc to check the output of
77779 code to use "require" where possible.
77781 Rename to allow_hw_breakpoint_tests
77782 This changes skip_hw_breakpoint_tests to invert the sense, and renames
77783 it to allow_hw_breakpoint_tests. This also converts some tests to use
77786 Rename to allow_tsx_tests
77787 This changes skip_tsx_tests to invert the sense, and renames it to
77790 Rename to allow_shlib_tests
77791 This changes skip_shlib_tests to invert the sense, and renames it to
77794 Rename to allow_rust_tests
77795 This changes skip_rust_tests to invert the sense, and renames it to
77798 Rename to allow_python_tests
77799 This changes skip_python_tests to invert the sense, and renames it to
77802 Rename to allow_perf_tests
77803 This changes skip_perf_tests to invert the sense, and renames it to
77806 Rename to allow_opencl_tests
77807 This changes skip_opencl_tests to invert the sense, and renames it to
77810 Rename to allow_ifunc_tests
77811 This changes skip_ifunc_tests to invert the sense, and renames it to
77814 Rename to allow_hw_watchpoint_tests
77815 This changes skip_hw_watchpoint_tests to invert the sense, and renames
77816 it to allow_hw_watchpoint_tests.
77818 Rename to allow_hw_watchpoint_multi_tests
77819 This changes skip_hw_watchpoint_multi_tests to invert the sense, and
77820 renames it to allow_hw_watchpoint_multi_tests.
77822 Rename to allow_hw_watchpoint_access_tests
77823 This changes skip_hw_watchpoint_access_tests to invert the sense, and
77824 renames it to allow_hw_watchpoint_access_tests.
77826 Rename to allow_go_tests
77827 This changes skip_go_tests to invert the sense, and renames it to
77830 Rename to allow_gdbserver_tests
77831 This changes skip_gdbserver_tests to invert the sense, and renames it
77832 to allow_gdbserver_tests.
77834 Rename to allow_fortran_tests
77835 This changes skip_fortran_tests to invert the sense, and renames it to
77838 Rename to allow_d_tests
77839 This changes skip_d_tests to invert the sense, and renames it to
77842 Rename to allow_dlmopen_tests
77843 This changes skip_dlmopen_tests to invert the sense, and renames it to
77846 Rename to allow_debuginfod_tests
77847 This changes skip_debuginfod_tests to invert the sense, and renames it
77848 to allow_debuginfod_tests.
77850 Rename to allow_ctf_tests
77851 This changes skip_ctf_tests to invert the sense, and renames it to
77854 Rename to allow_cplus_tests and allow_stl_tests
77855 This changes skip_cplus_tests to invert the sense, and renames it to
77856 allow_cplus_tests. This one also converts skip_stl_tests to
77857 allow_stl_tests, as that was convenient to do at the same time.
77859 Rename to allow_btrace_tests
77860 This changes skip_btrace_tests to invert the sense, and renames it to
77863 Rename to allow_btrace_pt_tests
77864 This changes skip_btrace_pt_tests to invert the sense, and renames it
77865 to allow_btrace_pt_tests.
77867 Rename to allow_avx512fp16_tests
77868 This changes skip_avx512fp16_tests to invert the sense, and renames it
77869 to allow_avx512fp16_tests.
77871 Rename to allow_avx512bf16_tests
77872 This changes skip_avx512bf16_tests to invert the sense, and renames it
77873 to allow_avx512bf16_tests.
77875 Rename to allow_ada_tests
77876 This changes skip_ada_tests to invert the sense, and renames it to
77879 Rename to allow_aarch64_sve_tests
77880 This changes skip_aarch64_sve_tests to invert the sense, and renames
77881 it to allow_aarch64_sve_tests.
77883 Rename to allow_xml_test
77884 This changes gdb_skip_xml_test to invert the sense, and renames it to
77888 This changes various tests to use "require" for the Python feature.
77894 the use_gdb_stub global. This caused one Python test to work only
77898 This patch updates default_prompt_gdb_start to set this global as
77905 running gdb, and so needed to know what prompt to expect. Now that
77910 This rewrites skip_python_tests to examine the output of
77915 This changes some tests to use "require gnat_runtime_has_debug_info".
77918 This changes some tests to use "require !skip_debuginfod_tests".
77921 This changes some tests to use "require using_fission".
77924 This changes some tests to use "require target_can_use_run_cmd".
77927 This changes some tests to use "require !skip_opencl_tests".
77930 This changes some tests to use "require !skip_perf_tests".
77933 This changes some tests to use "require gdb_trace_common_supports_arch".
77936 This changes some tests to use "require gdb_skip_xml_test".
77939 This changes some tests to use "require !gdb_debug_enabled".
77942 This changes some tests to use "require is_c_compiler_gcc".
77945 This changes some tests to use "require !skip_shlib_tests". This patch
77949 This changes some tests to use "require !skip_gdbserver_tests".
77952 This changes some tests to use "require isnative".
77955 This changes some tests to use "require can_spawn_for_attach".
77958 This changes some tests to use "require !use_gdb_stub".
77961 This changes some tests to use "require support_go_compile".
77964 This changes some tests to use "require supports_get_siginfo_type".
77967 This changes some tests to use "require can_single_step_to_signal_handler".
77970 This changes some tests to use "require is_elf_target".
77973 This changes some tests to use "require is_amd64_regs_target".
77976 This changes some tests to use "require is_aarch32_target".
77979 This changes some tests to use "require is_aarch64_target".
77982 This changes some tests to use "require support_displaced_stepping".
77985 This changes some tests to use "require" with !skip_avx_*.
77988 This changes some tests to use "require !skip_btrace_tests".
77991 This changes some tests to use "require !skip_btrace_pt_tests" and
77995 This changes some tests to use "require !skip_aarch64_sve_tests".
77998 This changes some tests to use "require !skip_ifunc_tests".
78001 This changes some tests to use "require !skip_hw_watchpoint_tests".
78004 This changes some tests to use "require !skip_ctf_tests".
78007 This changes some tests to use "require !skip_d_tests".
78010 This changes some tests to use "require !skip_go_tests".
78013 This changes some tests to use "require !skip_ada_tests".
78016 This changes some tests to use "require !skip_fortran_tests".
78019 This changes some tests to use "require !skip_rust_tests".
78022 This changes some tests to use "require !skip_stl_tests".
78025 This changes some tests to use "require !skip_dlmopen_tests".
78028 This changes some tests to use "require !skip_shlib_tests".
78031 This changes some tests to use "require !skip_cplus_tests".
78034 This changes some tests to use "require is_x86_like_target".
78037 This changes some tests to use "require dwarf2_support".
78040 This changes some tests to use "require supports_process_record".
78043 This changes some tests to use "require supports_reverse".
78048 This changes 'require' to use 'unsupported' rather than 'untested'.
78049 The latter doesn't really seem to be correct according to the DejaGNU
78054 For example, you might use this in a dummy test whose only role is to
78065 Change 'require' to accept a list of predicates
78066 This changes 'require' to accept a list of simple predicates. For
78067 now, each predicate is just the name of a proc, optionally prefixed
78068 with "!" to indicate that the result should be inverted.
78070 It's possible to make this fancier, but so far I haven't done so. One
78071 idea I had is to allow a predicate to have associated text to display
78072 on failure. Another is to convert the predicates that need a running
78073 gdb (e.g., skip_python_tests) to start their own gdb, and then
78080 This series changes 'require' to take a list of simple predicates.
78081 This patch backs out the one use of 'require' that doesn't conform to
78086 gprofng: PR29987 bfd/archive.c:1447: undefined reference to `filename_ncmp'
78103 The length argument to strncat should specify the remaining bytes
78104 bytes in the destination; although in this case, it appears to be
78105 unncessary altogether to use strncat in the first place.
78113 gdbserver: add comments to read_inferior_memory function
78114 Just adding some comments to the gdbserver read_inferior_memory
78115 function. No actual code changes.
78118 It would have helped me to see an infrun debug line being printed from
78123 gdb: int to bool conversion for normal_stop
78124 Change the return type of normal_stop (infrun.c) from int to bool.
78127 I've also converted the (void) to () in the function declaration and
78144 mode -- caused gdb to crash.
78150 because the Ada code doesn't support the "/o" feature (yet); and in
78157 ELF_MAXPAGESIZE matters much more, with regards to layout of
78162 bfd_arch_arm, it's set to 64 KiB, making all Linux(/GNU)
78163 targets pay an extra amount of up to 60 KiB of bloat in
78168 a good example of an target where ELF_MAXPAGESIZE is set to
78171 and can't be configured to any other value. The use-case is
78174 configured to something other than the *default* 4 KiB. Not
78181 one default max-page-size" and set ELF_MAXPAGESIZE to 4096.
78184 * elf32-arm.c (ELF_MAXPAGESIZE): Always set to 0x1000.
78189 Many tests reflect a setting of ELF_MAXPAGESIZE to 64 KiB.
78190 With ELF_MAXPAGESIZE changed to 4 KiB, layout is sometimes
78203 Pass -z max-page-size=0x10000 explicitly to test that rely on
78209 This check has a pair of faults which, combined, can lead to memory
78213 faulty (but happens, by chance, to give the right output on most
78214 architectures, since usually we happen to get a 0 here, so the test that
78216 the test fails is added to the wrong dict -- it's added to the input
78218 useless. But the dict it adds to is still the wrong type, so we end up
78223 consisting of multiple members, so we have to consider whether to check
78228 archive must have the same value of the flag, so we only need to check
78241 The libctf testsuite uses Tcl try/catch to trap run_output errors. This
78246 But this turns out not to work: Automake produces a check-DEJAGNU target
78252 variables users would expect to work.
78254 So move to disabling the testsuite from inside the testsuite itself,
78259 Rename to...
78271 When defining a format it helps to a) get the endianness right when you
78278 Thanks to Jose "Eye of the Eagle" Marchesi for spotting these.
78291 * Makefile.am (CLEANFILES): Import patch from upstream to prevent
78339 This breaks the install-html target, which expects the HTML doc to be in
78361 Fix this by adding -o switches to the HTML targets, to force the output
78373 gdbarch.py reverts those changes and causes the build to fail.
78375 So change gdbarch.py to generate the current version of gdbarch.c.
78383 libstdc++ to support Windows natively. However, this supporrt
78389 in test program, and so <thread> seems to be fine.
78391 This patch is an attempt to fix the problem, by using the same setting
78394 I don't have access to one of the older systems so I don't think I can
78395 truly test this. I did do a mingw cross build, though. I'm going to
78396 ask the bug reporter to test it.
78414 Do xfail other PE OS triplets by moving code setting xfails.
78436 due to package gtk3-nocsd, a package recommended by unity-session.
78449 So, while test-case gdb.threads/dlopen-libpthread.exp appears to run ok:
78456 (gdb) PASS: gdb.threads/dlopen-libpthread.exp: continue to breakpoint: notify
78473 due to having glibc 2.35, which has libpthread integrated into libc.
78479 - using ![has_dependency $shlib libpthread.so] to detect that
78492 one, the parsing of a two-operand insn would first try to parse an 'a'-
78522 The patch to change say_where into a method introduced a bug. This
78528 Restores tc_pe_dwarf2_emit_offset in tc-aarch64.c, which is needed to
78559 This should be essentially complete: I've used this to create a "hello
78571 gdb/dwarf2: Fix 'rw_pieced_value' for values casted to different type.
78578 * In most cases, the 'enclosing_type' field is identical to the
78584 belongs to some class derived from `type', perhaps with other
78591 to read the entire object.
78592 * If the user casts a variable to a different type
78619 Convert say_where to method on code_breakpoint
78620 'say_where' is only useful (and only called for) code breakpoints, so
78621 convert it to be a protected method on code_breakpoint.
78626 Examples are supposed to use @value{GDBP} instead of the literal "(gdb)"
78635 Change some spots to use "@value{GDBN}" instead of just "GDB".
78648 IBM zSystems: Fix offset relative to static TLS
78666 PR 29981 references to init.texi
78670 Re: Move bfd_init to bfd.c
78673 which went unnoticed due to not building in a clean directory.
78679 Adjust other inodes to suit.
78680 * doc/bfd.texi: Don't include init.texi. Adjust nodes to suit.
78686 the recursive make calls to them. This speeds things up nicely.
78688 sim: common: move test-hw-events to top-level build
78690 but it can still be occasionally useful. Move it to the top-level
78693 sim: move arch-specific file compilation of common/ files to top-level
78695 sim: v850: move arch-specific file compilation to top-level
78697 up once we move all subdir compiles to the top-level.
78699 sim: sh: move arch-specific file compilation to top-level
78701 sim: rx: move arch-specific file compilation to top-level
78705 sim: rl78: move arch-specific file compilation to top-level
78707 sim: riscv: move arch-specific file compilation to top-level
78709 up once we move all subdir compiles to the top-level.
78711 sim: pru: move arch-specific file compilation to top-level
78713 sim: or1k: move arch-specific file compilation to top-level
78715 up once we move all subdir compiles to the top-level.
78717 sim: msp430: move arch-specific file compilation to top-level
78719 sim: moxie: move arch-specific file compilation to top-level
78723 sim: mn10300: move arch-specific file compilation to top-level
78725 up once we move all subdir compiles to the top-level.
78727 sim: mips: move arch-specific file compilation to top-level
78729 up once we move all subdir compiles to the top-level.
78731 sim: microblaze: move arch-specific file compilation to top-level
78733 sim: mcore: move arch-specific file compilation to top-level
78735 sim: m68hc11: move arch-specific file compilation to top-level
78737 up once we move all subdir compiles to the top-level.
78739 sim: m32r: move arch-specific file compilation to top-level
78741 sim: m32c: move arch-specific file compilation to top-level
78745 sim: lm32: move arch-specific file compilation to top-level
78747 sim: iq2000: move arch-specific file compilation to top-level
78749 sim: h8300: move arch-specific file compilation to top-level
78751 sim: ft32: move arch-specific file compilation to top-level
78753 sim: frv: move arch-specific file compilation to top-level
78757 sim: example-synacor: move arch-specific file compilation to top-level
78759 sim: erc32: move arch-specific file compilation to top-level
78763 sim: d10v: move arch-specific file compilation to top-level
78765 sim: cris: move arch-specific file compilation to top-level
78767 sim: cr16: move arch-specific file compilation to top-level
78769 sim: bfin: move arch-specific file compilation to top-level
78773 sim: bpf: move arch-specific file compilation to top-level
78777 sim: avr: move arch-specific file compilation to top-level
78779 sim: arm: move arch-specific file compilation to top-level
78783 sim: aarch64: move arch-specific file compilation to top-level
78786 The code so far has been assuming that we only compile common/ objects.
78787 Now that we're ready to compile arch-specific objects, refactor some of
78788 the flags & checks a bit to support both.
78790 sim: modules.c: move generation to top-level
78792 access to their inputs, and can move the actual generation from the
78793 subdir up to the top-level. This avoids recursive makes and will
78798 common rule as it's unused, and we don't want to use it anymore.
78801 Now that all ports have moved to creating libsim.a in the top-level,
78802 drop all the support code to create it in a subdir.
78806 sim: v850: move libsim.a creation to top-level
78809 can move compilation itself up, and makes it easier to review.
78812 a single one. On my 4 core system, it adds ~100msec to the build per
78818 sim: sh: move libsim.a creation to top-level
78821 can move compilation itself up, and makes it easier to review.
78824 a single one. On my 4 core system, it adds ~100msec to the build per
78830 sim: rx: move libsim.a creation to top-level
78833 can move compilation itself up, and makes it easier to review.
78836 a single one. On my 4 core system, it adds ~100msec to the build per
78842 sim: rl78: move libsim.a creation to top-level
78845 can move compilation itself up, and makes it easier to review.
78848 a single one. On my 4 core system, it adds ~100msec to the build per
78854 sim: riscv: move libsim.a creation to top-level
78857 can move compilation itself up, and makes it easier to review.
78860 a single one. On my 4 core system, it adds ~100msec to the build per
78866 sim: pru: move libsim.a creation to top-level
78869 can move compilation itself up, and makes it easier to review.
78872 a single one. On my 4 core system, it adds ~100msec to the build per
78878 sim: or1k: move libsim.a creation to top-level
78881 can move compilation itself up, and makes it easier to review.
78884 a single one. On my 4 core system, it adds ~100msec to the build per
78890 sim: msp430: move libsim.a creation to top-level
78893 can move compilation itself up, and makes it easier to review.
78896 a single one. On my 4 core system, it adds ~100msec to the build per
78902 sim: moxie: move libsim.a creation to top-level
78905 can move compilation itself up, and makes it easier to review.
78908 a single one. On my 4 core system, it adds ~100msec to the build per
78914 sim: mn10300: move libsim.a creation to top-level
78917 can move compilation itself up, and makes it easier to review.
78920 a single one. On my 4 core system, it adds ~100msec to the build per
78926 sim: mips: move libsim.a creation to top-level
78929 can move compilation itself up, and makes it easier to review.
78932 a single one. On my 4 core system, it adds ~100msec to the build per
78936 The mips code is a little more tricky than others because, for multi-run
78942 sim: microblaze: move libsim.a creation to top-level
78945 can move compilation itself up, and makes it easier to review.
78948 a single one. On my 4 core system, it adds ~100msec to the build per
78954 sim: mcore: move libsim.a creation to top-level
78957 can move compilation itself up, and makes it easier to review.
78960 a single one. On my 4 core system, it adds ~100msec to the build per
78966 sim: m68hc11: move libsim.a creation to top-level
78969 can move compilation itself up, and makes it easier to review.
78972 a single one. On my 4 core system, it adds ~100msec to the build per
78978 sim: m32r: move libsim.a creation to top-level
78981 can move compilation itself up, and makes it easier to review.
78984 a single one. On my 4 core system, it adds ~100msec to the build per
78990 sim: m32c: move libsim.a creation to top-level
78993 can move compilation itself up, and makes it easier to review.
78996 a single one. On my 4 core system, it adds ~100msec to the build per
79002 sim: lm32: move libsim.a creation to top-level
79005 can move compilation itself up, and makes it easier to review.
79008 a single one. On my 4 core system, it adds ~100msec to the build per
79014 sim: iq2000: move libsim.a creation to top-level
79017 can move compilation itself up, and makes it easier to review.
79020 a single one. On my 4 core system, it adds ~100msec to the build per
79026 sim: h8300: move libsim.a creation to top-level
79029 can move compilation itself up, and makes it easier to review.
79032 a single one. On my 4 core system, it adds ~100msec to the build per
79038 sim: ft32: move libsim.a creation to top-level
79041 can move compilation itself up, and makes it easier to review.
79044 a single one. On my 4 core system, it adds ~100msec to the build per
79050 sim: frv: move libsim.a creation to top-level
79053 can move compilation itself up, and makes it easier to review.
79056 a single one. On my 4 core system, it adds ~100msec to the build per
79062 sim: example-synacor: move libsim.a creation to top-level
79065 can move compilation itself up, and makes it easier to review.
79068 a single one. On my 4 core system, it adds ~100msec to the build per
79074 sim: erc32: move libsim.a creation to top-level
79077 can move compilation itself up, and makes it easier to review.
79080 a single one. On my 4 core system, it adds ~100msec to the build per
79086 sim: d10v: move libsim.a creation to top-level
79089 can move compilation itself up, and makes it easier to review.
79092 a single one. On my 4 core system, it adds ~100msec to the build per
79098 sim: cris: move libsim.a creation to top-level
79101 can move compilation itself up, and makes it easier to review.
79104 a single one. On my 4 core system, it adds ~100msec to the build per
79110 sim: cr16: move libsim.a creation to top-level
79113 can move compilation itself up, and makes it easier to review.
79116 a single one. On my 4 core system, it adds ~100msec to the build per
79122 sim: bpf: move libsim.a creation to top-level
79125 can move compilation itself up, and makes it easier to review.
79128 a single one. On my 4 core system, it adds ~100msec to the build per
79134 sim: bfin: move libsim.a creation to top-level
79137 can move compilation itself up, and makes it easier to review.
79140 a single one. On my 4 core system, it adds ~100msec to the build per
79146 sim: avr: move libsim.a creation to top-level
79149 can move compilation itself up, and makes it easier to review.
79152 a single one. On my 4 core system, it adds ~100msec to the build per
79158 sim: arm: move libsim.a creation to top-level
79161 can move compilation itself up, and makes it easier to review.
79164 a single one. On my 4 core system, it adds ~100msec to the build per
79170 sim: aarch64: move libsim.a creation to top-level
79173 can move compilation itself up, and makes it easier to review.
79176 a single one. On my 4 core system, it adds ~100msec to the build per
79183 Nothing uses this hook anymore, so punt it. It was largely used to
79191 actually generate the file from the top-level, but allows us to add
79192 rules that need to be ordered wrt it. Once those changes land, we can
79193 rework this to actually generate from the top-level.
79197 up, we can switch this to the source files directly. It's a bit hacky
79198 overall, but makes it easier to migrate things in smaller chunks, and
79199 we aren't going to keep this logic long term.
79205 explicit_location_spec is used to lookup the symtabs associated with
79207 known symtab filename in order to retrieve the breakpoint's symtabs.
79213 fullname to the filename, this will cause a NOT_FOUND_ERROR to be thrown
79216 Fix this by using a symtab's filename to set the explicit_location_spec
79223 a value, initialize it to be false in order to prevent the following
79241 to free that memory.
79249 Also fix a memory leak, and make some style changes. I tend to read
79253 looks a lot better to me, or even (sizeof (*x)) which I've used here.
79265 Move mips_refhi_list to bfd tdata
79266 Similar to commit c799eddb3512, but for mips-ecoff. mips-ecoff is
79280 Move bfd_init to bfd.c
79281 init.c contains just one function that doesn't do much. Move it to
79282 bfd.c and give it something to do, initialising static state. So far
79285 The idea behind reinitialising state is to see whether some set of
79291 * init.c: Delete file. Move bfd_init to..
79298 * po/SRC-POTFILES.in: Regenerate.
79304 crash when 'b' does not have pointer type. This seems to be a simple
79312 gdb/doc: fix @code{GDBN} -> @value{GDBN}
79326 In order to get the ifunc relocs properly sorted the correct class
79327 needs to be returned. The code mimics what has been done for AArch64.
79351 testsuite: add -O0 to Intel compilers if no 'optimize' option is given
79355 option will turn off most compiler optimizations similar to use of
79356 '-O0'; use '-Rno-debug-disables-optimization' to disable this
79363 …l turn off most compiler optimizations similar to use of '-O0'; use '-Rno-debug-disables-optimizat…
79370 the code by default. This breaks assumptions in many GDB tests
79371 that the code is unoptimized by default. E.g.:
79414 compiler moving forward. Please transition to use this compiler. Use
79415 '-diag-disable=10441' to disable this message.
79428 output of the remark when trying to figure out the compiler version
79429 and by b) adding '-diag-disable=10441' to the compile command whenever
79430 gdb_compile is called without the intention to detect the compiler.
79456 constants. These constants are used (by gas and libsframe) to pick an
79458 were buggy, causing the generated SFrame sections to be bloated as
79470 to keep it warning-free but meaningful.
79482 When sframe_encoder_write needs to flip the buffer containing the SFrame
79498 Add other checks to ensure reads are within the buffer size.
79503 Older bash looks to improperly deal with backslashes in here-documents,
79505 expansion. Convert to a model without using such a construct, by simply
79524 preventing this is that objcopy writes to one of the fields,
79527 long section names the intent is to do so for a particular bfd, not
79528 for all bfds that might happen to be using the target xvec.
79531 * coffcode.h: Update coff long section name comment.
79533 to set flag.
79556 to print x and get a compiler-dependent answer. Using gcc 12.2.1, GDB
79558 behavior confusing to users, it is also not consistent with compiler
79563 with the correct name, GDB continues searching through all include
79565 mangled name and the found symbols.
79572 The commit also changes gdb.cp/nsusing.exp to test the ambiguous
79579 a warning to the user, but does not add a reason in the stopped record,
79586 This commit adds the reason no-history to the record, making it easier
79587 for interfaces using the mi interpreter to report the result. It also
79588 changes the test gdb.mi/mi-reverse.exp to test that the reason shows up
79596 When using clang 16.0.0 to test gdb.linespec/cpcompletion.exp, I get 99
79597 unexpected failures. They all fail to produce a complete list of
79602 Fix this by adding __attribute__((used)) to all declarations to the
79609 about GMP and MPFR for gdb builds have been moved to the toplevel
79640 move constructor being required for this to compile:
79668 Fix this by adding an m_disabled field to scoped_debug_start_end, and
79676 Add the string_view_hash type, which will be useful to be able to use
79679 Use it in gdb/symtab.c, to exercise it.
79686 gdbsupport: move fast_hash to gdbsupport/common-utils.h
79688 which will use the fast_hash function. Move the latter to gdbsupport.
79695 gdbsupport: move libxxhash configure check to gdbsupport
79697 to gdbsupport. Move the libxxhash configure check to gdbsupport (and
79698 transitively to gdbserver).
79709 gdbarch_tdep objects. There is an exception to that however: when
79710 initialization fails, we do free the gdbarch object that is not going to
79717 Change all gdbarch initialization functions to pass a new gdbarch_tdep
79718 object to gdbarch_alloc and then retrieve a non-owning reference from
79722 of xtensa_gdbarch_tdep. Since we need to pass a dynamically allocated
79723 gdbarch_tdep_base instance to gdbarch_alloc, remove this global
79726 rename it to the less collision-prone `xtensa_rmap` name.
79744 prompt) that is necessary after replying "n" to the pending breakpoint
79784 Fix this by falling back to queue.Queue for python <= 3.6.
79793 Add type to expression dump of symbol
79794 I recently had cause to dump some expressions from gdb. I got output
79807 This is ok, but it would have been handy to see the type of the
79816 Add an extra emulation called arm64pe to the aarch64pe emulation.
79838 sim: mips: add multi source to built sources
79849 definition existence") to sim/m4/sim_ac_platform.m4 (inside the
79856 sim: bpf: fix testsuite due to linker warnings [PR sim/29954]
79860 Adjusting `--memory-size=10Mb' to the simulator bpf testsuite passes.
79907 Convert exp_uses_objfile to a method of expression
79908 This changes the exp_uses_objfile function to be a method of
79922 10`, to account for the fact that reading the debug info of the gdb
79946 This occurs when attempting to read back a section from the output
79959 time to write terabytes of sparse file, a waste of time when it will
79990 gdb: use libbacktrace to create a better backtrace for fatal signals
79992 The code is trying to select between using libbacktrace or using the
79995 First we check to see if we can use libbacktrace. If we can then we
79996 include some header files, and then set some defines to indicate that
80018 backtrace API to be used instead, both still appear to work fine.
80026 was recorded by GDB to undo and redo a certain instruction. This commit
80029 If there isn't enough history to print the desired instruction (such as
80052 * testsuite/ld-aarch64/bti-plt-5.d: Relax regxps slightly to allow
80060 relevant to x86_64 too.
80076 might generate requires __imp__func (the .idata$4 entry) to be aligned
80077 to 8 bytes. Without this you get IMAGE_REL_ARM64_PAGEOFFSET_12L overflow
80101 insn_type, target and imm_pcrel to track control flow across
80114 inferior calls as well. This also extends the "runto" proc to handle
80120 handle variably-sized types correctly. The simplest way to fix this
80121 is to use value_at_non_lval, which does type resolution.
80125 to work correctly with variably-sized return types.
80127 Convert selected architectures to gdbarch_return_value_as_value
80128 This converts a few selected architectures to use
80130 architectures are just the ones that I am able to test. This patch
80147 record the value as being equivalent to that memory.
80149 In Ada, the inferior call code will call ada_convert_actual -- and
80152 be on the stack and thus overwritten by the call to "f".
80163 because a call to the old-style method will not work with any
80183 After an attempt at this, I realized I wouldn't be able to correctly
80185 instead, this patch adds a new method that falls back to the current
80186 method, and it updates gdb to only call the new method. This way it's
80187 possible to incrementally convert the architectures that I am able to
80198 the crash, so it seems worthwhile to land independently.)
80211 This is a regression due to kernel commit e84ba47e313d ("x86/fpu: Hook up PKRU
80213 ("x86/fpu: Allow PKRU to be (once again) written by ptrace.").
80216 the regression) up to but excluding v6.2-rc1 (the first tag containing the fix).
80235 * bfdio.c (_bfd_real_fopen): Do not add a prefix to the Windows'
80253 [gdb] Fix segfault during inferior call to ifunc
80276 The strlen is an ifunc, and consequently during the call to
80278 to call_function_by_hand_dummy is used to resolve the ifunc.
80286 should address this problem, but this patch is a simpler fix which is easy to
80297 sim: sh: move some generated source files to built sources
80299 ("sim: build: move generated headers to built sources"), but they were
80304 to track whether to enable the sim. While the current code works
80309 All of these objects should be in libsim.a already, so don't link to
80314 sim: build: move generated headers to built sources
80319 out to the top-level, we don't have any recursive steps anymore. The
80320 Automake approach is to declare those headers in BUILT_SOURCES.
80330 Now that everything has been hoisted to the top-level, we can delete
80333 sim: or1k: hoist cgen rules to top-level
80335 sim: m32r: hoist cgen rules to top-level
80337 sim: lm32: hoist cgen rules to top-level
80339 sim: iq2000: hoist cgen rules to top-level
80341 sim: frv: hoist cgen rules to top-level
80343 sim: cris: hoist cgen rules to top-level
80345 sim: bpf: hoist cgen rules to top-level
80347 sim: cgen: hoist rules to the top-level build
80348 The rules seem to generate the same output as existing subdir cgen
80372 to communicate with debuggers. You can find more information here:
80376 Frequently this is implemented as a shim, but it seemed to me that GDB
80389 The DAP code will accept JSON-RPC messages on stdin and print
80390 responses to stdout. GDB redirects the inferior's stdout to a new
80393 The Python code uses multiple threads to do its work. Separate
80395 to the client. All GDB work is done in the main thread. (The first
80397 rewrote it to use threads instead.)
80400 implement enough to demonstrate that the overall approach works.
80404 felt it was acceptable to simply import it into the tree.
80407 interpreter name.
80413 commit added '|' detection and removal to ser-pipe.c, but missed to add it
80414 to ser-mingw.c.
80419 This commit add the missing '|' detection and removal to ser-mingw.c.
80429 The second line has the "target:" prefix, but from the code it's clear
80430 that this string is being passed verbatim to gdbserver -- which seems
80436 without checking to see if it starts with the "target:" prefix. This
80437 patch changes this code to be a little more careful.
80451 due to libstdc++ debug info:
80497 xfails and other pieces of support specific to those targets. And
80524 These rules are the same as the common ones, so drop them to simplify.
80527 These defines seem to have been added in anticipation of adding another
80529 yet to materialize. So drop these compile flags since they don't do
80530 anything to the generated code. If another port ever shows up, it's
80531 easy enough to readd things as needed.
80535 manual copyright year range of various GDB files to add 2023
80544 to update are actually nested inside those files, rather
80552 source files managed by the GDB project to be updated to include
80558 ... to sim/ppc/powerpc.igen
80561 which is not assigned to the FSF. Since the file got renamed,
80562 the corresponding entry in NOT_FSF_LIST needs to be renamed as well.
80568 and gdbreplay's help message from 2022 to 2023, as per our Start
80575 This adds 'Innovative Computing Labs' as an external author to
80576 update-copyright.py, to cover the copyright notice in
80578 author 'Oracle and' to update gprofng copyright dates. I'm not going
80579 to commit 'Oracle and' as an accepted author, but that covers the
80593 derive from BaseException, port to python3, retain original file mode,
80594 fix name of script in examples.
80596 Adds libsframe to list of default dirs. I would have added gprofng
80628 get_probes, such that we can easily pretend to use a libc without the
80632 ignore-probes filter has been set to:
80661 ld/testsuite: Don't add index to sizes in pdb.exp
80668 A few fixes to minor issues I've discovered in my PDB patches.
80674 * I've managed to coax MSVC to produce another type, LF_VFTABLE, which
80679 * Fixes a stupid bug in the test program, where I was adding an index to
80680 a size. The index was hard-coded to 0, so this didn't cause any actual
80715 Due to the exception, the function call did not properly terminate, and the
80725 (wherever that happens to be) could be improved upon, and the earlier
80731 [Inferior 1 (process 20046) exited with code 0236]^M
80735 The decision on whether to call the out_of_scope call back is taken in
80750 in which the finish breakpoint is supposed to trigger), so AFAIU
80768 Still, the test-case is failing because it's setup to match the behaviour that
80779 So what happens here? Again, due to the exception, the function call did not
80781 unexpected. This happens because it just so happens to be that the frame
80784 PR29909, so KFAIL it, and modify the test-case to expect the out_of_scope
80788 the exception, to check that we don't call the out_of_scope callback too early.
80873 address due to inlining.
80895 The problem is that the name rtld_map_complete is used, which was only
80896 available in Fedora 17, and upstream the name map_complete was used.
80900 suggested to make the test-case handle both names.
80916 due to using a glibc (v2.35) that has libpthread integrated into libc.
80951 This is due to -fcf-protection, which adds the endbr64 at the start of get_alias_set:
80966 and when stepping into get_alias_set we step to line 50:
80987 so when stepping into get_alias_set we step to line 51:
80995 Fix this by rewriting the gdb_test issuing the step command to check which
81006 Make comp_unit_head.length private, to enforce using accessor functions.
81009 get_length_without_initial, to make it explicit which variant we're using.
81024 to minimally interpret debug info.
81030 against number of entries in the table. Revert to using
81065 -- this is a regression due to commit b8043d27 ("Remove a ui-related
81070 I think this should probably be backported to the gdb 13 branch.
81099 document. This patch changes the code to follow this bugfix.
81107 The gdb.gdb self-tests were timing out for me, which turned out to be
81114 and reduces the running time of gdb.gdb from 20 minutes to about 11
81125 sim: mips: hoist "multi" igen rules up to common builds
81129 sim: mips: hoist "m16" igen rules up to common builds
81131 sim: mips: hoist "single" igen rules up to common builds
81133 sim: mips: rename "igen" generation mode to "single"
81134 The naming in here has grown organically and is confusing to follow.
81135 Originally there was only one set of rules for generating code from
81138 used igen, it's not clear what's common igen and what's specific to
81139 this generation mode. So rename the set of rules from "igen" to
81140 "single" so it's easier to follow.
81142 sim: mips: hoist itable igen rules up to common builds
81143 Since this rule is pretty simple, hoist it up to the common build.
81158 I spent a lot of time staring at this code, building for diff mips
81159 targets, and exploring all the shell code paths. I think this is
81164 sim: mips: rename multi_flags to igen_itable_flags
81165 This variable is only used to generate the itable files. In preparation
81166 for merging the itable logic among all ports, rename "multi_flags" to a
81171 This code appears to be unused since it was first merged. When
81175 should be unreachable, so punt it to simplify. Further, the
81186 Add initializers to comp_unit_head
81189 implements this. I'm unsure if this is sufficient to close the bug,
81204 Also, there is no need to check for table->dirs non-NULL, the
81212 Add support for x86_64-*-gnu-* targets to build x86_64 gnumach/hurd
81221 All ports that need to clean things up at distclean time have moved
81222 to the top-level build, so we can drop support for this hook.
81224 sim: mips: move distclean settings to common build
81233 The offending stub was how we memcpy the FRE start address to the buffer
81235 source buffer for the memcpy needs to point to the uint8_t/uint16_t sized
81236 value of the FRE start addr, not uint32_t sized value; we intend to copy
81247 sim: smp: plumb igen flag down to all users
81249 always empty since it defaulted smp to off), no other igen port did.
81250 Move this to a makefile variable and plumb it through the common
81255 At some point we want this to work, but it's not easy to test if
81259 sim: cpu: change default init to handle all cpus
81262 setup. Change the default from 0 to the compile time value.
81265 There's no need to assert there's only 1 CPU when setting them all
81269 This code loops over available cpus with "c", but then looks up the
81270 cpu with "i". Fix the typo so the code works correctly with smp.
81273 The igen tool sets up the SD & CPU defines for code fragments to use,
81274 but v850 was expecting "sd". Change all the igen related code to use
81275 SD so it actually compiles, and fix a few places to use "CPU" instead
81279 This code loops over available cpus with "c", but then looks up the
81280 cpu with "i". Fix the typo so the code works correctly with smp.
81283 The igen tool sets up the SD define for code fragments to use, but
81284 mn10300 was expecting "sd". Change all the igen related code to use
81288 This code fails to compile when SMP is enabled due to some obvious
81289 errors. Fix those and change the logic to avoid CPP to prevent any
81296 sim: mips: move igen settings to top-level configure
81298 script, so move it to the top-level configure to kill it off.
81299 We still have to move the Makefile.in igen logic to local.mk,
81303 To prepare moving this logic to the top-level configure, the vars
81304 need to be namespaced. Do that here to make it easier to review.
81306 configure script to the Makefile, and sim_xxx -> sim_mips_xxx when
81310 Make sure the igen tool exists before trying to compile the mips
81311 subdir. This happens to work when mips has a subconfigure, but
81316 so drop it entirely to avoid confusion.
81320 to greatly simplify.
81330 or need them to be writable, so mark them all const.
81347 of 'info sources' to figure out if the debug information for a
81353 internal buffer to overflow.
81355 This commit switches from using 'info sources' to 'maint print
81357 also, can be restricted to a single named object file.
81364 sim: or1k: move arch-specific settings to internal header
81365 There's no need for these settings to be in sim-main.h which is shared
81366 with common/ sim code, so move it all out to the existing or1k-sim.h.
81368 as many of the generated CGEN files refer only to sim-main.h. We'll
81369 have to improve the CGEN interface before we can make more progress,
81379 This changes dwarf2_has_info to return bool.
81394 sframe_decode () needs to malloc a temporary buffer of the same size as
81397 this buffer for its usage. This code is necessary when the target
81400 The malloc'd buffer needs to be kept track of, so that it can freed up in
81406 member to keep track of the internally malloc'd buffer.
81408 (sframe_decode): Update the reference to the buffer.
81418 The test fails to find --with-mpfr or --without-mpfr in the "show
81420 remove that check and simplify the test to assume MPFR support is there.
81427 sim: m32r: move arch-specific settings to internal header
81428 There's no need for these settings to be in sim-main.h which is shared
81429 with common/ sim code, so move it all out to the existing m32r-sim.h.
81431 as many of the generated CGEN files refer only to sim-main.h. We'll
81432 have to improve the CGEN interface before we can make more progress,
81435 sim: bfin: move arch-specific settings to internal header
81436 There's no need for these settings to be in sim-main.h which is shared
81437 with common/ sim code, so drop the bfin.h include and move the remaining
81440 sim: m68hc11: move arch-specific settings to internal header
81441 There's no need for these settings to be in sim-main.h which is shared
81442 with common/ sim code, so move it all out to a new header which only
81445 sim: sh: move arch-specific settings to internal header
81446 There's no need for these settings to be in sim-main.h which is shared
81447 with common/ sim code, so move it all out to a new header which only
81450 sim: mcore: move arch-specific settings to internal header
81451 There's no need for these settings to be in sim-main.h which is shared
81452 with common/ sim code, so move it all out to a new header which only
81455 sim: h8300: move arch-specific settings to internal header
81456 There's no need for these settings to be in sim-main.h which is shared
81457 with common/ sim code, so move it all out to a new header which only
81460 sim: pru: move arch-specific settings to internal header
81461 There's no need for these settings to be in sim-main.h which is shared
81462 with common/ sim code, so drop the pru.h include and move the remaining
81468 Rename mn10300_sim.h to mn10300-sim.h to match other ports, and move most
81469 of the arch-specific content out of sim-main.h to it. This isn't a big
81470 win though as we still have to include the header in sim-main.h due to the
81472 we can fix that, we have to keep bleeding these settings into the common
81475 Also take the opportunity to purge a lot of unused headers from these.
81477 no need to force everyone to pull them in. A lot of this is a hold over
81482 sim: microblaze: move arch-specific settings to internal header
81483 There's no need for these settings to be in sim-main.h which is shared
81484 with common/ sim code, so move it all out to a new header which only
81487 sim: example-synacor: move arch-specific settings to internal header
81488 There's no need for these settings to be in sim-main.h which is shared
81489 with common/ sim code, so move it all out to a new header which only
81492 sim: moxie: move arch-specific settings to internal header
81493 There's no need for these settings to be in sim-main.h which is shared
81494 with common/ sim code, so move it all out to a new header which only
81499 sim: riscv: move arch-specific settings to internal header
81500 There's no need for these settings to be in sim-main.h which is shared
81501 with common/ sim code, so move it all out to a new header which only
81505 generalized from compile-time to runtime last year.
81510 Rename v850_sim.h to v850-sim.h to match other ports, and move most
81511 of the arch-specific content out of sim-main.h to it. This isn't a
81512 big win though as we still have to include the header in sim-main.h
81513 due to the igen interface: it hardcodes including sim-main.h in its
81514 files. So until we can fix that, we have to keep bleeding these
81519 sim: msp430: move arch-specific settings to internal header
81520 There's no need for these settings to be in sim-main.h which is shared
81521 with common/ sim code, so drop the msp430-sim.h include and move it to
81527 And move sim-options.h to the one file that needs it.
81531 sim: ft32: move arch-specific settings to internal header
81532 There's no need for these settings to be in sim-main.h which is shared
81533 with common/ sim code, so drop the ft32-sim.h include and move it to
81538 sim: d10v: move arch-specific settings to internal header
81539 There's no need for these settings to be in sim-main.h which is shared
81540 with common/ sim code, so drop the d10v_sim.h include and move it to
81543 Also rename the file to standardize it a bit better with other ports.
81547 sim: cr16: move arch-specific settings to internal header
81548 There's no need for these settings to be in sim-main.h which is shared
81549 with common/ sim code, so drop the cr16_sim.h include and move it to
81552 Also rename the file to standardize it a bit better with other ports.
81556 sim: arm: move arch-specific settings to internal header
81557 There's no need for these settings to be in sim-main.h which is shared
81558 with common/ sim code, so move it all out to a new header which only
81562 move it to armdefs.h instead.
81566 sim: aarch64: move arch-specific settings to internal header
81567 There's no need for these settings to be in sim-main.h which is shared
81568 with common/ sim code, so move it all out to a new header which only
81578 sim: avr: move arch-specific settings to internal header
81579 There's no need for these settings to be in sim-main.h which is shared
81580 with common/ sim code, so move it all out to a new header which only
81593 This allows to build GDB even though the default value of
81594 _WIN32_WINNT is lower than the one needed to expose some
81596 support to run time.
81642 no need for the ppc header to set them up.
81644 sim: cgen: move symcat.h include to where it's used
81645 Move this out of the global sim-main.h and to the few files that
81649 sim: cgen: move cgen-types.h include to cgen-defs.h
81651 so move the include out of sim-main.h and to that header. It might
81653 sim-main.h to make some progress. Things still build with just this.
81663 Add a comment to make it clear where/how this file is used.
81670 sim: endian: move bfd.h from header to source
81679 actually use bfd defines in the sim-main.h header. Prune it to make
81682 We add the include to the files that utilize e.g. bfd_vma though.
81694 speaking, this produces the same code, but it should hopefully make
81695 it easier to merge common code in the future.
81703 this redundant logic to make it easier to see the real differences
81704 so we can try to keep unifying cases.
81707 Change the default (unhandled) mips64* targets to use the existing
81709 have to list the mips8000 bfd for it.
81714 more logic from build-time to runtime so we can have a single
81724 * Refer to the commit afc41ffb,
81727 In the past we only allow to reorder the prefixed extensions. But according
81728 to the PR 14 in the riscv-toolchain-convention, we can also relax the order
81729 checking to allow the whole extensions be written out of orders, including
81731 Just that we still need to follow the following rules as usual,
81733 1. prefixed extensions need to be seperated with `_'.
81742 to RV_ISA_CLASS_SINGLE, since everything that does not belong to the
81750 (riscv_parse_subset): Only need to call riscv_parse_extensions to parse
81773 sim: mips: switch from SIM_ADDR to address_word
81776 Also take the opportunity to simplify printf logic by leveraging
81781 sim: v850: switch from SIM_ADDR to address_word
81786 sim: switch sim_{read,write} APIs to 64-bit all the time [PR sim/7504]
81789 64-bit addresses all the time since we want the APIs to be stable
81792 The length is also 64-bit because it's completely feasible to have
81794 the caller to manually chunk those accesses up into 4 GiB at a time
81795 doesn't seem useful to anyone.
81810 COFF build-id writes uninitialised data to file
81815 2) The size for the pdb name was incorrectly calculated.
81819 (setup_build_id): Add size for the base name of pdb_name, not
81829 more logic from build-time to runtime so we can have a single
81881 to the function pointer declaration.
81887 ARM 8.3 provides five separate keys that can be used to authenticate
81895 Analogous to the above, in SFrame format V1, a bit is reserved in the SFrame
81896 FDE to indicate which key is used for signing the frame's return addresses:
81908 (SFRAME_V1_FUNC_INFO): Adjust to accommodate pauth_key.
81915 It is kind of odd to have the expansions of such constructs ahead of
81917 by pulling ahead the output of the definition lines, taking care to
81921 Note that with the code movement the conditional operator isn't
81934 SEV-ES is an extension to SVME. SNP in turn is an extension to SEV-ES,
81943 Both EPT and VMFUNC are extensions to VMX.
81951 takes XSAVEC as a prereq (an SDM clarification to this effect is in the
81965 Switch back to the default ISA before disabling a particular subset.
81971 on up to 256-bit packed integer vectors.
81976 while correcting KL also record it as a prereq to WIDEKL.
81982 CPU_*_MASK for the 3rd argument of SUBARCH() - they need to use
81983 CPU_ANY_*_MASK in order to avoid disabling too many (when there are
81991 would be a little more clumsy to suppress generating of the #define).
81998 manually to just the direct forward dependencies. Transitive forward
82001 few special cases to still take care of manually). In the course of this
82002 several CPU_ANY_*_FLAGS disappear, requiring adjustment to the
82005 Note that to retain the correct reverse dependency of AVX512F wrt
82009 Note further that to avoid adding the following undue prereqs:
82013 introduced in addition to the ones representing from converting the old
82027 We don't need to enforce larger target settings when the only thing
82029 target matches to only check the CPU.
82031 sim: mips: move fpu bitsize defines to top-level configure
82034 we'll want this to be a runtime option anyways.
82036 sim: mips: move bitsize defines to top-level configure
82040 sim: mips: move subtarget defines to top-level configure
82041 We want to kill off mips/configure entirely. Move this small part
82042 out now to get started.
82047 to the real runtime value, so use it directly. This simplifies the
82048 code quite a bit, and will make it easier to support multiple mach's
82051 sim: hw-config.h: move generation to top-level
82052 In order to compile arch objects from the top-level, we need to
82053 generate the hw-config.h header, so move that logic up to the top
82057 We need these in the top-level to generate libsim.a, but also in the
82058 subdirs to generate hw-config.h. Move it to the local.mk, and pass
82060 makes it available to both. We can simplify this once we move the
82061 various steps up to the top-level too.
82064 In order to create libsim.a in the common dir, we need the list of
82078 DW_AT_decl_file. This leads to a memory leak as the file name is
82081 I've also changed find_abstract_instance to not use a temp for "name",
82086 * dwarf2.c (find_abstract_instance): Delete "name" variable.
82087 Free *filename_ptr before assigning new file name.
82145 * target-float.c: Make the code conditional on
82147 * top.c: Remove code checking HAVE_LIBMPFR.
82159 When asking GDB to print a variable from an imported namespace, we only
82160 want to see variables imported in lines that the inferior has already
82162 with the proposed change to gdb.cp/nsusing.exp, we get the following
82165 (gdb) PASS: gdb.cp/nsusing.exp: continue to breakpoint: marker10 stop
82182 To fix this, add a new member to struct using_direct, that stores the
82186 Unfortunately, due to a GCC bug, the failure still shows up. Compilers
82189 code.
82201 Fix an attempt to allocate an unreasonably large amount of memory when parsing a corrupt ELF file.
82214 x86: rename CheckRegSize to CheckOperandSize
82219 gprofng/testsuite: restrict testing to native configurations
82223 of binutils, gas, and ld testsuites together), restrict the testing to
82230 belong there since the code is dealing with symbols. Multiple symbols
82232 about the section. Move the warning to a new function in ldlang.c.
82236 section and file name quoting, but they ought to be consistent within
82238 is emitted for multiple targets they all ought to use exactly the same
82239 format string to reduce translation work. elf64-ppc.c loses the
82257 (ppc_build_one_stub): Delete dead code.
82282 Now that all ports have migrated to the new framework, drop support
82291 The cpu.h change is in generated cgen code, but that has been sent
82295 The cpu*.h changes are in generated cgen code, but that has been sent
82299 The cpu.h change is in generated cgen code, but that has been sent
82303 The cpu.h change is in generated cgen code, but that has been sent
82307 The cpu.h change is in generated cgen code, but that has been sent
82311 The cpu*.h changes are in generated cgen code, but that has been sent
82315 The cpu.h change is in generated cgen code, but that has been sent
82319 Some common cgen code changes to allow cgen ports to invert their
82355 Currently all ports have to declare sim_cpu themselves in their
82357 dynamic makes it impossible to share common object code among
82360 Let's invert this relationship: common code declares sim_cpu, and
82363 This is the first in a series of changes: it adds a define to select
82365 need custom state over to the new layout. This includes mn10300 that,
82371 These headers define the register numbers for each port to implement
82382 sim: ppc: move spreg.[ch] files to the source tree
82384 build-time (via dgen.c that we have to compile & execute on the
82385 build system) to maintainer/release mode (via spreg-gen.py that
82387 speeds up the build process and makes it easier for us to reason
82388 about & review changes to the code generator.
82390 The tool is renamed from "dgen" because it's hardcoded to only
82441 * bfdio.c (___lc_codepage_func): Move declaration to..
82445 Regen opcodes/po/POTFILES.in
82449 sim: ppc: change spreg switch table generation to compile-time
82451 leave the choice of whether to use them to the compiler via a -D
82458 which calls out to the sim API. But it doesn't have a corresponding
82459 detach method which means we just crash if anything tries to detach
82461 that actually tries to detach itself on the fly, so no one noticed
82464 With this in place, we can delete the existing detach code from the
82465 m68hc11 model since it defaults to "passthru" callback which will in
82467 the sim core API to detach from the address space.
82500 This is easily fixed by prepending "_" to the parameter's name.
82510 This changes bpstat to use 'bool' rather than 'char', and updates the
82514 This changes the uses of value_print_options to use 'true' and 'false'
82527 PR mi/23170 for this. I think it's finally time to remove this.
82528 Any users of MI 1 can and should upgrade to a newer version.
82544 Delete dead code.
82550 executing commands") used lookup_cmd_exact () to lookup
82551 command again after its execution to avoid possible
82569 enough to contain a header size field.
82581 tests from "unresolved" to "unsupported", making the overall testsuite
82585 Casting pointers to unsigned int is generally problematic and hence
82586 compilers tend to warn about such. While here they're used only in
82587 fprintf(), it still seems better to omit such casts, even if only to
82591 A backslash used to indicate line continuation (in a macro definition
82592 here) is not supposed to be followed by blanks or other white space; the
82593 end-of-line indicator is to follow immediately.
82597 handlers, and hence for profile output to match anything in program
82598 output, the respective name fields need to hold the handler function
82599 names. This converts both respective tests from "unresolved" to actually
82603 In order for so_syn.so and so_syx.so to be able to access the main
82614 Cpu prefix isn't needed ther for disambiguation / name space separation.
82633 This allows the bootstrap test to run if you have a symlink somewhere
82649 Bump version to 14.0.50.DATE-git.
82651 this commit bumps the version number in gdb/version.in to
82660 * gdb.base/default.exp: Change $_gdb_major to 14.
82671 to bfd_get_relocated_section_contents. The idea is to make use of the
82677 to the section size. In that case we want to use the larger of
82704 asan: elf.c:12621:18: applying zero offset to null pointer
82714 Commit 5aa0f10c424e added a per_xvec_warn array to provide support for
82716 pe_bfd_object_p) to be cached and then only printed if the target
82722 So this patch extends the error handler functions to support printing
82723 to a string buffer, extends per_xvec_warn to support multiple errors/
82727 to no match or to multiple matches and only one target vector produced
82732 (_bfd_doprnt): Add new print param. Replace calls to fprintf
82736 Use _bfd_get_error_program_name. Add fprintf arg. Move code
82738 (_bfd_doprnt_scan): ..to here. Add ap param.
82775 Add a new test to check that .cfi_negate_ra_state on aarch64 is handled
82789 mangled RA, use string "[s]" in the output to indicate that the return
82795 with "[s]" if RA is signed with authorization code.
82840 Use the last remaining bit in the 'SFrame FRE info' word to store whether
82841 the RA is signed/unsigned with PAC authorization code: this bit is named
82848 Authentication code. The unwinder, hence, must use appropriate means to
82865 early at GDB startup, in order to get a consistent warning, instead of
82866 a warning that depends on whenever GDB writes to inferior memory.
82869 apparently) may call 'gdb --version' to check GDB's presence & its
82875 start or attach to an inferior. Ends up potentially emiting a warning
82884 Fix previous delta to allow for compilation on 32-bit systems
82898 # Wait a bit, to give time for the threads to hit the
82906 seconds (instead of 1) for the threads to start running, but only sleeping if
82909 Reduces total execution time from 1m27s to 56s.
82917 actually pretty hard for a user to find out more about that label.
82932 This all seems a little strange to me, it feels like asking about a
82933 goto label would not be an unreasonable thing for a user to do.
82936 to provide a little context for why the following issue has probably
82952 When GDB tries to fetch the value of a label symbol then we end up in
82954 LOC_LABEL case. From here store_typed_address is called to store the
82962 GCC has an extension that allows users to take the address of a goto
82965 I propose that when we convert the CORE_ADDR value to a GDB value
82969 target type will be correctly identified as a pointer to code, which
82972 We can then cast the new value to 'void *' type with a call to
82988 gdb: convert linux-osdata.c from buffer to std::string
83000 that appends to an std::string, rather than a struct buffer. Call it
83003 appends to and does not replace the string's content. This mirrors
83008 The code is a direct copy of buffer_xml_printf. The old version is
83009 going to disappear at some point, which is why I didn't do any effort to
83010 share code.
83042 itself during its execution. This is to test use-after-free in
83045 This test needs run with ASan enabled in order to fail when it
83055 The address_significant gdbarch setting was introduced as a way to remove
83062 But if we are using Pointer Authentication (PAuth), we might use up to 2 bytes
83063 from the address space to store the required information. We could also have
83066 We could adjust the constant to 48 to cover those cases, but this doesn't
83067 cover the case where GDB needs to sign-extend kernel addresses after removal
83070 This has worked so far because bit 55 is used to select between kernel-space
83071 and user-space addresses. But trying to clear a range of bits crossing the
83072 bit 55 boundary requires the hook to be smarter.
83074 The following patch renames the gdbarch hook from significant_addr_bit to
83075 remove_non_address_bits and passes a pointer as opposed to the number of
83079 While at it, make GDB and GDBServer share some more code for aarch64 and add a
83090 their expansions") was meant to leave generated Dwarf as is, it really
83091 didn't (and the testcase intended to catch that wasn't covering the case
83092 which broke). Its adjustment to buffer_and_nest() didn't go far enough,
83093 leading to the "linefile" directive inserted at the top to also be
83096 only). That unnoticed flaw in turn led me to work around it by a
83097 (suspicious to me already at the time) conditional in as_where().
83107 gdbsupport: change xml_escape_text_append's parameter from pointer to reference
83108 The passed in string can't be nullptr, it makes more sense to pass in a
83121 attempt to fix a post-hook bug, when running gdb.base/commands.exp, we
83128 a command look up to see if a post-hook is registered. For that, it
83129 uses a now stale pointer that used to point to the define command, in
83131 execute_command points to the dynamically-allocated buffer help by the
83132 static buffer in command_line_input, not to the static object itself,
83136 command_line_input and other related functions to return an std::string,
83138 don't need to return an allocated string, so this this an unnecessary
83139 pessimization. I changed it to passing in a reference to an std::string
83140 buffer, which the callee can use if it needs to return
83142 pointers to the C string inside. The callees that don't need to return
83149 pointer to an std::string's internal buffer to readline's history_value
83151 does not modify the input string, because I was able to change it (with
83152 enough massaging) to take a `const char *`.
83159 command, but leave ownership of memory to the buffer . */
83178 - #1. access to the SFrame FRE stack offsets in the in-memory
83180 - #2. access to the SFrame FRE start address in the on-disk representation
83186 For #2, we need to default to using memcpy instead, and copy out the bytes
83187 to a location for output.
83192 are provided access to the on-disk SFrame FRE data via libsframe's
83204 memcpy to perform 16-bit/32-bit reads.
83217 to reproduce tests by hand.
83224 Move streq and compare_cstrings to gdbsupport
83225 It seems to me that streq and compare_cstrings belong near the other
83227 ought to be inlined. This patch makes this change.
83235 callers I realized it could be removed and replaced with calls to
83248 this commit changes these to be:
83254 Unless we happen to hit the internal_error calls (which was bad) there
83259 gdb: some int to bool conversion in remote-sim.c
83260 Some obvious int to bool conversion in remote-sim.c, there should be
83278 gdb: int to bool conversion in tracefile.c
83279 Some obvious int to bool conversion in tracefile.c.
83306 gdb/maint: add core file name to 'maint info program-spaces' output
83314 reference counts, we might think that we don't need to unpush targets
83322 to inferior::~inferior that ensures the inferior's target_stack is
83325 I've then added a pop_all_targets call to delete_inferior, otherwise
83340 inferior being set correctly, that is, to the inferior from which the
83344 new methods. Previously it was the responsibility of the caller to
83347 In a couple of places (event-top.c and top.c) I have been able to
83358 target_ops::decref will just redirect to decref_target anyway, so why
83359 not just rename decref_target to target_ops::decref?
83363 It's not exactly renaming to target_ops::decref, because the decref
83364 functionality is handled by a policy class, so the new name is now
83373 of 'target_ops *' to using a C++ std::array<target_ops_ref, ...>. The
83388 to calling a pure virtual function. The backtrace at the point of
83408 Anyway, the point of this patch is not to fix GDB's ability to
83409 print an assert during exit, but to address the root cause of the
83410 assert. With that aside out of the way, we can return to the main
83422 process_stratum_target object (the connection) to the
83427 then sets conn_obj->target to nullptr, and removes the corresponding
83431 as part of GDB's exit code, which is run after the Python interpreter
83432 has been shut down. The connpy_connection_dealloc function is used to
83434 wrong for us to be deallocating Python objects after the interpreter
83439 reference to the gdb.TargetConnection object. When the map is
83452 pop_all_targets calls should, in theory, cause all the connections to
83459 I tracked the problem down to delete_inferior where we do some house
83465 references to the target_ops objects on the inferior's target_stack.
83468 partial fix, but this will actually be enough to resolve the crash.
83472 the m_stack in target_stack to hold target_ops_ref objects. This
83487 the `ref' isn't used explicitly, but it serves to hold the
83489 entry to be reset back to nullptr. The alternative would be to
83490 directly set the m_stack entry to nullptr, like this:
83494 The problem here is that when we set the m_stack entry to nullptr we
83496 entry to nullptr.
83506 By using std::move to move the reference out of m_stack, this clears
83512 I've made use of the Python connection_removed listener API to add a
83514 delete_inferior to be called, we can then see that the connection is
83520 While working on some other target_ops reference count related code, I
83525 I think it would be better to make use of gdb::ref_ptr to automate the
83529 first, I use gdb::ref_ptr to handle the reference counts. Then,
83531 destructor to set and reset the starting_up flag, I now use a
83532 scoped_restore_tmpl object to set and restore the flag.
83540 didn't care what the value of starting_up was, we just set it to true
83546 As the starting_up flag is initialized to false then, for the assert
83547 to fire, we would need to recursively enter
83554 Don't attempt to run gold tests with -z bndplt
83590 After the previous commit converted symbol-lookup debug to use the new
83595 than a 'bool' control variable, we use the numeric value to offer
83599 a reference to the bool control variable, and evaluating the variable
83608 in common-debug.h are updated to support scoped_debug_enter_exit being
83609 templated, however, nothing outside of common-debug.h needs to change.
83612 added a couple of token uses in symtab.c. I didn't want to add too
83614 common-debug.h to support this new functionality.
83617 used to query the status of the symbol_lookup_debug control variable,
83627 gdb: convert 'set debug symbol-lookup' to new debug printing scheme
83628 Convert the implementation of 'set debug symbol-lookup' to the new
83631 In a few places I've updated the debug output to remove places where
83632 the printed debug message included the function name, the new debug
83643 Add name canonicalization for C
83646 desire to better understand the above commit, my process was to study
83647 the commit until I thought I understood it, then write a test to
83649 thought it wouldn't hurt to commit this upstream.
83653 GDB prior to the above commit:
83655 - Builtin types are added to GDB using their canonical name,
83659 handled in c-exp.y, and results in a call to lookup_signed_type
83660 for the name "int". The "int" here is actually being looked up as
83667 - The problem is that 'signed int' is not the canonical name for a
83668 signed int, so no builtin type with that name will be found, GDB
83669 will then go to each object file in turn looking for a matching
83673 symtab to see if the full symtab should be expanded or not.
83675 will be no partial symbols with that name, so GDB will not expand
83680 checks using the C++ language, the symbol name is first
83681 canonicalized (the code that does this can be found
83684 the name 'int', most partial symtabs will contain such a symbol,
83689 never even considers whether to expand any additional symtabs.
83694 In the test script we start the inferior, but don't allow it to
83701 for the library to be fully expanded, while in the fixed version of
83704 We use 'info sources' to determine if the debug information has been
83717 Remove some "OBJF_READNOW" code from dwarf2_debug_names_index
83741 The above commit removed from GDB the code that produced the 'faked
83750 to the readnow call.
83752 Next I have rewritten `readnow` to check the $GDBFLAGS for the
83755 good enough to get everything passing again.
83757 For the `mi_readnow` proc, I changed this to just call `readnow` from
83758 gdb.exp, I left the mi_readnow name in place - in the future it might
83759 be the case that we want to do some different checks here.
83761 Finally, I updated gdb.opt/break-on-_exit.exp to call the `readnow`
83770 The current AS accepts invalid operands due to miss of operands length check.
83874 Adjust all places allocating col_offset and col_type to use
83884 abfd->filename will be freed if bfd_close gets far enough to delete
83885 the bfd. It's possible to have an error from fclose at this point.
83903 way to interrupt. Instead, using DebugBreakProcess (or a more
83907 Implementing this lets us remove the special code to call
83908 SetConsoleCtrlHandler and instead integrate into gdb's approach to C-c
83916 called. C-break continues to work, presumably because whatever
83924 Refactor code to check for terminal sharing
83925 This refactors the code to check for terminal sharing.
83927 slightly refactored, and moved to posix-hdep.c. A new
83928 Windows-specific implementation of this function is added to
83938 However, we believe this isn't likely to be an issue for gdb.
83944 this problem by changing them to gdb::optional and checking that they
83960 A problem internal to GDB has been detected,^M
83976 - the assertion fails, because the function is expected to return false
83982 There's code in the same function that intends to prevent that from happening:
83989 and that probably used to work for older kernels, but no longer does since
84002 obsolete watchpoint status clearing code.
84016 Renamed to ...
84021 (Output_data_plt_x86_64_ibt<32>::plt_entry): Renamed to ...
84024 (Output_data_plt_x86_64_ibt<32>::aplt_entry): Renamed to ...
84034 A couple of calls to parse_probe_linespec had an unnecessary cast. I
84035 suspect this cast was never needed, but once commands were changed to
84053 Fix this by adding a call to standard_output_file.
84061 Dump of assembler code for function test:^M
84087 to reference macro invocation sites. As mentioned in a comment this may
84089 first step improve diagnostics to report both locations, while aiming at
84095 is related to [part of] the present stack of locations). To maintain the
84097 introduced to "look through" macro invocations, while the existing
84099 the road as_where() will likely want to return a list of (file,line)
84105 Macros with just a single use site are a little pointless to have, and
84107 inline, avoiding the need to touch the testcases when diagnostics are
84108 changed for code resulting from macro expansion.
84118 expression -- but one that parses to a valid, if extremely weird,
84121 This patch changes is_nocall_function to remove this assert and
84139 from gdbpy_should_stop. Change result type to enum scr_bp_stop.
84149 hi/lo relocs to leave a stale section pointer on the list. That can
84152 Tidying the list when closing is sufficient to stop this happening
84154 mips_hi16_list to where it belongs in the bfd tdata.
84160 (mips_hi16_list): Move to..
84177 (libctf: Add ZSTD_LIBS to LIBS so that ac_cv_libctf_bfd_elf can be true)
84205 This dependency is managed via libtool. So explicit addition to LDFLAGS
84230 The first problem here is that the test is supposed to be a regression test
84237 but it's not due to insufficient quoting (note the dropped '[]').
84239 That's easy to fix, but after that we have on s390 (big endian):
84268 My earlier patch to fix PR rust/29859 introduced a new operator
84327 itself. In that case, struct `cmd_list_element` pointed to by
84332 after it is executed to get pointer to (possibly newly allocated)
84337 x86: further re-work insn/suffix recognition to also cover MOVSX
84341 quirky. After prior adjustment all that's left to also eliminate the
84342 anomaly from move-with-sign-extend is to consolidate the insn templates
84343 and to make may_need_pass2() cope (plus extend testsuite coverage).
84358 next template to possibly match make any sense in that case, nor is the
84361 While moving the check, also generalize it to include all SIMD and VEX-
84364 are also wrong to use with these relocations.
84372 x86-64: allow HLE store of accumulator to absolute 32-bit address
84373 In commit 1212781b35c9 ("ix86: allow HLE store of accumulator to
84374 absolute address") I was wrong to exclude 64-bit code. Dropping the
84375 check also leads to better diagnostics in 64-bit code ("MOV", after
84380 anyway, plus it's quite fine to also have "xrelease mov <disp>, %eax"
84390 legitimate cases. This in exchange allows dropping the respective code
84393 To maintain reasonable diagnostics (in particular to avoid "`mov' is
84394 only supported in 64-bit mode" on the SIMD forms of MOVQ) we need to
84395 defer parse_insn()'s emitting of errors unrelated to prefix parsing.
84408 a suitable template _and_ didn't itself already need to trim off a
84409 suffix to find a match at all. This requires error reporting adjustments
84413 succeeds). While also related to PR gas/29524, it was requested that
84424 Note further that while the additions to the intel16 testcase aren't
84426 for the MOVD variant. The test therefore is to avoid re-introducing such
84443 part of that change wasn't even necessary to address PR gas/29844.
84449 * vms-alphs.c (new_module): Use bfd_zmalloc to alloc file_table.
84450 (parse_module): Rewrite file_table reallocation code and clear.
84477 (build_module_list): Pass dst_section size to parse_module.
84493 gas/codeview: avoid "shadowing" of glibc function name
84501 type "templates". At the same time cut the memory requirement to just
84507 Now that the table is local to gas, ARRAY_SIZE() can be used to
84509 md_begin() accordingly, at the same time folding the two calls to
84512 x86: add generated tables dependency check to gas
84515 actually up-to-date. Personally I think this should at best be a
84525 opcodes/ to the building of i386-dis.o, despite the file not really
84535 "static" in i386-gen (we may want to do away with i386_regtab_size
84538 This also shrinks the number of relocations to be processed for
84549 to break things. There are likely other places in dwarf.c that should
84554 name entry.
84587 If we delete the breakpoint after running to it, we have instead the expected:
84614 The difference comes from this code in s390_displaced_step_fixup:
84648 libsframe: rename API sframe_fde_func_info to sframe_fde_create_func_info
84649 The new name better reflects the purpose of the function.
84654 name.
84656 sframe_fde_func_info to this.
84657 * libsframe/testsuite/libsframe.encode/encode-1.c: Use new name.
84662 sframe_fde_func_info to this.
84668 (from LSB to MSB):
84677 To be precise, however, the fragment fixup logic is meant to fixup only the
84678 least-significant 4-bits (i.e., only the FRE type needs to be updated
84679 according to the function size).
84682 future, when the format does evolve to make use of the currently unused
84684 unchanged while the fragment fixup continues to update the lowermost
84685 4-bits to indicate the selected FRE type.
84693 (sframe_convert_frag): Adjust the fragment fixup code according
84694 to the new composite exp.
84704 Update the code in gas to use these defined constants as it checks for
84738 it will be added to the existing NT_ARM_TLS register set. Kernel patches are
84743 From GDB's perspective, we handle it in a similar way to the existing TPIDR
84744 register. But we need to consider cases of systems that only have TPIDR and
84747 With that in mind, the following patch adds the required code to support
84749 dynamically-generated target description as opposed to a static target
84757 In the future, when *BSD's start to support this register, they can just
84760 The core file read/write code has been updated to support TPIDR2 as well.
84762 On GDBserver's side, there is a small change to the find_regno function to
84765 It always seemed strange to me how find_regno causes the whole operation to
84766 abort if it doesn't find a particular register name. The patch moves code
84770 This allows us to do register name lookups to find a particular register
84773 The patch also adjusts the feature detection code for aarch64-fbsd, since
84775 code to support TPIDR2 in aarch64-fbsd though, as I'm not sure when/if
84781 Access to section data during relocation processing should be bounds
84784 special_function needs to do its own bounds checking before accessing
84785 section data. This patch adds many such checks to the mips backend.
84789 applied to the same location, relocs that may appear somewhere other
84790 than the last one of the sequence need to be treated specially since
84791 they apply to the addend for the next relocation rather than the
84792 section contents. If the addend is in the section then it needs to be
84812 (_bfd_mips_elf_gprel16_with_gp): Move reloc address checks to
84836 The problem is as follows: the instructions for the call to func2 are:
84847 File name Line number Starting address View Stmt
84854 - the insn of the call to func2 (0x10000714), and
84856 and expects the line number of the latter to be greater than the line number
84894 * testsuite/ld-x86-64/plt-main-ibt-x32.dd: Moved to ...
84907 due to:
84914 I managed to reproduce the same behaviour on openSUSE Leap 15.4 x86_64, by
84960 It changed "no debugging..." to "No debugging..." which causes the above
84961 problem. This patch only updates the corresponding pattern to fix this
84992 While playing with JIT reader I experienced GDB to crash on null-pointer
84993 dereference when stepping through non-jitted code.
85001 back to DWARF unwinder which in turn iterates over objfiles. Since the
85002 the code is jitted, it is guaranteed it would eventually process JIT
85047 Instead of using `select_frame (nullptr)` to invalidate the selected
85048 frame, introduce a function to do that. There is no change in behavior,
85060 various ways that gdb is unable to recover the longjmp target if the libc
85079 to newsect. Don't try to be clever matching section name.
85095 bfd_compress_section_contents access to elf_section_data
85103 - Move stuff from bfd-in.h and libbfd.c to compress.c
85105 - Move compress_debug field out of link_info to ld_config.
85107 - Correct test in bfd_convert_section_setup to use obfd flags,
85109 - Apply bfd_applicable_file_flags to compression bfd flags added
85110 by gas and ld to the output bfd.
85120 * compress.c: ..to here, deleting COMPRESS_DEBUG from
85133 (write_object_file): Apply bfd_applicable_file_flags to compress
85134 debug flags added to output bfd.
85139 * emultempl/elf.em: Replace references to link_info.compress_debug
85143 to compress debug flags added to output bfd.
85161 to avoid overflow.
85196 of the test name, and therefore this is a duplicate, which is currently not
85209 (gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
85221 (gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
85232 (gdb) PASS: gdb.base/longjmp.exp: next to longjmp (1)
85242 So, how does this happen on x86_64? Let's look at the code:
85255 The next over the longjmp call at 4005e9 is supposed to stop at the longjmp
85258 from the longjmp call to the insn immediately after it (even though
85261 Try to avoid this accident and make the failure mode on x86_64 the same as on
85268 gdb/riscv: correct dwarf to gdb register number mapping
85269 According to the riscv psabi, the mapping relationship between the
85277 DWARF register numbers 31 and 63 are not handled correctly due to a
85313 SEC_ELF_RENAME is a flag used to effect section name changes when
85320 * compress.c (bfd_convert_section_size): Rename to..
85337 in bfd and binutils, and move some functions from bfd.c to compress.c.
85339 about extending it to support zstd. I likely won't do that, but
85341 headers are to be used in COFF/PE too.
85346 (bfd_convert_section_size, bfd_convert_section_contents): Move to..
85371 to zero for zlib-gnu case.
85379 gdb/linux-nat: add ptid parameter to linux_xfer_siginfo
85380 Make the inferior_ptid bubble up to linux_nat_target::xfer_partial.
85394 Not a big deal, but it seems strange to check errno instead of the
85395 ptrace return value to know whether it succeeded.
85411 Change return type to bool.
85424 gdb/testsuite: remove perror calls when failing to run
85440 UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada
85441 PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
85444 while trying to run to main. However, the UNRESOLVED in assign_1.exp
85448 (gdb) UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada
85451 (gdb) PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1
85453 The problem is that arrayptr.exp calls perror when failing to run to
85459 These perror when failing to run to X are not really useful, especially
85463 When there wasn't one already, add a return statement when failing to
85464 run, to avoid running the test of the test unnecessarily.
85475 Add missing newline to gdbarch_tdep debugging output
85477 to an unexpected location.
85481 Prevent an illegal memory access when comparing the prefix of a section name regexp.
85484 the target name to match the spec's prefix.
85489 Mold linker demotes symbols like main to be local and the patch
85497 Use as many tabs as possible for indentation and pad with spaces to keep
85498 the argument aligned to the opening parenthesis in the line above.
85507 arguments to the open parenthesis of the function call.
85518 Before fiddling with the code let's put in place a test covering what
85522 Not so long ago we started to insert these artificially when expanding
85532 respective callers. Note that we need to compensate for the removed line
85534 s_linefile() before calling new_logical_line_flags(), and I have to
85536 puzzled by the imbalance of increments/decrements, but then I forgot to
85539 While there also switch to sb_add_string() instead of effectively open-
85540 coding it to some degree.
85560 This is a pretty straight forward change, we switch to use the
85563 needed (compared to say i386, or ARM).
85580 I think adding something like .word, or .short, helps to make it
85589 Re: Renaming .debug to .zdebug and vice versa
85607 * objdump.c (compare_symbols): Test symbol flags to exclude
85608 section and synthetic symbols before attempting to check flavour.
85614 has been broken due to the "flags" variable not getting SEC_HAS_CONTENTS.
85618 to be the same as in elf.c.
85622 Renaming .debug to .zdebug and vice versa
85623 Move a couple of elf.c functions to compress.c.
85629 (_bfd_elf_assign_file_positions_for_non_load): Adjust to suit.
85638 Revert "ld: Add .note.GNU-stack to ld-plugin/dummy.s"
85645 ld: Add .note.GNU-stack to ld-plugin/dummy.s
85685 gdb/linux-nat: add pid parameter to linux_proc_xfer_memory_partial
85686 Add a pid parameter to linux_proc_xfer_memory_partial, making the
85687 inferior_ptid reference bubble up close to the target_ops::xfer_partial
85694 gdb: add some debug statements to solib-svr4.c
85695 Add a few debug statements that were useful to me when debugging why the
85704 rare that you will want to enable debug for one solib kind, and
85705 absolutely want to keep the others disabled. To make things simpler,
85719 With the general use of C99 there's no need anymore to have i386-gen
85729 For one, because of CheckRegSize, there's no need to check the size of
85734 Leverage the C (commutative) attribute to also reduce the number of XCHG
85745 Rewrite the corresponding gdb_test_multiple to read line-by-line, to prevent
85748 Note that this doesn't fix a timeout in the test-case on aarch64 due to:
85776 pointer method to call the functions so the tests will work correctly on
85780 The expect files were changed to use the new source files and to set the
85794 Remove call to registers_changed from windows-nat.c
85796 However, I don't think there's any reason to do this, because this
85819 Add name canonicalization for C
85823 What happens is that lookup_signed_typename will try to look up a type
85826 name to be "int" instead. Then this method will proceed to expand
85829 does not do this canonicalization, so when it tries to find the symbol
85830 for "signed int", it fails -- causing the loop to continue.
85832 This patch fixes the problem by introducing name canonicalization for
85834 name when a symbol name can have multiple spellings, we avoid the bad
85835 behavior in objfile::lookup_symbol (and any other such code -- I don't
85839 needed. And, in particular, due to the lack of overloading (thus
85840 avoiding any issues in linespec) and due to the way c-exp.y works, I
85847 The DWARF reader needed one small tweak in dwarf2_name to avoid a
85850 not occur in real code, only the gdb test suite.
85852 lookup_signed_typename is simplified. It used to search for two
85858 It seems better here to use the correct C type name.
85867 This refactors cooked_index::do_finalize, reordering an 'if' to make
85869 easier to read.
85888 also happened to see a spot in
85901 an oversight to leave it there in the work following commit e8032dde10b
85902 ("Push pruning old threads down to the target"). That commit changed
85903 the "find new threads" target operation to "update thread list", making
85906 the prune_threads calls previously done in common code into each
85907 target's update_thread_list method, in order to keep the existing
85910 In the mean time, the linux-nat target was taught to update_thread_list,
85911 and thread_db_target::update_thread_list defers to that for any live
85914 td_ta_thr_iter_p only knows how to add new threads, not how to delete
85925 i386-init.h and i386-tbl.h are generated files. There is nothing to
85930 * po/POTFILES.in: Likewise.
85940 Internally the bug seems to be that gdb tries to convert multiple
85942 didn't track it down too far) causes the C++ compiler plugin to crash.
85987 But [0x1e - 0x2a] corresponds to the CU header and [0x2a - 0x2e] are
86000 (verilog_write_record): Use VerilogDataEndianness, if set, to
86004 binutils* objcopy.c (copy_object): Set VerilogDataEndianness to the
86017 anymore to pull out such a loop invariant: We're dealing a check of a
86019 the loop, thus also making it easier to understand what is actually
86035 misnamed LONG_DOUBLE_MNEM_SUFFIX, to e.g. FAR_BRANCH_SUFFIX - it's going
86036 to disappear anyway.)
86042 file system, I run into timeouts due to core generation, like for instance:
86094 Note that for this patch to work correctly, recent commit aaa79cd62b8 ("[gdb]
86146 section-select: Remove unused code
86150 removes the need to handler_data[] and some associated helper functions.
86158 sections and match their names against a prefix-tree that points to the
86173 "linker stubs" .got) need to come in front of all others, despite
86192 And this process is done three or four times: for each top-level call to
86210 Bounds check access to Ada task state names
86212 checking is done on accesses to the Ada task state names arrays. This
86223 This changes mi_interp to use ui_file_up rather than explicit
86232 requested by Simon. I tried to choose names that more obviously
86252 This is due to this bit of code in pformat:
86255 return format[0]->name;
86258 Fix this by using gdbarch_byte_order to pick the appropriate index, such that
86274 attempting to read it to set ELF64.
86280 x86/Intel: adjustment to restricted suffix derivation
86282 slightly, bringing a piece of code out of sync with its comment, and
86296 templates need to stay.
86299 code accordingly.
86308 Also move the respective conditional out of the code path taken by all
86310 before, to avoid the one conditional in the common case).
86327 src-release.sh: Fix gdb source tarball build failure due to libsframe
86334 | Add libsframe to the list of top level directories that will be included
86340 | make[3]: *** No rule to make target '../libsframe/libsframe.la',
86344 This patch fixes the issue by adding libsframe to the list of
86345 GDB_SUPPORT_DIRS, similar to what was done for BINUTILS.
86369 In order to find the size of the optimized out vla, gdb needs to evaluate:
86377 When trying to evaluate DW_OP_GNU_entry_value, it looks for a call site
86403 due to the fact that the call site has no call site parameters.
86405 The call site does have a reference to the corresponding function f1, with
86413 range, and that that the range starts at the start of the function, to deduce
86432 to use gdb_test_multiple, so that it leaves an UNRESOLVED result. I
86438 Change gdb.base/endian.exp as well to avoid duplicate test names.
86440 Change gdb.base/gnu-debugdata.exp to avoid recording a test result,
86456 to miss.
86459 this is only if it manages to send the command, and it's that command
86460 that crashes GDB. Here, the ERROR is due to the fact that GDB had
86461 already crashed by the time we entered gdb_test_multiple and tried to
86466 In this patch, I propose to make gdb_test_multiple call unresolved
86474 ERROR: Couldn't send python print(objfile.filename) to GDB.
86479 -re ".*A problem internal to GDB has been detected" {
86488 Couldn't send python print(objfile.filename) to GDB.
86505 Define reusable function xtensa_load_config that tries to load
86508 to get structures xtensa_config_v{1,2}, either dynamically configured
86517 xtensa-dynconfig.lo to the tb.
86730 Convert to UNIX line endings.
86738 will send gdb_stdlog output (among others) to the tee it makes for
86740 to use the pager. This is PR gdb/29787.
86750 Right now, tee_file owns the second stream it writes to. This is done
86753 ownership to the users of tee_file.
86765 Actually set m_is_async to current async mode
86785 …nversion from 'windows_nat_target::windows_nat_target()::<lambda(LPVOID)>' to 'LPTHREAD_START_ROUT…
86791 …n conversion from 'DWORD (*)(LPVOID)' {aka 'long unsigned int (*)(void*)'} to 'LPTHREAD_START_ROUT…
86793 Since it's not possible to change the calling convention of a lambda, I've
86794 moved it to a separate function.
86800 disassembler classes to hold callback functions before passing the
86803 Because libopcodes is C code, and on some (many?) targets, C code is
86805 to throw an exception over libopcode code.
86808 noexcept, however, this doesn't protect us from a future change to GDB
86813 that GDB's disassembler classes will no longer compile if we try to
86844 types, but then does appear to correctly complain that passing a_func
86847 Switching to C++17 and both GCC and Clang correctly point out that
86848 passing a_func is an invalid conversion relating to the noexcept
86849 keyword. Changing a_func to:
86857 My conclusion then is that adding the noexcept keyword to the function
86859 the warnings would require us to jump through a bunch of hoops.
86862 this macro expands to noexcept when compiling for C++17, but otherwise
86863 expands to nothing. I then add this macro to the function types.
86865 I've compiled GDB as the default C++11 and also forced the compile to
86867 where callbacks needed to be marked noexcept (these fixes were merged
86868 into the previous commit, but this confirmed to be that the macro is
86873 gdb/disasm: mark functions passed to the disassembler noexcept
86875 improved by marking the functions passed to the disassembler as
86881 code, will not be compiled with support for handling exceptions. As
86882 such, an attempt to throw an exception over libopcodes code will cause
86883 GDB to terminate.
86887 In this commit all the functions that are passed to the disassembler,
86891 Ideally, I would have liked to change these typedefs:
86904 …../../src/gdb/disasm.h:116:3: error: mangled name for ‘gdb_printing_disassembler::gdb_printing_dis…
86909 new use of the disassembler classes in the future, and forgets to mark
86910 the callbacks as noexcept, this will compile fine. We'll just have to
86915 gdb/python: avoid throwing an exception over libopcodes code
86917 In some cases GDB will try to throw an exception through the
86918 libopcodes disassembler code, however, not all targets include
86919 exception unwind information when compiling C code, for targets that
86920 don't include this information GDB will terminate when trying to pass
86923 To explain what GDB is trying to do, consider the following trivial
86942 This disassembler doesn't add any value, it defers back to GDB to do
86943 all the actual work, but it serves to allow us to discuss the problem.
86968 disassembler to read memory, this C++ function then calls into user
86969 supplied Python code to do the work.
86971 If the user supplied Python code raises an gdb.MemoryError exception
86972 indicating the memory read failed, this is fine. The C++ code
86974 understand, and returns to libopcodes.
86976 However, if the user supplied Python code raises some other exception,
86977 what we want is for this exception to propagate through GDB and appear
86978 as if raised by the call to gdb.disassembler.builtin_disassemble. To
86981 exception from frame #0 to frame #8 in the above backtrace. Frame #8
86983 so it is this function that we want to re-raise the unknown Python
86985 code.
86987 The previous mechanism by which the exception was passed was to pack
86992 However, this relies on the exception passing through frames #1 to #7,
86993 some of which are in libopcodes, which is C code, and so, might not be
87001 currently in use. Then we return to libopcodes a value indicating
87004 libopcodes will now continue to disassemble as though that memory read
87006 eventually return to disasmpy_builtin_disassemble we check to see if
87009 return back to Python, when the user will be able to catch the
87014 gdbpy_disassembler object, any future calls to the ::read_memory_func
87016 any additional calls into user supplied Python code.
87023 though - to trigger this issue would rely on a libopcodes disassembler
87024 that will try to read further memory even after the first failed
87041 this area up a little by adding a parameter to the constructor and (a
87057 gdb: relax requirement for the map_failed stap probe to be present
87065 related to the shared library loading detection. If any of these
87066 probes are missing then GDB will fall back to the non-probe based
87070 This means that on glibc 2.35 (or later) systems, GDB is going to
87071 always fall back to the non-probes based mechanism for detecting
87074 I raised a glibc bug to discuss this issue:
87078 But, whatever the ultimate decision from the glibc team, given there
87080 probably should update GDB to handle this situation.
87084 this probe is missing GDB is happy to ignore it. This is fine, the
87086 the probe isn't actually required in order for GDB to correctly detect
87092 There is one possible downside to this change, and that concerns 'set
87100 probe, and the call to the old style breakpoint location were
87132 FAIL: gdb.ada/task_watch.exp: continue to watchpoint (timeout)
87144 In the gdb documentation related to watchpoints in multi-threaded programs, we
87150 can only change due to the current thread’s activity (and if you are also
87178 run to foo_o224_021.child1.child2
87182 local entry point doesn't correspond to a line number entry, the instruction
87187 Fix this by allowing the breakpoint address to occur.
87195 when sorting is required, it merely needs to also support filename
87204 Then the non-BST based sorting can be simplified to only support
87206 the two variants to _sort and _nosort).
87216 need any calls to fnmatch anymore.
87219 matchers (they aren't called often enough to matter).
87231 with that board to just return with "untested". Change them to add an
87235 did use gdb_start_cmd to start the inferior, for no good reason.
87236 Convert them to use runto_main instead, which does the right thing if
87239 A further refactoring could be to make gdb_start_cmd match the expected
87241 that to the callers, but not all of them do).
87250 The code to create a range type has a heuristic to decide whether the
87267 - Uncomment line in test to avoid hanging when exiting, when testing on
87302 to find active process targets. And after the kill, the inferior is
87306 startup_inferior (to consume the initial expect stop events while the
87312 (note: to be correct, I think that startup_inferior should toggle
87316 I can see multiple ways to fix this. In the end, we need
87317 commit_resumed_state to be cleared by the time we get to that
87321 To keep things in a coherent state, I'd like to make it so that after
87323 commit_resumed_state flag is left to false. This way, we can keep
87331 commit_resumed_state will be left to false, which makes sense.
87333 Add a test that tries to cover various combinations of actions done
87343 gdbserver: switch to right process in find_one_thread
87361 …warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally…
87366 [Switching to inferior 2 [<null>] (<noexec>)]
87369 Attaching to process 3659848
87376 the error recovery of GDB is not on point. This patch aims to fix just
87407 iterate on all threads of all process to fulfull the qxfer:threads:read
87408 request, we get to a thread of process 1 for which we haven't read
87413 happens when trying to dereference that thread_db pointer.
87416 current thread is. If it needs to call into libthread_db, which we know
87417 will try to read memory from the current process, then temporarily set
87421 don't need to switch process.
87423 Add a test to reproduce this specific situation.
87432 argument is an undefined command. This is a regression due to the
87450 It's a bit easier to understand what happens if we do a full stepping session:
87467 and compare that to the line info:
87470 File name Line number Starting address View Stmt
87481 So we step from line 29 to line 28, and back to line 29, which is behaviour
87482 that matches the line table. The peculiar order is due to using optimization.
87509 steps to trigger the assertion within target_stop were identified when
87513 In the gdb.threads/detach-step-over.exp test, we attach to a
87520 While detaching, if a step-over is in progress, then GDB has to
87532 The modification to the test that I propose here, and which exposed
87533 the bug, is that, instead of using "detach" to detach from the
87534 inferior, we instead use "quit". Quitting GDB after attaching to an
87535 inferior will cause GDB to first detach, and then exit.
87537 When we quit GDB we end up calling target_detach via a different code
87556 the target's commit_resumed_state flag is left to false if the detached
87562 think it is still relevant to cover the resumption at the end of the
87572 Factor out some bits of gdb.threads/detach-step-over.exp to procs in
87573 preparation to adding some new variations of the test. Rename the
87582 Before doing further changes to this file, change to use the :: notation
87606 the instructions don't seem to be writing there.
87629 The problem is that the prologue skipper walks from foo@plt at 0xa28 to 0xa34:
87643 having a local entry point, due to incorrectly accessing an asymbol struct
87685 This commit adds 'h' to standard_exts variable to merge 'H' extension.
87709 Commit bb996692bd96 ("RISC-V/gas: allow generating up to 176-bit
87710 instructions with .insn") tried to start supporting long instructions but
87739 Commit bb996692bd96 ("RISC-V/gas: allow generating up to 176-bit
87740 instructions with .insn") tried to start supporting long instructions but
87743 On the disassembler, correct ".byte" output was limited to the first 64-bits
87761 To resolve this, this commit adds "packet" argument to support dumping
87762 instructions longer than 64-bits (to print correct instruction bits on
87777 (print_insn_riscv): Pass packet to the disassemble function.
87788 all the file names it finds, except the name of 'fnd file name and directory'.
87789 Instead, it was xstrdup-ing the name.
87790 Fix the leaks by also interning the name.
87844 valgrind reports a leak when assigning a gdb_environ to another gdb_environ.
87867 Some class members were changed to bool, but there was
87882 and connecting to it using gdb:
87888 we are setup to do the same as in the test-case: interrupt a running inferior
87901 to send a SIGINT, but it fails. And it fails silently.
87911 gdbserver: Sending SIGINT to process group of pid 15068 failed: \
87942 minute, probably due to slow NFS.
87944 I managed to reproduce this behaviour independently of gdb, by compiling
87955 [gdb/symtab] Handle failure to open .gnu_debugaltlink file
87956 If we instrument cc-with-tweaks.sh to remove the .gnu_debugaltlink file after
88042 * elfxx-riscv.c: Add 'smaia' and 'ssaia' to the list
88100 - Move hypervisor CSRs to Ssaia+H
88114 xrefautomaticsectiontitle appears to be available from texinfo 5.0 or
88115 greater. As such, it is not worthwhile to add requirement for a minimum
88118 Also align node name with section title where possible.
88133 Move all the remaining tests to a single test_break proc. It's a bit
88147 to other procs.
88167 execution to verify that the catchpoints are indeed not hit. I guess
88171 were to be hit, it would catch the problem.
88179 This one is a bit tricky. The clear tests seem to depend on the various
88230 …Impport libiberty commit: 885b6660c17f from gcc mainline. Fix gas's acinclude.m4 to stop a potwnt…
88240 reserved name.
88245 First of all make operand_type_register_match() apply to all sized
88246 operands, i.e. in Intel Syntax also to respective memory ones. This
88250 register ones, both permitting at least two sizes, due to CheckRegSize
88253 Then also add CheckRegSize to a couple of non-SIMD templates matching
88255 bogus (for Intel Syntax) diagnostics referring to a wrong suffix (when
88260 This also is a prereq to limiting (ideally eliminating in the long run)
88263 While making the code adjustment also flip order of checks to do the
88270 size or REX.W prefixes), consistent operand sizes need to be specified.
88290 PR16995, m68k coldfire emac immediate to macsr incorrect disassembly
88295 for move reg to macsr/mask insns.
88310 This patch extends the list of patterns to include also the FType bit
88321 This extends the commit 4581a1c7d304 fix to more targets, which
88339 * objdump.c (load_specific_debug_section): Pass syms to
88386 create_std_terminate_master_breakpoint, but we try to do this a bit more
88392 - documenting why we don't need to use gdbarch_addr_bits_remove
88413 RISC-V: Make R_RISCV_SUB6 conforms to riscv ABI standard
88414 According to the riscv psabi, R_RISCV_SUB6 only allows 6 least significant
88417 different purpose. Therefore, we should filter the 8 bits to 6 bits before
88434 ld: Add section contributions substream to PDB files
88458 fbsd-nat: Pass an optional register base to the register set helpers.
88459 This is needed to permit using the helpers for register sets with a
88460 variable base. In particular regnum needs to be converted into a
88461 relative register number before passed to regcache_map_supplies.
88472 to provide custom logic when fetching or storing a register set.
88484 fixed offsets relative to some base register value. An example of
88489 requires duplicating the code to create the register map and register
88493 base register number to the value from the map entry to determine the
88517 The aim here is to improve readelf handling of large 64-bit object
88520 changed to avoid "long". Most places get to use uint64_t even where
88522 checks to be implemented easily (*alloc changes).
88546 (process_program_headers): Don't cast p_offset to long.
88551 As part of the rebase of the patch, I managed to loose the local
88570 from 0xC2 to the correct value 0xC1. Moreover, it only exists in
88575 * arc-regs.h: Change isa_config address to 0xc1.
88581 With the recent changes to the dwarf assembler, there is no longer a
88582 need to test for gcc in gdb.dwarf2/clang-cli-macro.exp and mark it as
88587 gas/sframe: avoid "shadowing" of glibc function name
88599 Changes readelf to make use first of fseeko64 and then fseeko,
88601 reverts to the previous behavior of using fseek.
88610 Note that large archive handling in readelf remains to be fixed.
88622 Remove this code dating back to commit 98790d3a95fc entirely, what it
88623 was trying to do is done elsewhere.
88633 This results in bpstat bs->b->loc to become nullptr.
88655 ERROR: Couldn't send python print(objfile.filename) to GDB.
88660 -re ".*A problem internal to GDB has been detected" {
88667 Wondering if it might be possible to improve gdb_test to have
88693 Fix ARM and AArch64 assembler tests to work in a multi-arch environment.
88695 gas * testsuite/gas/arm/cpu-cortex-a76ae.d: Add arm prefix to the -m
88696 option passed to objdump.
88698 * testsuite/gas/aarch64/cpu-cortex-a76ae.d: Add aarch64 prefix to
88699 the -m option passed to objdump.
88719 corresponding msp/psp needs to be switched too.
88746 ../gnulib/config.h:1693:72: note: use a cast to the expected type to disambiguate
88748 We've not yet been able to determine where the ambiguity actually lies,
88763 sol-thread.c fails to compile on 32-bit Solaris: there are several
88771 416 | warning (_("Specified thread %ld seems to have terminated"),
88779 416 | warning (_("Specified thread %ld seems to have terminated"),
88797 Add missing gdb_prompt in ctxobj.exp to avoid random failure, fix typo.
88819 Note that according to the GDB user manual node 'GDB/MI Development and Front
88820 Ends', it is ok to add new fields without changing the MI version.
88823 $_hit_bpnum and $_hit_locno are set to the encountered breakpoint number
88827 breakpoint, to disable the specific encountered breakpoint, e.g.
88830 In case the breakpoint has only one location, $_hit_locno is set to
88831 the value 1, so as to allow a command such as:
88833 to disable the breakpoint even when the breakpoint has only one location.
88842 - Changed convenience var names from $bkptno/$locno to
88845 User manual also explictly describes that $_hit_locno is set to 1
88849 are hit at the same time, that the variables are set to the printed
88855 - Use 'code location' instead of 'location'.
88861 - Use 'code location' instead of 'location'.
88862 - Add a note to clarify the distinction between $bkptno and $bpnum.
88865 Compared to RFA v1, the changes in v2 handle the comments given by
88881 Note that 'Smstateen' extension itself is unchanged but due to
88897 CSR_CLASS_SMSTATEEN_AND_H{,_32} to CSR_CLASS_SSSTATEEN_...
88900 * testsuite/gas/riscv/csr.s: Add 'Ssstateen' extension to comment.
88901 * testsuite/gas/riscv/csr-version-1p9p1.l: Reflect changes to
88908 * testsuite/gas/riscv/smstateen-csr-s.d: Test to make sure that
88948 The following patch ("gdbserver: switch to right process in
88951 using current_thread in order to get the process' pid. Get the pid from
88952 `current_process ()` instead, which removes the need to have a current
88953 thread. Eventually, it would be good to get it from the
88954 gdb_ps_prochandle_t structure, to avoid the need for a current process
88965 thread to work on. However, it is not said that both are the same.
88968 find_one_thread switch to a process but to no thread (current_thread ==
88969 nullptr). When libthread_db needed to get the thread area,
88970 is_64bit_tdesc would try to get the regcache of a nullptr thread.
88972 Fix that by making is_64bit_tdesc accept the thread to work on as a
88974 we know the lwpid to work on). Otherwise, pass "current_thread", to
88983 Just a small optimization, it's not necessary to recompute lwp at each
88986 While at it, change the variable type to long, as ptid_t::lwp returns a
88996 the `finish' command, and are meant to be temporary breakpoints. However, they
89002 post-stop hook of the breakpoint. It also adds a test to ensure this feature
89034 Work around that by using string_printf. It is a good thing to get rid
89043 Convert the gdb.cp/call-method-register.exp test to make use of the
89049 This means that the test will only work with Clang, and, as we have to
89050 name the register into which the variable will be placed, will only
89054 By switching to the DWARF assembler, the test will work with gcc and
89058 register, and then tries to call a method on the structure from within
89067 these architectures, which is already more than we used to cover.
89080 The problem appears to be with Clang's generated line table. The test
89090 In GDB, when we 'start', we expect to stop at the 'return 0;' line.
89097 return line, and then using gdb_continue_to_breakpoint to ensure we
89109 is checking that GDB managed to find the source file, it doesn't
89122 and updates the call to standard_testfile (removing the reference to
89138 them. For GCC, really GNU ld, the default is to always include a
89146 Instead, I propose that we add a new 'build-id' compiler option to
89165 a technique which is not portable to Clang. This problem is
89169 # If the compiler is gcc, we can do the following to get function start
89177 # may not guarantee the order of global asms and function. The code
89185 and length. The portable solution is to place a label within the
89198 One consequence of this change is that we need to compile the source
89200 function_range, so I've added an early call to prepare_for_testing.
89204 I've switched this to use compile-ops-dbg.S instead, which is more
89224 But, if people would prefer to be more conservative, then I'm happy to
89234 the test executable failed to compile.
89248 be sent straight to the assembler. My guess is that Clang doesn't
89254 commit, I just change the file extension from .s to .S, and the
89258 file using standard_output_file, in this commit I've switched to make
89259 use of standard_testfile, as that seems to be the more common way of
89287 Fixes issue where various values of '.align' causes writing of COFF files to fail.
89288 Specific to the aarch64-pe target.
89330 Use NoSuf to replace No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf
89331 and add the explicit NoSuf to AddrPrefixOpReg in templates.
89337 Add NoSuf to AddrPrefixOpReg in templates.
89341 i386: Move i386_seg_prefixes to gas
89363 The functionality can now be used to fix gdb.base/retval-large-struct.exp.
89364 The test just needs to be compiled with -fvar-tracking to enable GDB to
89370 (gdb) PASS: gdb.base/retval-large-struct.exp: continue to breakpoint: Break in print_large_struct
89381 This patch adds the command line argument -fvar-tracking to enable gdb to
89394 Change NULL to nullptr in gdb/infcmd.c and gdb/infrun.c
89412 be called to handle local IFUNC symbols even if all symbols are striped.
89413 Update ARM and AARCH64 to skip elf_backend_output_arch_local_syms when
89437 can be used in command scripts, or breakpoint conditions, etc to
89448 I happened to find a couple of obsolete declarations in cli-interp.h.
89463 Error while executing Python code.
89466 The test uses 'maint packet ...' to send a packet to gdbserver, and
89468 to a Python function, which performs some actions using the Python
89469 API, and compares the results from the Python API to the results
89473 like '\x000', when this is passed through to Python the '\x' causes
89474 this to be treated as an escape code, which isn't what we want - we
89477 So, in the TCL part of the test we were expanding '\x' to '\\x', this
89478 seemed to work fine for my testing on x86-64.
89485 However, now our TCL test script kicks in and tries to "fix" the '\x',
89489 expand '\x' to '\\x', but really, we should be expanding all '\'
89499 In AIX for 64 bit programs we need to zero extend variables
89503 our word to 0 and we copy non zero extended contents to the cache.
89512 This works fine in GDB right now, but I thought it wouldn't hurt to
89517 are stored as an address and length, it is fine to include an embedded
89525 I'm not currently proposing to change that behaviour, the backslash
89556 238 | char pathname[MAX_PROC_NAME_SIZE]; /* Pathname to /proc entry */
89559 The warning is correct, so the code can lose support for the NULL
89573 Martin Sebor refuses to fix. So I'm using the hack suggested in the
89574 PR to use memcpy instead of strncpy.
89579 /vol/src/gnu/gdb/hg/master/dist/gdb/procfs.c:3167:18: error: too few arguments to function
89607 able to build and test gdb on both amd64-pc-solaris2.11 and
89627 This patch adds the XTheadFmv extension, which allows to access the
89654 Add myself to the gdb/MAINTAINERS write-after-approval list
89708 PR29788, gprofng cannot display Java's generated assembly code
89714 * src/Experiment.cc: Use dyntext_name to initialize img_fname.
89754 The problem seems to be that:
89770 The code is not checking if sm->function is NULL. If sm->function is NULL
89780 This patch adds the missing states to the appropriate node, and
89781 updates one state to reflect a change made some time ago.
89785 gdb: add "set style tui-current-position on|off", default to off
89790 this patch disables source and assembly code highlighting for the
89792 command to enable it back.
89808 required extending get_set_option_choices to accept a second argument, such
89838 I've tried making output redirection work with remote_exec, but that seems to
89844 Factor out new function decompress_bz2 to make the test-case less verbose, and
89858 * libsframe/Makefile.am: Add info-in-builddir to
89883 Add libsframe to the list of top level directories that will be included
89922 The linker uses libsframe library to perform key actions on the
89924 implies buildsystem changes to make and install libsframe before
89942 adapted to include the control of whether .sframe unwind information
89945 Changes to the linker script have been made as necessary.
89970 contents to the .sframe sections or .plt* entries.
89998 * ld/configure.ac (TESTSFRAMELIB): Set to the .so or .a like TESTBFDLIB.
90026 * ld/testsuite/lib/ld-lib.exp: Add new proc to check if
90035 libsframe is a library that allows you to:
90042 to be upstream'd.
90059 * configure.ac: Add libsframe to host_libs.
90100 support in GNU assembler to generate .sframe section from CFI
90140 [PS: Currently, the compiler has not been adapted to generate
90142 option of --gsframe provides an easy way to try out .sframe support
90145 gas interprets the CFI directives to generate DWARF-based .eh_frame
90147 gen-sframe.[ch] sub-system to, in turn, create the SFrame unwind
90156 necessary information to generate backtraces and does not provide
90157 information to recover all callee-saved registers. The reason being
90161 Consequently, gen-sframe.[ch] only needs to interpret a subset of
90194 unwind information to be absent for SFrame FDEs that contain these CFI
90197 x86-64 and aarch64 backends need to have a few new definitions and
90204 function are fixed up. This is similar to other similar optimizations
90207 SFRAME_FRE_TYPE_SELECTION_OPT and should be easy to turn off if needed.
90252 * gas/doc/as.texi: Add .sframe to the documentation for
90279 The SFrame format is the Simple Frame format. It can be used to
90292 * testsuite/gas/arm/ehabi-pacbti-m.d: Limit test to ELF.
90302 results in an error when coff_frob_section attempts to pad out the
90303 section to a 16-byte boundary. Due to miscalculating the pad pattern
90304 repeat count, write.c:write_contents attempts to shove 16 bytes of
90321 AC_LINK_IFELSE autoconf macro in order to link a simple program to
90324 If libbfd's link dependencies change, it was necessary to reflect them
90326 for them with an autoconf macro resulting in an addition to LIBS.
90329 to use libtool to perform the test link. This makes it possible to
90330 not have to list dependencies of libbfd (which are indirect to GDB) at
90356 The "varstring" paramter to ada_print_type can be null, but one spot
90357 failed to check this. This could cause a crash in some situations.
90360 for a while, I am going to push it.
90398 Set completions to unlimited in get_set_option_choices"), which can be
90414 entire results. Use ^ in match patterns to ensure we don't miss any
90431 [gdb/testsuite] Normalize gdbserver path name
90433 gdbserver file on build, using a file name which includes "/../".
90435 Fix this by using a normalized file name instead.
90437 This allows us to be more restrictive about which files REMOTE_TARGET_USERNAME
90454 - setting jit_libname with the name as returned by gdb_load_shlib
90455 - allowing the libraries to be prefixed with the remote target directory.
90516 and using putenv ("PATH=...") to allow infcall-exec to exec infcall-exec2
90519 Also fix the exec name in the test-case, such that we can successfully
90538 Fix these by using the name of a shared lib as returned by gdb_load_shlib.
90568 pathnames to refer to files on build, we can access those files on target,
90569 which in a real remote target setup wouldn't be the case: we'd have to
90570 download them to target first, and then the filename would also be different.
90572 For aforementioned test-case, this happens when the name of a shared library is
90573 passed as absolute file name to gcc:
90580 adding an option to specify a test account (still on the same machine)
90596 version_id_main=0: continue to STOP marker
90624 (gdb) FAIL: gdb.base/foll-exec.exp: continue to first exec catchpoint (the program e\
90645 Attaching to Remote target^M
90657 # description GDBserver uses, and may fail to parse 'g' packet
90683 now we can be able to debug multi process. Users can use set
90685 or off to enable/disable simultaneous debugging of parent/child.
90695 reliably determined on PowerPC. This is due to the fact that the PowerPC
90696 ABI uses register r3 to store the address of the buffer containing the
90699 function. Thus the value in r3 cannot be reliably used to obtain the
90702 This patch adds a new gdbarch method to allow PowerPC to access the value
90703 of r3 on entry to a function. On PowerPC, the new gdbarch method attempts
90704 to use the DW_OP_entry_value for the DWARF entries, when exiting the
90705 function, to determine the value of r3 on entry to the function. This
90706 requires the use of the -fvar-tracking compiler option to compile the
90708 DW_OP_entry_value entries in the binary file allows GDB to resolve the
90709 DW_TAG_call_site entries. This new gdbarch method is used to get the
90712 to see if RETURN_BUF is non-zero. By default, RETURN_BUF will be set to
90714 The get_return_value function will be used to obtain the return value on
90718 return buffer address to get the return value.
90752 should return RETURN_VALUE_STRUCT_CONVENTION if the valtype->code() is
90756 This patch adds the needed code to return the value
90762 r3 on entry to the function. However, the PowerPC ABI does not guarentee
90811 converted from individual booleans to a single enum, as was done for a few
90818 pru: bfd: Correct default to no execstack
90820 possible to execute instructions from the stack memory on PRU.
90839 "0xb5". This opcode indicates the unwinder to use effective
90856 table opcode "0xb5", which indicates to use effective vsp
90865 * readelf.c (decode_arm_unwind_bytecode): Add entry to decode opcode 0xb5.
90871 are used (to redirect the developer to use Gnulib version). It caused a
90881 However, previous proposal to fix this issue (a "fix" to Gnulib):
90887 This commit tries to address this issue on the GDB side. We have
90888 "include/diagnostics.h" to disable certain warnings only when necessary.
90891 block with DIAGNOSTIC_IGNORE_USER_DEFINED_WARNINGS to disable Gnulib-
90914 * config/tc-arm.c (arm_cpus): Add cortex-x1c to -mcpu.
90935 This allows us to remove the 'untested "powerpc:common64 is not supported"'.
90947 The target architecture is set to "auto" (currently "i386").^M
90956 The target architecture is set to "powerpc:common64".^M
90961 (gdb) set arch set to "auto" (currently "i386")^M
90971 [gdb/testsuite] Set completions to unlimited in get_set_option_choices
90972 In some test-case I tried to use get_set_option_choices "set architecture" and
90983 and it locally sets max-completions to unlimited.
90987 - using it to temporarily set max-completions to unlimited in
91029 for Cygwin (and looks like it shouldn't be, as appears to imply
91039 includes winsock2.h. We don't want to do that on Cygwin, since
91055 value zero, then the instruction must cause a PC jump directly to the
91075 The instruction is unrecognised due to the hack we have in
91076 extract_pcrel0 in order to disassemble paddi with RA0=0 and R=1 as
91077 pla. I could have just added "&& !(dialect & PPC_OPCODE_RAW)" to the
91079 this larger patch that reorders the extended insn pla to the more
91081 because we never disassemble to la.)
91097 libbfd's dependencies change, this macro will need to be updated
91098 manually with explicit additions to LDFLAGS and LIBS.
91100 This patch updates the check to use libtool instead.
91119 (gdb) UNTESTED: gdb.ada/start.exp: start failed to land inside the right procedure
91135 So, a short term fix would be to use = or == in the expression, based on
91136 the current language. If this was meant to be permanent, I would
91137 suggest adding something like an "equality_operator" method to
91139 language. But the goal is to replace all this with proper
91147 sim: igen: cleanup archaic pointer-to-long printf casts
91148 Use proper %p to printf a pointer instead of casting it to long and
91158 (gdb) UNTESTED: gdb.ada/start.exp: start failed to land inside the right \
91161 due to the fact that gdb_start_cmd doesn't handle a prompt as reaction to
91165 1m1s to 1s.
91172 With gdb 12.1, on powerpc64le I ran into ERRORs related to has_hw_wp_support
91177 While looking into these ERRORs and the commits that fix them, it occurred to
91188 I also noticed that in case we do an early exit due to !runto_main, we don't
91198 The python code maintains a list of threads for each inferior. This
91200 high, this implementation can begin to be a performance bottleneck as
91215 This patch proposes to change the linked list that keeps the per
91217 allows to have the search operation complexity be O(1) on average
91221 compared to 10 minutes without it.
91234 Investigating PR29272, it was mentioned a particular test used to work on
91235 GDB 10, but it started failing with GDB 11 onwards. I tracked it down to
91240 silently broken. It is hard to spot because it doesn't have any good tests
91241 for it, and the situation is quite specific to the Arm target.
91244 we could still invoke copy_insn_closure_by_addr correctly to return the
91245 pointer to a copy_insn_closure, but it always returned nullptr due to
91249 to PC and then save the copy_insn_closure pointer.
91251 The problem is that writing to PC for the Arm target requires figuring
91254 With no copy_insn_closure data, the logic to determine the thumb mode
91256 are difficult to track (SIGILL, SIGSEGV etc).
91259 and, for safety, add an assertion to
91262 future, it will be easier to spot.
91277 The test doesn't seem to test something specifically for C++,
91279 rn-dl-bind.exp.c to rn-dl-bind.exp.cc.
91286 C++11, and Clang, for instance, does not feel the need to follow it.
91305 Since Clang chooses to not add any debug information for base types,
91306 expecting it to be included with libraries' informations, gdb.cp/typeid.exp
91317 names to subprograms of those anonymous structs (for instance, the
91318 constructor). With these 2 things together, GDB is unable to refer to
91319 any of them, so there is no way to pass any of the tests of
91322 Since this isn't a bug on Clang or GDB according to the DWARF
91349 actually wrong with this output, so these tests were changed to test
91356 gdb/testsuite: add XFAIL to gdb.cp/derivation.exp when using Clang
91361 for more info). To help with Clang testing, an XFAIL was added to this
91380 parameter version, probably in an attempt to reduce the size of the
91384 another "continue" instruction is issued to account for this difference.
91391 When attempting to run the gdb.cp/classes.exp test using Clang++, the
91392 test fails to prepare with -Wnon-c-typedef-for-linkage like the
91421 This error happens because Clang does not add DW_AT_accessibility to
91422 typedefs inside classes, and without this information GDB defaults to
91433 When attempting to test gdb.cp/class2.exp using Clang, it fails to
91438 …ning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add …
91442 …db/gdb/testsuite/gdb.cp/class2.cc:54:2: note: type is not C-compatible due to this member declarat…
91445 …/../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:58:3: note: type is given name 'Dbase' for linkage…
91449 …ning: anonymous non-C-compatible type given name for linkage purposes by typedef declaration; add …
91453 …db/gdb/testsuite/gdb.cp/class2.cc:54:2: note: type is not C-compatible due to this member declarat…
91456 …/../binutils-gdb/gdb/testsuite/gdb.cp/class2.cc:58:3: note: type is given name 'Dbase' for linkage…
91460 UNTESTED: gdb.cp/class2.exp: failed to prepare
91473 original (physical) input file name.
91481 argument to SUBARCH(), so drop the wrong/redundant/dead 2nd one.
91486 This patch provides a new function to sanity check section sizes.
91494 that need to be read into a single buffer, to sanity check sizes
91501 * section.c (_bfd_section_size_insane): ..to here. New function.
91511 bfd_malloc_and_get_section to read contents of .MIPS.options.
91522 to ELFCOMPRESS_ZSTD. Latest gdb and lldb support ELFCOMPRESS_ZSTD.
91555 sim: v850: rename v850.dc to align with other ports
91559 The parser for boolean rules fails to skip over the , separator in
91570 sim: ppc: rename ppc-instructions to powerpc.igen
91571 To make it clear this is an input to the igen tool, rename it with an
91580 only be used with input/output instructions. Update i386_att_operand to
91581 set i.input_output_operand to true for (%dx) and issue an error if (%dx)
91588 (i386_att_operand): Set i.input_output_operand to true for
91605 [Switching to inferior 2 [<null>] (<noexec>)]
91615 [Switching to inferior 1 [<null>] (<noexec>)]
91638 1. We start inferior 2 with "run&", it runs very slowly, takes time to
91639 get to main
91640 2. We switch to inferior 1, and run "start"
91641 3. The temporary breakpoint inserted by "start" applies to all inferiors
91645 inferior-specific. However, we don't have a nice way to make
91646 inferior-specific breakpoints yet. It's possible to make
91651 code in the same program space. In that case, it would just not be
91652 possible to insert a breakpoint in one inferior but not the other.
91654 A simple solution that should work all the time is to add a condition to
91655 the breakpoint inserted by "start", to check the inferior reporting the
91668 to catch the bug, for instance if the scheduler decides not to schedule
91682 it was only supposed to change if the failure happened due to incomplete
91702 too narrow or width has been set to 'unlimited', then only a static
91718 that will come later. It was still possible to run to a breakpoint and
91722 a prepare_reinflate call, making it not possible anymore to event print
91723 the frame when stopping on a breakpoint. One thing to know about frame
91729 So, up to that prepare_reinflate call, frame 0's id was not computed,
91730 and prepare_reinflate, calling get_frame_id, forces it to be computed.
91736 will be possible to unwind with subsequent patches), we want to avoid
91737 prepare_reinflate to force the computing of the frame id, for the same
91740 In addition, frame 0's id is subject to change across a frame cache
91746 For this last reason, we also need to handle frame 0 specially in
91749 that frame to reinflate it. We should instead just re-fetch the current
91756 to represent "invalid frame level", for when the frame_info_ptr object
91760 frame level is not 0. It's fine to cache the frame id for the sentinel
91764 get_current_frame to get the target's current frame. Otherwise, use
91779 frame_info_ptr::prepare_reinflate, add the call to prepare_reinflate.
91781 possibly lead to the pretty printers being called, and the frame_info
91786 a function to rely on its callers to have called prepare_reinflate, if
91787 it intends to call reinflate.
91794 gdb: use frame_id_p instead of comparing to null_frame_id in frame_info_ptr::reinflate
91799 is always true, as comparing equal to null_frame_id is always false
91803 Replace the comparison with a call to frame_id_p.
91810 gdb: remove manual frame_info reinflation code in backtrace_command_1
91812 comparing to null_frame_id in frame_info_ptr::reinflate), I would get:
91827 This is because the code in backtrace_command_1 to manually reinflate
91849 frame_find_by_id, so reinflate will not do anything, it won't try to
91852 Fix that by removing the code to manually re-fetch the frame. That
91855 Note that the old code checked if we successfully re-inflated the frame
91859 happen, we'll need to find a solution to this problem globally
91861 propose to leave it like this, until it does become a problem.
91868 gdb: move frame_info_ptr method implementations to frame-info.c
91870 frame_info_ptr object are in the header file. It only seems to add some
91871 complexity. Since we can't include frame.h in frame-info.h, we have to
91873 moving the implementations to a new frame-info.c, we can avoid that.
91902 ... many frames to pretty print the arg, that eventually invalidate the frame_infos ...
91911 passed by value / copy). So info_frame_command_core needs to know that
91913 to prepare_reinflate/reinflate as well. Add those calls, and enhance
91914 the gdb.python/pretty-print-call-by-hand.exp test to test that command.
91922 We do it in the move assignment operator, so I think it makes sense to
91924 to clear the other object's fields (in other words, copy constructor and
91926 being transfered. The important thing is to leave the moved-from object
91939 compilers may not add complete information for given types as a way to
91946 GDB. To improve the user experience, we attempt to detect if the
91959 gdb/testsuite: allowed for function_range to deal with mangled functions
91961 if the function was printed using a C++ style mangled name. The current
91984 The idea here is the stop tools from allocating up to 32G per section
91985 for the arelent pointer array, only to find a little later that the
91990 recently I decided other targets ought to do the same.
92019 As this test was designed to check that GDB does not crash in the "step"
92020 command, the continue does not carry real meaning to the test.
92037 Nothing passes this to dgen, and even if it did, nothing would happen
92039 back to the original data table. So drop it to simplify.
92042 Since we know we'll return 0 by default, we don't have to output case
92063 This saves ~100 lines of code. Hopefully the compiler was already
92064 smart enough to optimize to the same code, but if not, this probably
92080 ld: Add module information substream to PDB files
92098 errors gracefully. Convert those to use the safe_* versions if available.
92100 This allows the code to handle those read errors in a more sensible way.
92161 This patch changes this condition so it evaluates to true if
92173 sim: igen: add missing newline to various error messages
92175 Most callers do this already, so adding it to the few that don't.
92179 were accidentally dropped (probably due to incorrect resolution of
92180 conflicts). Restore them since the ppc code utilizes them both.
92183 This controls only one thing: how to call mkdir(). The gnulib code
92185 punt the code entirely.
92201 I tracked this down to a hard-coded list of languages in typeprint.c.
92203 instead. If all languages are ever updated to have this feature, the
92224 includes the relevant source files directly and runs the code that
92226 never run. We leave the rules in place for people who need to test
92227 and debug the specific bits of code every now & then.
92237 For the testcase being extended, in order to not move around "GAS
92244 that is going to be deleted. bfd_close and bfd_close_all_done differ
92248 that are going to be deleted, call bfd_close_all_done instead.
92259 which all load to or store from fp registers.
92264 * testsuite/gas/riscv/x-thead-fmemidx-fail.l: Updated since rd need to
92270 * riscv-opc.c (riscv_opcodes): Updated since rd need to be float register.
92291 who are allocated 4 CPUs on a machine that has 40. The code in
92292 nat/linux-osdata.c fails to properly fetch the core number for each
92303 The way this the CPUs are exposed to the container is that the container
92314 The solution proposed in this patch is to find out the number of
92319 like the other files in that directory can have. The solution is to
92320 iterate over these numbers to find the highest possible CPU id, and
92321 use that that value plus one as the size of the array to allocate.
92330 I would like to add more code to nat/linux-osdata.c that reads an entire
92332 would like to avoid duplicating the somewhat error-prone code that reads
92333 an entire file to a buffer. I think we should have a utility function
92336 Add read_file_to_string to gdbsupport/filestuff.{c,h}, and make
92337 linux_common_core_of_thread use it. I want to make the new function
92340 char *`), change linux_common_core_of_thread to use std::string methods
92362 that we can connect to using gdb:
92403 prompt back, requiring us to do quit once more:
92433 valid, and having to type quit again seems pointless.
92438 "quit""), was to make sure that error (_("Not confirmed.") had effect.
92462 [gdb/testsuite] Remove test-case from test name
92493 due to find_core_file returning "".
92495 There is a core file name core:
92519 The intention of this code seems to be to indicate that this insn
92521 setting registers to bogus values, call Unpredictable. This fixes
92522 build warnings due to 32-bit/64-bit type conversions, and outputs
92532 to simplify the code.
92586 The switch to linking with libtool now shows a very long link line
92587 even when V=0. This patch arranges to silence libtool in this
92600 Previous commit in here forgot to include this.
92603 We've been using this only to set the default word size to 32. We
92608 We've been using this only to set the default word size to 32. We
92613 We've been using this only to set the default word size to 32. We
92618 We've been using this only to set the default word size to 64. We
92623 We've been using this only to set the default word size to 32-vs-64
92625 configure script to clean things up a bit.
92630 This patch changes the GDB build system in order to use libtool to
92631 link the several built executables. This makes it possible to refer
92632 to libtool libraries (.la files) in CLIBS.
92636 BFD now refers to ../libbfd/libbfd.la
92637 OPCODES now refers to ../opcodes/libopcodes.la
92638 LIBBACKTRACE_LIB now refers to ../libbacktrace/libbacktrace.la
92639 LIBCTF now refers to ../libctf/libctf.la
92642 to GDB. Among these, --enable-shared and --disable-shared, which were
92668 - Cross build for aarch64-linux-gnu built to exercise
92677 gdb/testsuite: use a more unique name in gdb.mi/mi-breakpoint-multiple-locations.exp
92678 I see failures in this test, due to the function name "add" being too
92690 Change the test to use a more unique name.
92699 target_post_attach just calls linux_init_ptrace_procfs to set the
92721 The install code was using $SUBDIRS to track all enabled arches. This
92722 works, but isn't great if we want to add a subdir that isn't an arch
92724 explicitly to track the list of enabled arches instead.
92730 1.4.0, leading to build errors when an older version is installed.
92732 This patch updates the check libzstd presence to check its version is
92733 >= 1.4.0. However, since gas seems to be the only component requiring
92741 intl, but they are unrelated to this patch.
92753 ld/testsuite: skip tests related to -shared when disabled
92754 Call the helper function "check_shared_lib_support" to ensure -shared
92756 This allows to catch custom targets explicitly disabling it.
92770 to *just* remove the conflict (not checking the ISA version).
92777 The purpose of this commit is to suppress unnecessary errors while parsing
92778 an ISA string and/or disassembling, not to allow hard-float with RVE.
92798 This doesn't matter right now, but it will as we add more flags to
92799 the recursive make step to pass state down.
92803 that we process that entirely in the top-level, we don't need to
92818 Luis' recommendation to mention the gdb versions here.
92824 update the readline library path to be relative to the top dir.
92826 sim: use libtool to install programs
92827 Now that we use libtool to link, we have to use it to install instead
92830 sim: bfin: move linux-fixed-code.h to top-level
92835 Automake will run each subdir individually before moving on to the next
92837 not run in parallel with anything else. When we have to link ~32 ports,
92840 to ~30 sec. We eventually want to move all compile+link steps to this
92849 This never worked before, but adding it to the common top-level dir
92850 is pretty easy to do now that we're unified.
92852 sim: build: move install steps to the top-level
92853 We still have to maintain custom install rules due to how we rename
92854 arch-specific files with an arch prefix in their name, but we can at
92857 sim: cris: move rvdummy linking to top-level
92861 sim: build: add SIM_HW_CFLAGS to top-level build too
92870 We use uppercase for other variables, and are already turning it to
92880 want this to be a configure option in the first place as all such usage
92886 runtime if it isn't used, so just enable it all the time to make
92887 the build code simpler.
92905 [testsuite] gdb.base/dlmopen: Fix test name and use gdb_attach
92906 One test name in gdb.base/dlmopen.exp changes from run to run
92911 This is not convenient do diff gdb.sum files to compare test runs.
92913 Fix by using gdb_attach helper function to handle attaching to the
92914 process as it produce a constant test name.
92916 While at it also check gdb_attach's return value to only run the
92923 PowerPC update comments for the MMA instruction name changes.
92925 pmxvi8ger4*, and pmxvi16ger2* instructions were officially changed to
92929 mnemonics. The name changes occurred in commit:
92953 This patch updates the comments in the various gdb files to reflect the
92954 name changes. There are no functional changes made by this patch.
92965 pmxvi8ger4*, pmxvi16ger2* instructions were officially changed to
92969 mnemonics. The name changes occurred in commit:
92995 patch updates the expected names in the test to match the values produced
92999 values to the instructions. The comment giving the name of the instruction
93001 with the new name. There are no functional changes in file
93008 "End of assembler dump" to determing the last address in the function. The
93013 Dump of assembler code for function foo:
93027 with .long following the blr instruction need to be ignored.
93029 This patch adds a new condition to the gdb_test_multiple "disassemble foo"
93030 test to ignore the lines with the .long.
93042 Update release documentation with regard to uploading gprofng docs
93046 gdb/testsuite: add KFAILs to gdb.reverse/step-reverse.exp
93047 Recent changes to gdb.reverse/step-reverse.exp revealed the latent bug
93049 native-gdbserver. This commit just adds kfails to the test.
93075 brought to my attention, and that is fixed in this commit.
93083 function, so I have just initialized the reason variable to "??".
93095 automake now to do it all for us. As a result, many of these vars
93099 or cgen outputs) were moved to the common automake build, and it takes
93105 Since we use AC_SEARCH_LIBS to find dlopen, we don't need to hardcode
93149 * i386-opc.tbl: Rename <xy> template for VEX insn with x/y suffix to <Vxy>.
93150 Rename <xy> for EVEX insn with x/y suffix to <Exy>.
93156 it allows backend to enable this feature and use '--gc-sections' simply.
93175 fix '@menu reference to nonexistent node `Hash tables''
93181 to link this when necessary, so we don't need to explicitly list it
93184 sim: build: change AC_CHECK_LIB to AC_SEARCH_LIBS
93186 change the AC_CHECK_LIB calls to AC_SEARCH_LIBS so we look in there
93190 COMMON_LIBS is set to $(LIBS), and CONFIG_LIBS is set to that plus
93191 @LIBS@. This leds to the values being used twice. Inline the
93194 sim: build: switch to bfd & opcodes libtool linker scripts
93195 Now that we use libtool to link, we don't need to duplicate all the
93198 sim: build: switch to libtool for linking
93201 happen when we (someday) move the building to pure automake.
93210 This test uses the test itself as an input to stating regular files.
93215 The old test would append argv[0] to find the file, while the new
93218 more, switch to a different file that we know will always exist:
93228 we're able to read the /bin/sh format before failing at a diff
93229 point in the cris code.
93231 Let's switch to using / instead since it'll fail for a similar
93237 We want to eventually delete this, so at least drop the empty ones.
93240 This is used to allow for dangling \ in object lists, but these are the
93241 only ports that do it, and it isn't really necessary. Punt it to keep
93245 The configure code always defaults to HARD_FLOATING_POINT, so inline
93250 sim: erc32: link sis to run program
93252 used to provide a run-compatible interface in the pre-nrun days, but
93259 the linking phase twice to produce the same result. If/when we fix up
93260 the erc32 port to have a proper run interface, it should be easy to
93272 * configure.tgt (ac_default_ld_warn_rwx_segments): Set to 0 for
93277 sim: v850: switch to standard (high-level) trace defines
93278 The v850 port uses -DDEBUG to control whether to enable internal tracing.
93280 can be controlled at build time via configure flags (which the v850 code
93281 currently cannot). So switch it over to WITH_TRACE_ANY_P to simplify the
93282 v850 build code even if it doesn't (yet) respect any other trace options.
93292 non-reproducible. Drop it to simplify & make reproducible.
93297 Clang up to version 15 (current) adds macros that were defined in the
93298 command line or by "other means", according to the Dwarf specification,
93302 and so we can't print them. This has been submitted as a bug to Clang
93304 macros/29034 was opened for GDB to keep track of this.
93306 Seeing as there is no expected date for it to be fixed, add a workaround
93309 that operation into a noop, so we keep a reference to the current_file
93312 A test case was added to confirm the functionality, and the KFAIL for
93320 …AVR Linker: Allow the start of the data region to be specified on the linker command line. [Fix P…
93326 AVR Linker: Allow the start of the data region to specified on the command line.
93334 sim: move common flags to default AM_CPPFLAGS
93341 This also changes the object output names, so we have to tweak the
93347 We aren't using this just yet, but we will, so make it available to
93352 never will, so there's no real need to keep them. This will let
93354 will in turn make it easier to move more compile steps there.
93365 instances of ';' with '@' in expected diagnostics, leading to tests
93375 In order to merge more common/ files into the top-level, we need to
93376 add more host flags to CPPFLAGS, and that conflicts with our current
93378 other build flags to avoid the issue.
93380 sim: h8300: switch to cpu for state
93384 sim: common: change sim_{fetch,store}_register helpers to use void* buffers
93385 When reading/writing arbitrary data to the system's memory, the unsigned
93386 char pointer type doesn't make that much sense. Switch it to void so we
93387 align a bit with standard C library read/write functions, and to avoid
93388 having to sprinkle casts everywhere.
93393 Update code under __CYGWIN__ which accesses inferior process information
93410 Prior to commit 1cb0ab18ad24 ("x86/Intel: restrict suffix derivation")
93412 No_ldSuf would have prevented it being accepted. Due to the special
93413 nature of LONG_DOUBLE_MNEM_SUFFIX said commit, however, has led to these
93456 when it has the same address of $d. Try to add the removed $x+arch back
93461 (riscv_remove_mapping_symbol): Removed and moved the code into the
93663 * i386-dis-evex.h: Fold AVX512IFMA entries to AVX-IFMA.
93666 CPU_ANY_AVX_IFMA_FLAGS. Add CpuAVX_IFMA to CPU_AVX2_FLAGS.
93680 opcodes/arm: don't pass non-string literal to printf like function
93688 introduced two places where a register name was passed as the format
93689 string to the disassembler's fprintf_styled_func callback. This will
93712 The problem is in print_mve_unpredictable, and relates to the reason
93717 argument to the print_mve_unpredictable function.
93722 for this argument to take an invalid value.
93725 proposed solution is to initialize the reason variable to the string
93780 However, in the first instruction, the '%d' is used to print a
93782 second instruction the '%d' is used to print an immediate, notice the
93785 We have two problems here, first, the '%d' needs to know if it should
93787 characters also need to be styled appropriately.
93792 can print a register name, a shift type, and a shift amount, this
93797 I propose a three layer approach to adding styling:
93807 character, the base_style will change to text. When we encounter
93808 the first '@' the base_style will change to comment_start.
93816 For operands that only have a single meaning, or which expand to
93818 will simply update the operand printing code to print the operand
93821 added to previous architectures.
93826 new extension to the assembler syntax. This extension will allow
93827 me to temporarily change the base_style. Operands like '%d', will
93837 character changes to indicate a different style. In the first
93838 instruction I use '%{R:...%}' to change base_style to the register
93839 style, and in the second '%{I:...%}' changes base_style to
93846 The function decode_base_style maps from character to style. I've
93850 I have updated arm-dis.c to the above scheme, and checked all of the
93855 were two binutils tests for which I needed to force the disassembler
93867 Looking at the ARM disassembler output, every comment seems to start
93868 with a ';' character, so I assumed this was the correct character to
93873 ';', and proposed a patch to add the missing ';' characters.
93896 Why this matters is that, in the next commit, I would like to add
93909 I think the only sensible answer is to move the disassembler to use
93913 Then, in the next commit, it's obvious what to do.
93916 the only actual code changes are in opcodes/arm-dis.c.
93924 Add missing TYPE_CODE_* constants to Python
93931 Remove REPARSE condition to force hardware resource checking when updating watchpoints
93933 watchpoint resource checking in update_watchpoint needs to be redone on
93934 each call to function update_watchpoints as the value chain may have
93938 watch command is issued, only two addresses need to be watched as
93940 **global_ptr_ptr is initialized the locations to be tracked increase to
93942 REPARSE set to 1 to force the resource checking to be redone. When the
93944 routine tries to setup the three hardware watchpoint address since the hw
93955 4 next execute source code: buf[0] = 3;
93956 5 next execute source code: global_ptr = buf;
93957 6 next execute source code: buf[0] = 7;
93960 9 next execute source code: buf[1] = 5;
93965 in breakpoint.c with REPARSE set to 1. The function update_watchpoint
93966 calls can_use_hardware_watchpoint to see if there are enough
93967 resources available to add the watchpoint since REPARSE is set to 1. At
93982 loc 4: b->address = 0x0 <-- location pointed to by global_ptr_ptr
93987 In step 10, the next command executes the source code
93988 global_ptr_ptr = &global_ptr. This changes the set of locations to be
94010 update_breakpoint was called with REPARSE equal to 0.
94014 call to setup each of the three address for breakpoint 4. The slot
94020 update_watchpoint to force the resources to be rechecked on every call to
94021 the function. This ensures that any changes to the val_chain resulting
94036 System call 317 on PowerPC maps to the pipe2 system call.
94046 x86: minor improvements to optimize_imm() (part III)
94048 "anyimm" static variable. Instead of using it in the loop to mask
94049 "allowed" (which is necessary to satisfy operand_type_or()'s assertions)
94050 simply use "mask", requiring it to be calculated first. That way the
94065 sim: common: change sim_read & sim_write to use void* buffers
94066 When reading/writing arbitrary data to the system's memory, the unsigned
94067 char pointer type doesn't make that much sense. Switch it to void so we
94068 align a bit with standard C library read/write functions, and to avoid
94069 having to sprinkle casts everywhere.
94078 5039 | as_warn (_("only support RIP-relative address"), i.tm.name);
94087 This changes gdbarch to use an enum for call_dummy_location, providing
94091 This changes gdbarch to use the "predefault" to initialize its members
94093 to avoid a use of "gdbarch" during initialization, but on the whole I
94098 Fix regression in pointer-to-member printing
94102 I tracked this down to a bug introduced by commit 6b5a7bc76 ("Handle
94104 commit, the C++ code to print a member pointer would wind up calling
94120 * config/tc-i386.c (load_insn_p): Use prefetch* to fold all prefetches.
94153 gdb/testsuite: fix gdb.cp/converts.exp to run with clang
94154 Clang attempts to minimize the size of the debug-info by not adding
94157 class B in the test gdb.cp/converts.exp. To fix this, we just need to
94164 gdb/testsuite: add XFAIL to gdb.cp/ptype-flags.exp when using clang
94169 for more info). To help with Clang testing, an XFAIL was added to this
94178 objdump: Add configure time option to enable colored disassembly output by default.
94189 ld: Add publics stream to PDB files
94191 ld: Add section header stream to PDB files
94206 Fuzzers have found a weakness in the code stashing pool section
94208 than each index pointing to its own set distinct from other sets),
94209 it's possible to overflow the space allocated, losing the NULL
94245 an uninitialized value is passed to translate_endian_h2t function.
94247 Although this behavior is harmless, this commit adds initialization to avoid
94253 Clang generates a warning if an argument is passed to a function without
94260 "sim/erc32: Use int32_t as event callback argument", it would be better to
94261 fix it now to prevent problems in the future.
94263 To fix the issue, this commit makes struct irqcall to use int32_t as a
94269 Clang generates a warning if an argument is passed to a function without
94275 To fix that, this commit makes struct evcell to use int32_t as a callback
94288 This commit replaces () with (void) to avoid this warning.
94296 (gdb) PASS: gdb.server/multi-ui-errors.exp: connect to gdbserver
94304 The problem is that the target board uses ssh -T, which fails to guarantee
94308 ensures using ssh -t. [ It would be nice to define an ssh base board to
94366 Consume the continue output asap, to make it clear when the continue is issued:
94368 (gdb) PASS: gdb.server/multi-ui-errors.exp: connect to gdbserver
94411 The author started to define HAVE_DECL_GETOPT in sim with the commit
94414 special purpose macro defined to declare only getopt function but due
94415 to include path (not tested while configuration), it causes <unistd.h>
94416 to include Libiberty's "include/getopt.h".
94417 3. If both 1. and 2. are satisfied, despite that <unistd.h> tries to
94422 best solution to avoid hacking but as a short-term solution, this commit
94437 * objcopy.c (copy_archive): Free l->name.
94442 objcopy copy_object may omit the call to bfd_copy_private_bfd_data for
94453 (changed back to $x), always generate them at the start of the sections.
94476 Convert compunit_language to a method
94477 This changes compunit_language to be a method on compunit_symtab.
94486 to display actual unused bits (excluding non-instruction bits).
94498 modify validate_riscv_insn function to prevent unexpected behavior by
94499 limiting the "length" of an instruction to 64-bit (or less).
94505 length up to 64-bit for now. Make sure that required_bits does
94514 switch to using true/false at the function call sites.
94537 initializes the local variable buff to NULL first in all cases.
94542 buff with NULL to avoid build failure caused by a GCC's false
94549 structure given to the libipt btrace decoder.
94556 include: Define macro to ignore -Wdeprecated-declarations on GCC
94557 "-Wdeprecated-declarations" warning option can be helpful to track
94558 deprecated function delarations but sometimes we need to disable this
94566 to assume GCC >= 4.6 (with "GCC diagnostic push/pop").
94589 (need_arch_map_symbol): New boolean, used to indicate if .option
94591 (make_mapping_symbol): New boolean parameter reset_seg_arch_str. Need to
94594 (riscv_mapping_state): Decide if we need to add $x+arch for MAP_INSN. For
94597 not add $x+arch for code alignment, since rvc for alignment can be judged
94603 (riscv_check_mapping_symbols): Don't need to add any $x+arch if
94604 need_arch_map_symbol is false, so changed them to $x.
94608 (riscv_elf_final_processing): Call riscv_release_subset_list to release
94611 (riscv_write_out_attrs): No need to call riscv_arch_str, just get arch_str
94616 * testsuite/gas/riscv/mapping.s: New testcase, to test most of the cases in
94625 * riscv-dis.c (riscv_disassemble_insn): Set riscv_fpr_names back to
94627 for some specfic code region.
94719 fields we intend to use, rather than zero just initializing the unused
94727 I noticed an address in a test name:
94733 Stabilize the test name by using "set breakpoint on address" instead.
94743 board local-remote-host.exp") to local-remote-host-native.exp.
94768 -re "DOSEXIT code" { }
94781 Fix this by adding a gdb_expect clause to parse the exit:
94807 What seems to be happening is that default_gdb_exit sends a cli interpreter
94808 quit command to an mi interpreter, after which again expect just waits for the
94811 Fix this by adding mi_gdb_exit to the end of the test-case, as in many other
94829 During startup program exited with code 126.^M
94835 action=delete: connection to GDBserver succeeded
94839 think they're relevant to the problem):
94844 - connect to gdbserver
94849 - connect to gdbserver
94876 …c:4256:30: error: operand of ‘?:’ changes signedness from ‘int’ to ‘unsigned int’ due to unsignedn…
94891 temporary file on disk that is read back and written to the output
94893 due to the error. Avoid some of this silliness.
94896 set output section size to zero.
94900 tests: use canonical option name
94903 * testsuite/ld-size/size.exp: Use canonical option name.
94908 Fix these fails due to the target padding out sections with nops.
94917 Re: ld/testsuite: adjust ld-arm to run shared tests only when supported
94919 thumb-plt and thumb-plt-got for nacl. The first fails due to trying
94920 to link against mixed-lib.so which isn't compiled for nacl. The last
94950 Error while executing Scheme code.
94957 Error while executing Scheme code.
94960 do not. Change the pattern to accept both outputs. This is similar to
94974 Exception Secure. The security domain the exception was taken to.
94997 2. If exception entry requires a transition from Secure state to
95005 But another test of exception_domain_is_secure (negated due to the
95006 first bug) prevents arm_unwind_secure_frames to work as expected:
95008 /* Unwinding from non-secure to secure can trip security
95009 measures. In order to avoid the debugger being
95010 intrusive, rely on the user to configure the requested
95028 Backtrace stopped: previous frame inner to this frame (corrupt stack?)
95038 warning: Non-secure to secure stack unwinding disabled.
95041 The exception from secure to secure erroneously stops unwinding. It should
95045 (gdb) si <-- used to rebuild frame cache after change of unwind-secure-frames
95055 Backtrace stopped: previous frame inner to this frame (corrupt stack?)
95057 Set exception_domain_is_secure to the value expected by its name.
95075 PC of some frame next to the outer one, but we cannot analyze
95079 The frame unwinder possibly gets mad due to the wrong SP value.
95096 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
95122 Should be functionally the same, but uses more pythonic idioms to get
95123 fewer lines of code, and to make sure to not leak open file handles.
95131 to what this does without it going and modifying the tree.
95134 The current logic limits itself to a maxdepth of 4 when looking for
95137 than bump the number from 4 to 5, rework the code so that we gather
95138 the exact set of tests that we tried to run.
95151 The external reloc size check was wrong. Here asect is the code/data
95153 the code/data section.
95171 using bfd_reloc_offset_in_range it is necessary to set the reloc howto
95178 to my SOM reference). I figure it doesn't matter since any unhandled
95179 reloc is converted to 0xff R_RESERVED, and a default of zero is better
95182 Besides tidying the code, stringizing name from type in SOM_HOWTO
95183 fixes R_REPEATED_INIT name.
95186 to name.
95195 leading to large som_reloc_skip output.
95221 option (--disable-separate-code). Since 9833b775
95224 security issues, x86 keep COMMONPAGESIZE relro") to its revert
95228 But that means that a linker configured with --disable-separate-code
95229 behaves different from one configured with --enable-separate-code
95230 (the default), _even if using "-z {no,}separate-code" option to use
95232 configuring with --disable-separate-code the linker will produce
95233 binaries aligned to 2MB pages on disk, and hence generate 2MB
95235 "-z separate-code").
95243 --disable-separate-code). If people need more they can use the
95253 gdb/testsuite: make sure to consume the prompt in gdb.base/unwind-on-each-insn.exp
95264 sometimes due to the trailing .*, but not always. If the prompt is not
95272 Use -wrap to make gdb_test_multiple consume the prompt.
95274 While at it, remove the bit that consumes the command name and do
95276 same changes to the gdb_test_multiple that consumes the stack address,
95304 $ for f in $(find gdb/testsuite/gdb.* -name *.S); do
95313 The idiom for arm seems to be to use %progbits instead, see commit 9a5911c08be
95315 hand-edit gdb/testsuite/gdb.arch/arm-disp-step.S to use %progbits instead.
95329 switch to inferior 2
95332 ERROR: tcl error code NONE
95346 I wrote this as a macro in order to have the rethrowing throw be part of the
95356 Commit f34652de0b ("internal_error: remove need to pass
95357 __FILE__/__LINE__") renamed the internal_error function to
95366 so we should reset 'again' flag to true for _bfd_riscv_relax_pc, while the
95370 * elfnn-riscv.c (_bfd_riscv_relax_pc): Set `again' to true while the
95378 for each relocation. Compared to microblaze port, they record the relaxation
95383 To improve the link time complexity, this patch try to make the deletion in
95384 linear time. Compared to record the relaxation changes into a table, we
95390 table by values, then probably can reduce the time complexity to O(m*n*log(n))
95395 riscv_relax_delete_bytes, updated to reduce the tiem complexity to O(m)
95398 (riscv_relax_delete_bytes): Can choose to use _riscv_relax_delete_piecewise
95412 (_bfd_riscv_relax_align): Updated, don't need to resue relocation since
95416 to delete bytes immediately or later. Call riscv_relax_resolve_delete_relocs
95417 to delete bytes for DELETE relocations from a section.
95436 The lm32 simulator has a weird header structure, in order to pull in
95437 the full cpu.h header we need to define WANT_CPU_LM32BF. This is done
95445 undeclared, these functions appear to be missing any declarations at
95446 all, so I've added some to cpu.h.
95450 Makefile.in, this allows lm32 to build with -Werror.
95456 to itself. Clang gives a warning for this, which is converted into an
95460 assignments were in a complex if/then/else tree, rather than try to
95475 In the ppc simulator, clang was warning about some code like this:
95484 PPC_ONE_BIT_SET_P is going to be 0 or 1, so if we evaluate the '+'
95486 expression could then be simplified to just '1', which doesn't make
95494 I have no clue, however, to keep the structure of the code unchanged,
95495 I've updated things to:
95506 call for the simulator, if the fstat is going to fail then we
95517 successful call (except for the error code).
95519 So, in this commit, I initialize the stat buffer to zero before
95525 sim/ppc: don't try to print an uninitialized variable
95526 The ppc simulator, in sim_create_inferior, tries to print the function
95568 ld/testsuite: adjust ld-arm to run shared tests only when supported
95571 Moreover, some tests try to access libraries which have been explicitly
95585 to skip for all targets without shared lib support.
95638 update the config/ & lib/ exceptions to cover both paths.
95649 to %P to get "aarch64/allinsn.exp".
95657 shouldn't be doing that, but until we can rework the sim to change
95658 behavior based on the input ELF, restore AC_CANONICAL_SYSTEM to
95663 hoisted up to the common code. But the fact the vars weren't
95664 passed down to the sub-configure scripts was missed.
95675 This test sends my CI in an infinite loop of failures. We expect to
95677 test passes fine)but the log shows that it went up to 104340 iterations:
95685 This should allow the test to fail fast if there's a problem, but 100
95697 - avoid "GDB proper" to refer to global locus, as object files and
95710 Small cleanup to use std::vector iterators rather than raw pointers.
95727 …/binutils-gdb/gdb/dwarf2/read.c:11954:47: runtime error: applying non-zero offset 8 to null pointer
95729 I found this to happen with ld-linux on at least Arch Linux and Ubuntu
95736 …/binutils-gdb/gdb/dwarf2/read.c:11954:47: runtime error: applying non-zero offset 8 to null pointer
95776 declaration". I think gdb still needs to recurse into these types,
95790 occasionally useful to print things in C mode when working in a non-C
95795 to extract a value from a bit offset and width.
95797 The new function includes a hack to avoid problems with some existing
95798 test cases when using -fgnat-encodings=all. Cleaning up this code
95800 it made sense to simply work around the problems.
95812 This patch fixes the problem by adding a flag to indicate whether a
95818 Move variable declarations to where they are first use, plus some random
95825 Add a -w option to the linker to suppress warning and error messages.
95836 Add a note to the binutils/NEWS file about DCO signed contributions.
95841 Currently, when using GDB to do reverse debugging, if we try to use the
95842 command "reverse next" to skip a recursive function, instead of skipping
95844 the second to last recursive call, and need to manually step backwards
95853 current frame-id to the breakpoint.
95855 This commit also changes gdb.reverse/step-reverse.c to contain a
95856 recursive function and attempt to both, skip it altogether, and to skip
95864 available for unwinding, GDB defaults to the amd64 epilogue unwinder, to
95865 be able to generate a decent backtrace. However, when calculating the
95869 This was an issue especially when attempting to reverse debug, as GDB
95871 we were to attempt to skip that function, and this breakpoint should
95872 ideally have the current function's frame_id to avoid other problems
95878 It also adds a test to confirm that the frame_id will be the same,
95879 regardless of using the epilogue unwinder or not, thanks to Andrew
95887 * po/hu.po: Updated Hungarian translation.
95892 Similarly to booleans and following the fix for PR python/29217 make
95896 one might expect to be able to feed it back. It also makes it possible
95897 to avoid the need to know what the internal integer representation is
95908 types, in addition to PARAM_ZUINTEGER and PARAM_ZUINTEGER_UNLIMITED
95911 to `gdb.parameter('<parameter>')' as this covers different code paths.
95924 Error while executing Scheme code.
95945 failed to compile (-static-pie not supported or static libc missing)
96010 operands to avoid vector Disp8 with VEX encoding.
96036 This commit is similar to the previous one, and fixes the second
96041 breakpoint_object_type must have been initialized with a call to
96044 Previously we depended on the ordering of calls to
96075 replaced by explicit dependencies, which will allow me to, I think,
96080 Rather than depend on the calls to these two functions being in a
96096 gdb: some int to bool conversion in breakpoint.c
96097 Some int to bool conversion in breakpoint.c. I've only updated the
96110 return type from int to bool.
96122 I was doing some int to bool cleanup in update_watchpoint, and I
96127 This commit updates things to use scoped_restore_selected_frame, and
96128 also converts a local variable from int to bool.
96133 invisible to the user.
96161 flavors will be picked by default. That way the need to always use {vex}
96162 ceases to exist once respective CPU features (AVX512-VNNI or AVX512VL as
96201 Fix this by passing -prompt "$mi_gdb_prompt$" to gdb_test_multiple.
96239 It's also been tested (and found to be working) with
96244 I also tried to make this test work on FreeBSD 13.1. While I think I
96246 which occurs when attempting to run the main program which has been
96247 set to use the fake/pretend RTLD as the ELF interpreter:
96249 ELF interpreter /path/to/rtld-step-rtld not found, error 22
96252 to be needed for FreeBSD (though since I never got it to work, I
96255 a #if 0; you'll need to enable them if you want to try to make
96263 application programmer doesn't normally want to see symbol resolution
96264 code when stepping into a function that hasn't been resolved yet.
96266 But someone who wishes to debug the runtime loader / dynamic linker
96267 might place a breakpoint in that code and then wish to debug it
96268 as normal. At the moment, this is not possible. Attempting to step
96269 will cause GDB to internally step (and not stop) until code
96270 unrelated to the dynamic linker is reached.
96272 This commit makes a minor change to infrun.c which allows the dynamic
96273 loader / linker to be debugged in the case where a step, next, etc.
96274 is initiated from within that code.
96306 Regen ld/po/BLD-POTFILES.in
96337 internal_error: remove need to pass __FILE__/__LINE__
96343 The need to pass in explicit __FILE__/__LINE__ is there probably
96349 So this patch renames the internal_error function to something else,
96387 I've silenced these warnings by casting buf to 'unsigned char *'.
96425 passing through a call to device_error, which obviously means the
96431 sim/ppc: fix warnings related to printf format strings
96432 This commit is a follow on to:
96437 sim/ppc: fixes for arguments to printf style functions
96440 arguments that were causing the compiler to give an error, this commit
96441 addresses issues that caused the compiler to emit a warning.
96443 This commit is mostly either changing the format string to match the
96461 initialize the nr_cpus entries which we will later go on to use.
96464 entries in engine_fns to NULL, this might also help if anyone ever
96476 arrange to pass --synthetic to nm, and extract .main and .fn
96489 inserters_extractors-2.txt to be created in build/gdb/testsuite/
96501 I initially proposed just using GDB's 'cd' command in unittest.exp to
96502 switch to the test output directory before running the selftests,
96506 result, our clever core file spotting logic would fail to spot the
96516 The new proc temporarily switches to $directory and then runs the
96520 Additionally, after switching back to the previous cwd, we check that
96522 prior to restoring the previous directory, and left the core file in
96524 will be emitted, this should be enough to alert the user that
96538 This appears to be caused by a missing '$' character. We setup a
96549 bfd: fix undefined references to aarch64_pe_le_vec
96559 but in Makefile.in a critical reference to pe-aarch64.lo was missing.
96566 Allows aarch64-pe to be targeted natively, not having to use objcopy to convert it from ELF to PE.
96598 is a good thing. Hence we now issue an error to detect such problems.
96605 wasn't the intent. And I don't think it ever makes sense to do so.
96607 To catch these, change the assert in reggroups::add to check for
96608 duplicate names. It's no longer necessary to check for duplicate
96610 by the duplicate name check.
96624 * i386-gen.c (cpu_flag_init): Add CpuAVX_VNNI to
96630 Remove dead code from py-finishbreakpoint.c
96631 PR python/16324 points out that comparing a frame id to null_frame_id
96632 can never succeed, and proposes simply removing the dead code. That
96639 Update tests to use skip_hw_watchpoint_tests to test for HW watchpoint support.
96646 Power 9. The test skip_hw_watchpoint_tests must be used to correctly
96651 Test gdb.base/watch-vfork.exp runs with can-use-hw-watchpoints set to
96652 true and false. When the test is run with can-use-hw-watchpoints set to
96653 true, gdb just falls back to using software watchpoints. The
96655 only runs once with can-use-hw-watchpoints set to false.
96660 runs the test using software breakpoints. Previously the pass to use
96665 are supposed to execute the gdb command "set can-use-hw-watchpoints 0" if
96667 was not being executed and gdb was falling back to using software
96684 The following two tests are not supported on the Power 9 system used to
96718 Remote target failed to process qGetTLSAddr request^M
96776 Update gdb/testsuite/boards/README to reflect recent commit c4c8c27263d
96783 When looking up names, GDB needs to stay within one linker namespace to
96784 find the correct instance in case the same name is provided in more than
96787 Modify svr4_iterate_over_objfiles_in_search_order() to stay within the
96792 For objfiles that do not have a corresponding so_list to provide the
96800 global symbols, which may result in xfers to read auxv for determining
96804 target to read AUXV in order to determine the debug base for SVR4
96814 to handle copy relocations but it now causes a wrong address to be
96828 to use gdbarch_iterate_over_objfiles_in_search_order() in order to
96829 restrict the objfile traversal to the initial namespace.
96831 In order to extend this to other namespaces, we'd need to provide context,
96841 where we may have multiple instances of global symbols with the same name
96845 Further, change the objfiles iteration into a call to
96847 initial linker namespace, where we expect "main" to be located.
96853 to impact of linker namespaces.
96859 There appear to be no calls to this function. Remove it.
96885 compares their name or build id to the user-provided search string.
96889 gdbarch_iterate_over_objfiles_in_search_order to only consider the
96890 namespace of gdb.current_objfile() for the search, which defaults to the
96897 unlink the first objfile with the same name as the one we compiled.
96899 Since we already store a pointer to that objfile in the module and use it
96900 to get the name we're comparing against, there's no reason to iterate, at
96903 This further avoids potential issues when an objfile with the same name is
96908 gdb, gdbserver: extend RSP to support namespaces
96913 to be used together with start and prev to provide the namespace of start
96914 and prev to gdbserver.
96923 to provide the namespace of a library entry to GDB.
96935 When listing SVR4 shared libraries, special care has to be taken about the
96936 first library in the default namespace as that refers to the main
96940 Move that code from where we enumerate libraries inside a single namespace
96941 to where we generate the rest of the library-list-svr4 element. This
96942 allows us to complete the library-list-svr4 element inside one function.
96956 If r_version is 2, struct r_debug is extended to struct r_debug_extended
96960 Link to the next r_debug_extended structure. Each r_debug_extended
96964 1. Change solib_svr4_r_map argument to take the debug base.
96965 2. Add solib_svr4_r_next to find the link map in the next namespace from
96967 3. Update svr4_current_sos_direct to get the link map in the next namespace
96971 5. Update svr4_same to check the load offset in addition to the name
96972 6. Update svr4_default_sos to also set l_addr_inferior
96974 namespace's r_debug address to identify the namespace.
96976 Add gdb.base/dlmopen.exp to test this.
96980 patches will extend RSP to allow listing libraries grouped by namespace.
97005 Reverting to original interface.
97015 Since I failed to do so, correct this now.
97018 AMX-TILE is a prereq to these, as already correctly expressed by
97030 when I switch to GCC 12. This patch arranges to kfail the test when
97033 I tested this with GCC 11, 12, and 13. I'm going to check it in.
97045 to what's in the tree, like:
97063 space removed, running ./gdbarch.py generates the exact code that's in
97073 new DWARF reader it pointed to a different CU than was chosen by
97078 it's possible to always choose the lower-numbered CU among duplicates,
97089 This patch partially fixes the problem. It arranges for Ada names to
97090 be encoded in the form expected by the index code. In particular,
97091 linkage names for Ada are emitted, including the "main" name; names
97099 Don't add type linkage names to cooked index
97100 The compiler will sometimes emit a linkage name for a type, like:
97109 Fix regression in c-linkage-name.exp with gdb index
97110 c-linkage-name.exp started failing with the gdb-index target board due
97111 to an earlier patch. The problem here is that some linkage names must
97113 This patch updates the code to exclude only these.
97118 Since "NULL" and "0" are used to represent invalid address in function
97120 them to "nullptr".
97124 gdb: silence unused-but-set-variable warning about yynerrs in cp-name-parser.y
97127 CXX cp-name-parser.o
97128 …cp-name-parser.c.tmp:1777:9: error: variable 'cpnameyynerrs' set but not used [-Werror,-Wunused-bu…
97155 yynerrs is defined in yyparse and is there for actions to use. Since
97156 the actions in cp-name-parser.y don't use it, we get a warning. We see
97178 can lead to unexpected errors when mandaratory flags are defined in
97221 rather than as part of the match. This makes it impossible to
97237 These require EVEX.W=0. Use %XS to facilitate the checking, even if for
97263 This patch changes a few more uses of static_cast to use
97264 checked_static_cast. In this patch, cast-to-references are converted
97272 converted many of them to checked_static_cast.
97281 section did not cause SHF_PPC_VLE to be set. ie. both testcases added
97282 by this patch fail without the changes to tc-ppc.c here.
97305 zlib-gabi to zstd woes
97307 zstd, so much so that it was better to leave the section
97314 Also, if the section is to be left uncompressed, the input
97315 SHF_COMPRESSED flag needs to be reset otherwise objcopy will copy it
97316 to output.
97318 Finally, bfd_convert_section_contents needed a small update to handle
97324 compress_status to COMRESS_SECTION_NONE, and clear
97339 gdb/arm: Don't rely on loop detection to stop unwinding
97340 Setting SP of the next frame to the same address as the current frame
97341 is an ugly way to stop the unwinding. A cleaner way is to rely on
97342 the frame_unwind_stop_reason function to return UNWIND_OUTERMOST.
97351 Add a file gdb/testsuite/boards/README, to make it easier to get a high-level
97357 Handle new environment variable STRIP_ARGS_STRIP_DEBUG, defaulting to
97366 For completeness sake and to avoid confusion about which of the two used strip
97367 invocations the passed args apply to, likewise add STRIP_ARGS_KEEP_DEBUG,
97368 defaulting to --only-keep-debug.
97382 warning: Unable to find dynamic linker breakpoint function.^M
97383 GDB will be unable to debug shared library initializers^M
97384 and track explicitly loaded dynamic code.^M
97392 bfd_get_section_contents is called to read .interp, but fails. The function
97396 Fix this by checking the result of the call to bfd_get_section_contents.
97436 local-remote-host-notty.exp we occasionally run into a silent out, due to
97457 Typically, this results in the test-case taking more than two minutes to run.
97465 opposed to -t which forces pseudo-tty allocation):
97471 Connection to 127.0.0.1 closed.
97473 and according to https://stackoverflow.com/a/63241102 the behaviour we're
97474 seeing is specific to using '-T'.
97485 - adding -iex "set editing off" to GDBFLAGS in local-remote-host-notty.exp
97487 This results in the test-case taking just 6 seconds to run.
97502 continue to main
97513 We could try to make some generic way to set TERM on the host, but for the
97514 purposes of this test-case it seems sufficient to just add:
97526 straightforward ones to use scoped_value_mark instead.
97533 When it's impossible to read the FPCCR and XPSR, the unwinding is
97534 unpredictable as the it's not possible to determine the correct
97536 The only sane thing to do in this condition is to stop the unwinding.
97543 A problem internal to GDB has been detected,
97569 disassemble to the extended insn sub form rather than the underlying
97573 way to disassemble identical bytes back to different and original
97574 source. Instead change the test to check -Mraw results.
97581 to evnot.
97599 I can tell, LSP and SPE are mutually exclusive. This seems to be
97602 ppc_opts ought to have both PPC_OPCODE_LSP and PPC_OPCODE_SPE/2, if we
97603 want disassembly to work. I also could not find anything to suggest
97607 Fix all this by moving the LSP insns to their own table, and add a new
97610 have LSP. Others have SPE. It's hard to choose good options. Think
97611 of z2 as meaning earlier, z4 as later.) Also add -mlsp to allow
97620 * config/tc-ppc.c (ppc_setup_opcodes): Add lsp opcodes to ppc_hash.
97635 (vle_opcodes): Move LSP opcodes to..
97695 Fix the compilation by adding -static to the compilation flags.
97712 UNTESTED: gdb.base/infoline-reloc-main-from-zero.exp: failed to compile
97719 $ find gdb/testsuite -name *.exp | xargs grep additional_flags.*Wl
97727 Compilers default to either PIE or no-PIE executables.
97729 In order to test PIE executables with a compiler that produces non-PIE by
97731 of the target board to "-fPIE -pie".
97738 gdb_compile_shlib to compile with -fPIC. This is taken care of by running the
97742 current approach is to do the compilation hoping for the best, and if we find
97744 out with the standard error message "nopie failed to prevent PIE executable".
97747 just noisily refuse to compile:
97769 Add a new proc cond_wrap, that can be used to replace the repetitive:
97790 gdb: add Torbjörn Svensson to gdb/MAINTAINERS
97794 RISC-V: Zicbo{m,p,z} adjustments to riscv_multi_subset_supports_ext()
97795 The lack thereof did caused gas to issue "internal: unreachable
97796 INSN_CLASS_*" errors when trying to assemble respective insns without
97809 GNU Binutils has no direct way whether the program has dependency to the
97831 Before changing the core disassembler, we take care of minor code clarity
97845 Before changing the core disassembler, we take care of minor code clarity
97858 Before changing the core disassembler, we take care of minor code clarity
97865 * riscv-dis.c (no_aliases) Change type to bool.
97873 Before changing the core disassembler, we take care of minor code clarity
97876 This commit takes care of improper spacing for code clarity.
97885 Before changing the core disassembler, we take care of minor code clarity
97888 First, we need to clarify the roles of variables and code portions.
97904 This commit adds "fp" (x8 or s0) to dw-regnums.{s,d}.
97918 to improve maintainability.
97927 RISC-V: Move certain arrays to riscv-opc.c
97932 * opcode/riscv.h (riscv_rm, riscv_pred_succ): Move declarations to
97954 test uses the test [target_info exists gdb,no_hardware_watchpoints] to
97956 only examines the processor type to determine if it supports hardware
97961 Power 9. The test skip_hw_watchpoint_tests must be used to correctly
97970 The patch has been tested on Power 9 to verify the test only runs with
97972 no regression failures. The test fails on Power 10 due to an internal GDB
97973 error due to resource management. The resource management issue will be
97997 This is similar to what was fixed in commit a5ac8e7fa3b
98001 Fix this in the same way, by using _op_offset to emit the debug_line offset.
98016 entry-value-typedef.cpp:38: Error: bad register name `%rbp'^M
98062 so the trailing whitespace is translated by split to empty bytes, and the
98082 no_hardware_watchpoints] to determine if the processor supports hardware
98083 watchpoints. The check only examines the processor type to determine if
98088 Power 9. The test skip_hw_watchpoint_tests must be used to correctly
98119 'vox' has unknown type; cast it to its declared type^M
98126 - the executable contains some dwarf2 due to some linked-in glibc objects,
98149 Silence the warning by passing quiet to gdb_compile. Likewise in two other
98160 This is due to using additional_flags=-gt.
98208 ERROR: failed to compile fission-absolute-dwo
98214 testsuite error to not be able to compile something, and UNTESTED or
98231 Because "%p" is the pointer conversion specifier to print a pointer in an
98237 This commit replaces "0x%p" with "%p" to prevent unpredictable behavior.
98241 sim/ppc: fixes for arguments to printf style functions
98242 After the recent series of fixes to mark more functions in the
98244 ppc sim due, in some cases, to bugs with the arguments being passed,
98251 In each case I selected the easiest solution to the problem, which is
98252 usually just casting the argument to the correct type. If anyone
98253 later on thinks the print format should change, please feel free to do
98260 I noticed that the $want_gnu_debuglink code in gdb/contrib/cc-with-tweaks.sh
98278 gdb: rename target_read_auxv(target_ops *) to target_read_auxv_raw
98280 is confusing. Rename the one that reads from an explicit target_ops to
98281 target_read_auxv_raw. Also, it occured to me that the non-raw version
98306 passing the executable and core file names directly to GDB, we see the
98351 In its constructor (before it is pushed to the inferior's target stack),
98352 the core_target needs to identify the right target description from the
98353 core, and for that asks the gdbarch to read a target description from
98355 gdbarch_core_read_description (such as AArch64's) need to read auxv data
98356 from the core in order to determine the right target description, the
98357 core_target passes a pointer to itself, allowing implementations to call
98368 target A, it gets cached, then you try to read auxv from a target B, and
98370 case, we expect to read different auxv data from the core target than
98372 sense to hit the cache in this case.
98374 To fix this, I propose splitting the code paths that read auxv data from
98376 The code path that reads from the target stack will keep caching,
98381 From what I understand, auxv caching was introduced mostly to reduce
98388 The changes to auxv functions are:
98391 target_ops and doesn't do caching (to be used in
98399 - Change the existing target_auxv_search to not read auxv data from the
98400 target, but to accept it as a parameter (a gdb::byte_vector). This
98402 it. It still needs to take a target_ops and gdbarch to know how to
98407 overload is useful to replace the exist target_auxv_search calls that
98411 - Modify parse_auxv to accept a target_ops and gdbarch to use for
98412 parsing entries. Not strictly related to the rest of this change,
98418 similar to target_auxv_search. One version receives auxv data,
98420 current inferior. The latter is for convenience, to avoid making
98423 - Call sites of linux_get_hwcap and linux_get_hwcap2 are adjusted to
98432 `current_inferior ()->top_target ()` are changed to use the
98464 Re: Error: attempt to get value of unresolved symbol `L0'
98466 label provide a more helpful error message to the user.
98476 pbb_br_npc are declared uninitialized and passed to other functions in some
98481 initialized to a harmless value.
98502 gprof and ld tries to find known definition of getopt function is used and
98506 This commit adds a modified portion of ld/configure.ac to find the known
98508 environments), we don't need to rely on the deprecated definition.
98518 To avoid this warning, this commit now uses vsnprintf to format error
98519 message and pass the message to sim_engine_abort function with another
98537 This commit makes Clang think those predicate macros to be boolean.
98558 This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
98570 This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
98573 has been moved to the function declaration.
98585 This commit adds ATTRIBUTE_PRINTF to a printf-like function.
98597 This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
98609 This commit adds ATTRIBUTE_PRINTF to the printf-like functions.
98621 This commit adds ATTRIBUTE_PRINTF to a printf-like function.
98633 This commit adds ATTRIBUTE_PRINTF to a printf-like function.
98716 Error: attempt to get value of unresolved symbol `L0'
98718 label provide a more helpful error message to the user.
98726 When maintainer mode is enabled, it tries to rebuild sim/moxie/moxie-gdb.dtb
98731 automake output) and adds the directory stamp file to DISTCLEANFILES to
98740 the offending lines to make the formatter happy.
98753 The problem is easy to spot with an example. First consider:
98763 If we change the prefix string to a no-match, say "1 = ", and update the
98779 Fix this by rewriting capture_command_output to use only a single
98786 gprofng: no need to build version.texi
98792 * doc/Makefile.am: No need to build version.texi.
98797 gprofng: use the --libdir path to find libraries
98802 * src/Makefile.am: Add -DLIBDIR to CPPFLAGS.
98804 * src/envsets.cc (putenv_libcollector_ld_misc): Use LIBDIR to find
98814 * testsuite/config/default.exp: Set up environment to run gprofng tests
98839 set code [catch {gdb_expect $code} string]
98850 If expect is quick enough, it will consume only up to the prompt. But
98853 default, the prompt used by gdb_test uses a `$` to anchor the match at
98858 the output, giving GDB more time to output the messages, giving a good
98864 Therefore, add the -no-anchor-prompt option to gdb_test, and
98878 print_wchar keeps track of when escape sequences are emitted, to force
98883 However, this code has two errors. First, this logic is not needed
98896 code to use gdb_iswprint, and removes a somewhat confusing comment
98897 related to this code.
98906 This changes 'need_escape' in generic_emit_char to be of type bool,
98917 However, this seems wrong to me if the quote character is something
98918 other than double quote. This patch fixes this latent bug. Thanks to
98925 fixes the problem. In mos cases I chose to preserve the use of
98955 Also add a test-case to trigger this: gdb.testsuite/gdb-test.exp.
98962 The struct target_buffer (in gdb_bfd.c) is used to hold information
98966 This commit updates target_buffer (in gdb_bfd.c) to be more C++ like,
98973 then it can be hard to match keep track if which BFD is which. This
98974 commit changes the name to be "<in-memory@ADDRESS>" where ADDRESS is
98993 name jit-elf-solib.c
99011 The filename argument to gdb_bfd_open_from_target_memory was never
99013 to this function, in jit.c, relied on the default value.
99015 In the next commit I'm going to make some changes to the
99017 account of a filename parameter, it seems pointless to maintain an
99032 These enable some new debugging related to when GDB makes inferior
99035 might want to add more later.
99044 This commit switches to use INFRUN_SCOPED_DEBUG_START_END in the
99050 Add ability to create reproducible source tarballs.
99051 * src-release.sh: Add "-r <date>" option to create reproducible
99053 * binutils/README-how-to-make-a-release: Add a line showing how to
99060 attempt to use an invalidated frame_info_ptr, which would cause internal
99061 errors to happen. One such example has been documented as PR
99065 To avoid failures, the smart wrapper was changed to also cache the frame
99066 id, so the pointer can be reinflated later. For this to work, the
99067 frame-id stuff had to be moved to their own .h file, which is included
99071 Caching is done manually so that only the pointers that need to be saved
99072 will be, and reinflating has to be done manually using the reinflate
99074 the internals of the class. Finally, attempting to reinflate when the
99086 Some of them can seem to be testing the same thing twice, but since this
99088 when testing, so better to test extra.
99096 Change GDB to use frame_info_ptr
99097 This changes GDB to use frame_info_ptr instead of frame_info *
99104 sed 's/frame_info_ptr $/frame_info_ptr/g' - used to remove whitespace
99108 undone, some constructors and some gets were added, according to what
99131 simplifies the code, I left this patch in.
99138 Within the testsuite, use the keyword 'end' to terminate blocks of
99139 Python code being sent to GDB, rather than sending \004. I could only
99146 \004 can be used to terminate a Python block, so I think switching to
99160 To merge with gcc's copy of configure.ac we need to revert changes to
99185 is ever called externally, and it simply forwards to the other
99186 implementation. It seems cleaner to me to have a single method, so
99209 action=permission: connection to GDBserver succeeded
99211 and are due to the fact that the actual gdb output doesn't match the regexp:
99215 "connection to GDBserver succeeded"
99259 Update the regex to accept start_thread.
99284 host board happens to be ${srcdir}/gdb.xml/trivial.xml) to cleanfiles, which
99315 FAIL: gdb.arch/i386-mpx-call.exp: upper_bnd0: continue to a bnd violation
99318 This is due to the have_mpx test which should return 0, but instead returns 1
99351 [gdb/testsuite] Fix path in test name in gdb_load_shlib
99362 This is due to this code in gdb_load_shlib:
99367 Fix this by setting an explicit test name.
99377 test does not match, so there isn't any reason to make a complaint
99378 about the target. In fact there isn't a good reason to warn even if
99384 fields somewhat. I chose to warn on nonsense values rather than
99385 refusing to match. Refusing to match would be OK too.
99390 directory to IMAGE_NUMBEROF_DIRECTORY_ENTRIES.
99409 with FPCAR to identify if lazy FPU state preservation is active for
99417 example) to all the D-registers in the main function
99418 b) configured the SysTick to fire
99420 0x0022446688aaccee as an example) to one of the D-registers (D0 as
99423 0x0099aabbccddeeff) to one of the D-registers (D0 as an example)
99438 decls") I noticed that quite a bit of code in read_func_scope is used to decide
99439 whether to issue the "cannot get low and high bounds for subprogram DIE at
99445 - using it to wrap the relevant code in read_func_scope.
99461 The new debug output all relates to breakpoint condition evaluation.
99469 I had to make the bp_location* argument to find_loc_num_by_location
99478 Extend the existing debug printf call to include the previous state of
99485 they are intended to be a constant immediate value.
99530 as small as possible (as long as we can preserve the portability) to reduce
99536 to printing data.
99551 RISC-V: Fix immediates to have "immediate" style
99552 This commit fixes certain print calls on immediate operands to have
99557 * riscv-dis.c (print_insn_args): Fix immediates to have
99569 make[4]: Entering directory '/home/alan/build/gas/all/bfd/po'
99570 …make[4]: *** No rule to make target '../elf32-aarch64.c', needed by '/home/alan/src/binutils-gdb/b…
99582 scanning of the operand string to find the matching opening parenthesis.
99583 Switch to forward scanning, finding the last outermost unquoted opening
99594 [0x0000003b] Special opcode 115: advance Address by 8 to 0x401180 and Line by -2 to -1
99603 It didn't take long for the fuzzers to avoid size checks in
99660 which is referred to from the DIE representing the function definition:
99710 gdb/riscv: Partial support for instructions up to 176-bit
99711 Because riscv_insn_length started to support instructions up to 176-bit,
99712 we need to increase buf size to 176-bit in size.
99721 Because riscv_insn_length started to support instructions up to 176-bit,
99722 we need to increase packet buffer size to 176-bit in size.
99737 Just added suffix _INX for those INSN_CLASS should be enough to represent
99742 Note that at least dejagnu version 1.5.3 is required in order to be ale to run the testsuites.
99764 Support objcopy changing compression to or from zstd
99772 to return compression header ch_type field.
99780 "unable to compress/decompress" rather than "unable to
99789 from zlib-gnu for .debug_* where the name is changed to .zdebug_*.
99790 The name change isn't really needed.
99794 section names only when name was ".d*", ie. ".debug_*".
99834 RISC-V/gas: allow generating up to 176-bit instructions with .insn
99835 For the time being simply utilize O_big to avoid widening other fields,
99838 RISC-V/gas: don't open-code insn_length()
99841 RISC-V/gas: drop stray call to install_insn()
99847 RISC-V: don't cast expressions' X_add_number to long in diagnostics
99871 …unittests/environ-selftests.c:228:7: error: moving 'env' of type 'gdb_environ' to itself [-Werror=…
99891 This patch teaches GDB how to handle W registers as pseudo-registers of
99904 we need to setup/account for the real registers first before going ahead and
99905 numbering the pseudo-registers. This has to happen at the end of
99906 aarch64_gdbarch_init, after the call to tdesc_use_registers, as that
99909 This is in preparation to supporting pointer authentication for bare metal
99927 Not only that, this is harmful to implement pseudoinstructions in the latest
99939 When a class inherits from a typedef'd baseclass, GDB may be unable to
99940 find the baseclass if the user is not using the typedef'd name, as is
99942 under gcc is that the dwarf generated by gcc links the class to the
99943 original definition of the baseclass, not to the typedef. If the
99944 inheritance is linked to the typedef, such as how clang does it,
99947 This can also be seen in gdb.cp/impl-this.exp, when attempting to print
99948 D::Bint::i, and GDB not being able to find the baseclass Bint.
99951 TYPE_BASECLASS_NAME, which returns the typedef'd name. However, we can't
99952 switch that macro to checking for typedefs, otherwise we wouldn't be
99953 able to find the typedef'd name anymore. This is fixed by searching for
99954 members or baseclasses by name, we check both the saved name and the
99955 name after checking for typedefs.
99962 RISC-V: Assign DWARF numbers to vector registers
99963 This commit assigns DWARF register numbers to vector registers (v0-v31:
99964 96..127) to implement RISC-V DWARF Specification version 1.0-rc4
99972 96..127 to vector registers v0-v31.
99978 * testsuite/gas/riscv/dw-regnums.s: Add vector registers to the
99988 This commit adds dw-regnums.{s,d} to test such registers.
100012 returning -1 and setting errno to EINTR.
100014 Fix this by changing the loop condition to "ret == -1 && errno == EINTR".
100025 then, then I went to rerun the tests later, I managed to corrupt the
100030 the make command did exit with an error, but DejaGnu appeared to
100055 script, and finally, we use sed to extract the results from the
100058 In my case, with the invalid test name, DejaGnu fails, but the
100072 tool The tool (e.g. g++, libffi) for which to create a
100086 tool The tool (e.g. g++, libffi) for which to create a
100107 directory is deleted before DejaGnu is invoked. Then we try to run
100108 all the tests, and finally we use find and dg-extract-results.py to
100114 This commit aims to fix the following issues:
100117 post-processing steps if DejaGnu failed to run. This will avoid all
100121 previous results, this is related to the above, but is worth calling
100132 similar (I think) to how we delete the outputs/ directory in the
100135 For point (3) I plan to split the check-single rule in two, the
100148 One of the comments helpfully links to this Python test case:
100165 What's happening is that Pygments is failing to parse the input text,
100174 If we change the test case to this:
100194 now checking to see if the result is None or not. Running this and
100198 There are two things we need to fix relating to this disassembly
100201 supports the intel style, all we need to do is use the 'nasm' lexer
100204 However, this leads to the second problem; in our disassembler line we
100227 2. Use "add_filter('raiseonerror')" to ensure that the formatted
100237 one instruction is printed without styling, but GDB will continue to
100238 call into the Python code to style later instructions.
100255 RISC-V, ARM, and X86-64 (att style) code, and it seemed fine, but I
100256 never tried to make an exhaustive check of all instructions, so its
100262 Pygments based styling code will just not style that one instruction.
100264 to libopcodes based styling, which is much more reliable.
100266 So, I think it is fine to keep using Pygments as a fallback mechanism
100273 While working on another issue relating to GDB's use of the Python
100277 The intention of the current code is that, should the Pygments package
100278 raise an exception, GDB will disable future attempts to call into the
100279 Pygments code. This was intended to prevent repeated errors during
100280 disassembly if, for some reason, the Pygments code isn't working.
100288 setup GDB so that the Pygments based styling code will indicate an
100314 this allows these fields to be initialised m_dest first, which means
100322 function to return None, this will cause GDB to disable use of
100328 will have set the in-comment flag to true. This shouldn't be a
100338 This commit extends the gdb.base/style.exp test to cover disassembler
100341 The test will try to enable libopcode based styling, if this
100342 works (because such styling is available) then some tests are run to
100360 nullptr. This commit audits all the calls to gdbarch_register_name
100361 and removes any code that checks the result against nullptr.
100374 passed to gdbarch_register_name was "invalid", i.e. negative, or
100377 this is the case. As a result we can simplify the code by removing
100379 array, I was able to add a static assert that the array contains the
100393 own commit, because these returns of NULL appear to be depended on
100394 within other parts of the csky code.
100396 In csky-linux-tdep.c in the register collect/supply code, GDB checks
100397 for the register name being nullptr in order to decide if a target
100398 supports a particular feature or not. I've updated the code to check
100405 gdb: add asserts to gdbarch_register_name
100406 This commit adds asserts to gdbarch_register_name that validate the
100410 by gdbarch.py, and so, to add these asserts, I need to update the
100415 'result_checks'. Each of these new arguments can be used to list some
100417 generated code.
100420 to gdbarch_register_name a few commits back; the register number
100421 passed in needs to be a valid cooked register number, and the result
100428 selftest to check for duplicate register names.
100431 have the same name, then this will show up as duplicate registers in
100432 the 'info all-registers' output, but the user will only be able to
100436 commit to check for duplicate register names, I didn't include this
100438 fixing, and I wanted to keep those fixes separate from the fixes in
100448 have the ability to actually test this change, however:
100465 appear to override the ::read_description method, so will potentially
100470 So, my proposed solution is to just remove the duplicate register from
100484 Beyond the self-tests I don't have any facilities to test that the
100490 etc. This commit doesn't attempt to address these cases as non of
100497 various register_name methods, and remove all references to NULL from
100498 their code, however, as that commit will be mostly adjusting code that
100499 is never hit, I want to keep those changes separate.
100501 The selftest has been tested on x86-64, but I don't have access to
100502 suitable systems to fully test any of the *-tdep.c code I've changed
100507 gdb/gdbarch: add a comment to gdbarch_register_name
100508 After the previous commit, this commit sets out to formalise the API
100516 asserts in this code:
100524 const char *name = gdbarch->register_name (gdbarch, regnr);
100526 gdb_assert (name != nullptr);
100528 return name;
100533 this commit adds a comment to gdbarch_register_name, this comment is
100534 where I'd like to get to, rather than where we are right now.
100536 Subsequent commits will fix all targets to be in compliance with this
100537 comment, and will even add the asserts shown above to
100553 grabbing the register number, rather than a register name,
100561 nullptr, or an empty string to indicate that a register is not
100563 in GDB where we compare the output of gdbarch_register_name to both
100564 nullptr and '\0' in order to see if a register is supported or not,
100568 However, the 'info registers' completion code (reg_or_group_completer)
100576 gdbarch_register_name returns nullptr, I could convert to an empty
100581 to not rely on nullptr to indicate the end marker. Or rather, I could
100587 nullptr OR the empty string to mean the same thing, so I wondered if
100588 the "right" solution was to have gdbarch_register_name not return
100592 gdbarch_register_name for every register number up to the
100593 gdbarch_num_cooked_regs limit, and checks that the name is not
100599 This seems to suggest that most architectures agree that the correct
100600 API for gdbarch_register_name is to return an empty string for
100622 to collect the output of the 'maint print registers' command. For
100625 Currently the capture_command_output proc tries to collect the
100629 This commit rewrites capture_command_output to make use of
100630 gdb_test_multiple to collect the command output line at a time, in
100634 pattern, which is passed in to the proc as an argument. In order to
100654 As the TCL regexp matching is greedy, TCL will try to match as much as
100655 possible in one part of the pattern before moving on to the next.
100663 maintained this behaviour, but I couldn't see any reason to do this.
100667 This change doesn't seem to affect any of the existing tests, but I
100675 command), I wanted to add support for this to the MI disassemble
100680 relate to opcode display.
100682 So, clearly I should just add an additional 3 modes to handle the new
100688 backward compatible way, that would allow GDB to move away from using
100693 In this commit, I propose adding two new options to -data-disassemble,
100699 Additionally, I will make the mode optional, and default to mode 0 if
100700 no mode value is given. Mode 0 is the simplest, no source code, no
100706 The --opcodes option can add opcodes to the result, with 'bytes' being
100707 equivalent to 'disassemble /b' and 'display' being 'disassemble /r'.
100709 The --source option will enable the /s style source code display, this
100710 is equivalent to modes 4 and 5. There is no way, using the new
100711 command options to get the now deprecated /m style source code
100715 instead will just use the new options to achieve the output they need.
100716 Existing MI users can continue to use the mode, and will not need to
100717 be updated to use the new options.
100721 gdb/mi: some int to bool conversion
100722 Just some simple int to bool conversion in mi_cmd_disassemble. There
100736 However, I believe, according to the 'Notation and Terminology'
100742 given, i.e. we can't choose to give NO location specification, which
100745 I propose that we change this to instead be:
100763 appear exactly once. I propose to extend 'Notation and Terminology'
100764 to include '( GROUP )' which means that GROUP should appear exactly
100767 This change is important because, in a later commit, I want to add
100768 additional optional arguments to the -data-disassemble command, and
100769 things start to get confusing with the original syntax.
100774 In a later commit I want to use operator~ on a gdb_disassembly_flag
100785 This commit changes the format of 'disassemble /r' to match GNU
100792 Dump of assembler code from 0x1018e to 0x1019e:
100803 Dump of assembler code from 0x1018e to 0x1019e:
100813 byte-swapped to little-endian order.
100816 libopcodes to add whitespace padding after the opcode bytes, this
100819 It is still possible for a very long instruction to intrude into the
100824 Dump of assembler code for function main:
100836 Dump of assembler code for function main:
100857 Dump of assembler code from 0x1018e to 0x1019e:
100865 Obviously, this patch is a potentially significant change to the
100872 always want to manually decode the instruction for some reason, and
100878 behaviour, and /b has been added to retain the old behaviour.
100882 equivalent to the /b modifier. This means that the MI output will
100912 is that I plan to make changes to how opcode bytes are displayed in
100913 the disassembler output, and I want to ensure that I don't break any
100916 There should be no user visible changes to GDB after this commit.
100929 This commit relaxes requirements to "fmv.s" instructions from 'F' to ('F'
100930 or 'Zfinx'). The same applies to "fmv.d" and "fmv.q". Note that 'Zhinx'
100944 * riscv-opc.c (riscv_opcodes): Relax requirements to "fmv.[sdq]"
100945 instructions to support those in 'Zfinx'/'Zdinx'/'Zqinx'.
100959 to minimum required extensions. Remove source line.
100964 Also use even-numbered registers to use valid register pairs.
100970 There is no need for casts to (signed/unsigned) long, as we can use
100986 objcopy: avoid "shadowing" of remove() function name
100998 For disassembly to pick up aliases in favor of underlying insns (helping
100999 readability in the common case), the aliases need to come ahead of the
101000 "base" insns. Slightly more code movement is needed because of insns
101001 with the same name needing to stay next to each other.
101006 Clone a few testcases to exercise -Mno-aliases some more, better
101014 up-to-date. Use a pattern rule instead to express the multiple targets
101016 newer). Note that now, for the opposite case to work (i386-tbl.h is
101017 up-to-date but i386-init.h is missing), i386-init.h also needs
101034 destination register) it is easy to see that current behavior is far
101036 code simply because the 2nd template we have is a Cpu64 one. Instead we
101039 original "specific_error" approach by making it apply to the entire
101048 only pointless, but has led to the introduction of various workarounds:
101051 that the memory operand's size isn't going to be needed to infer the
101057 IgnoreSize needs to remain on legacy encoded SIMD insns with GPR
101058 operand, to avoid emitting an operand size prefix in 16-bit mode. (Since
101059 16-bit code using SIMD insns isn't well tested, clone an existing
101060 testcase just enough to cover a few insns which are potentially
101064 isn't included there. This is to fulfill the request of not allowing L
101069 LoongArch: Update ELF e_flags handling according to specification.
101070 Update handling of e_flags according to the documentation
101111 {name="_start",type="void (void)",description="void _start(void);"}
101116 "\{line=\"$decimal\",name=${qstr},type=${qstr},description=${qstr}\}"
101134 adding them might be useful as we no longer have to "filter" ISA strings
101159 ("gdb: change subfile::line_vector to an std::vector"). So, this variable
101160 should be removed to prevent a build failure.
101164 [gdb/testsuite] Add aranges to gdb.dwarf2/dw2-dir-file-name.exp
101165 Since commit 52b920c5d20 ("[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp
101167 to missing .debug_aranges info.
101171 Also add a file_id option to Dwarf::assemble, to make it possible to contribute
101172 to an already open file.
101207 This is due to this slightly convoluted bit of code:
101221 The purpose of "i = staticp ? 0 : 1" is to skip the printing of the implicit
101232 Fix this by rewriting the code to:
101236 use that after the loop to print void etc.
101243 Note that I consider the discussion of whether we want to print:
101252 PR29626, Segfault when disassembling ARM code
101265 around target_ops::auxv (since 27a48a9223d0 "Add auxv parsing to the
101266 architecture vector."), I think that the name prefixed with target is a
101267 bit misleading. Rename to just parse_auxv.
101282 don't need to modify the raw auxv data.
101296 This patch changes various global target_desc declarations to const, thereby
101297 correcting a prominent source of ODR violations in PowerPC-related target code.
101317 cleanup: Add missing feature/ XML files to Makefile
101318 This patch adds some missing .xml files to features/Makefile so that when the
101323 the former case, there was what essentially amounts to a typo regarding the
101324 create feature function's name. In the later case, this file has missed at least
101326 changed to return a unique pointer.
101332 Add -B to the help output from gprof, and add suitable documentation.
101345 GDB fails to build for me, on Ubuntu 20.04. I get:
101350 …/home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:1831: undefined reference to `gcore_elf_build_th…
101352 …/home/pedro/gdb/binutils-gdb/src/gdb/linux-tdep.c:2117: undefined reference to `gcore_elf_make_tde…
101370 /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:42: undefined reference to `ZSTD_decompress'
101371 …/usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:44: undefined reference to `ZSTD_isEr…
101373 /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:195: undefined reference to `ZSTD_compress'
101374 …/usr/bin/ld: /home/pedro/gdb/binutils-gdb/src/bfd/compress.c:198: undefined reference to `ZSTD_isE…
101384 This commit fixes it, by moving ZSTD_LIBS from LDFLAGS to LIBS, next
101385 to -lz, in GDB_AC_CHECK_BFD, and regenerating gdb/configure.
101399 with array-indexes enabled. This turned out to be caused by the array
101401 This patch changes the Ada support to recognize Character as a
101417 Binutils can be configured to avoid printing the execstack or RWD
101467 egrep is deprecated and to use "grep -E". The nag message causes a ld
101521 Uninitialised arelt_data->parent_cache led to this segv.
101542 Because the cause of this error is in the Bison-generated code
101549 the Bison-generated code.
101553 libctf: Add ZSTD_LIBS to LIBS so that ac_cv_libctf_bfd_elf can be true
101558 PR29397 PR29563: Add new configure option --with-zstd which defaults to
101568 symbols, so gdb has to link against -lzstd in this patch.
101612 If some command in there gives the wrong answer, we currently have to
101613 wait for a timeout for the test to continue. For instance, I currently
101625 name passed to parse_args defines the option name), but I think
101626 it's a typo. It's supposed to be -prompt, like gdb_test. I can't find
101627 anything using -prompt_re using grep. Change it to just "prompt".
101650 build, so I think it's necessary to bump the timeout for that in any
101699 back to relocs written. Use better types for vars.
101704 We were attempting to set a BSS style section contents.
101715 nearest_line code of that sanity checking, and tidies up memory
101754 we end up trying to dereference the last character of an empty string
101762 this byte happens to hold the value of the directory separator character
101763 we go on to call std::string::pop_back on the empty string which results
101797 alignment. It would be bad enough to get 5316 messages all the same,
101805 to warn about a problem detected by a target elf_object_p other than
101809 So what to do? One obvious solution is to remove the warnings.
101810 Another is to poke any warning strings into the target xvec, emitting
101813 _bfd_check_format for the first element of the archive (to find the
101816 read-only. Thus the need for per_xvec_warn to logically extend
101818 than bfd_target_vector to provide one place for user code that makes
101852 entries to describe the location of the user stack for the initial
101855 This change displays the proper name and description of these entries
101871 concluded that it is caused by the long source directory name:
101875 The long name causes some particular redrawing that doesn't happen for
101876 shorter directories, and causes a Term::command call to return too
101880 with a name similar to the one shown above.
101894 name, the terminal looks like this by the time the "checking if inside
101926 prompt" mode, to know when the command's execution is complete. As some
101967 curses decided to redraw whatever scrolled up to line 17 using some
101990 And that causes `wait_for` to think the "step" command is complete.
101995 The ideal way to fix this would be for `wait_for` to be smarter, to
101998 However, I would also like to reduce the variations in TUI test results
101999 due to the directories (source and build) in which tests are ran. TUI
102000 tests are more prone to differences in test results due to variations in
102002 redrawing decisions. So in this patch, I propose to make TUI tests use
102007 Doing this happens to fix my failures and makes my CI happy (which in
102034 Every format that might appear inside a generic archive needs to call
102040 Calling _bfd_generic_close_and_cleanup on close means tdata needs to
102041 be set up too, since pdb claims to be of format bfd_archive.
102049 Don't attempt to compress bss sections
102050 It doesn't make sense to try to compress a section without contents
102066 system provided dejagnu installation does not provide support to compile
102073 and has default_target_compile call `find_gcc` itself to find a compiler
102076 On systems with dejagnu-1.6.3, if GDB's overrides is needed to support
102077 languages still unknown to dejagnu, we end up in the following
102088 gdb compile failed, default_target_compile: No compiler to compile with
102090 gdb compile failed, default_target_compile: No compiler to compile with
102092 gdb compile failed, default_target_compile: No compiler to compile with
102096 supporting AMD GPUs. This port needs to use GDB's override of
102097 default_target_compile to compile HIP programs since dejagnu does not
102120 Therefore it makes sense to group them into smaller chunks
102140 (that is a real operand). With this patch it is possible to make
102142 parameter as part of the asssembly code.
102150 Therefore it makes sense to group them into smaller chunks
102173 Therefore it makes sense to group them into smaller chunks
102189 Therefore it makes sense to group them into smaller chunks
102205 Therefore it makes sense to group them into smaller chunks
102221 Therefore it makes sense to group them into smaller chunks
102250 Therefore it makes sense to group them into smaller chunks
102266 Therefore it makes sense to group them into smaller chunks
102283 Contrary to Zicbom, the XTheadCmo instructions don't have a constant
102307 the following things need to be done:
102308 * Add the extension to the riscv_supported_vendor_x_ext list
102313 * Add new instruction class to enum riscv_insn_class
102324 Having the views allows us to:
102334 [gdb/symtab] Rename all_comp_units to all_units
102335 Mechanically rename all_comp_units to all_units:
102350 include: Add macro to ignore -Wunused-but-set-variable
102351 "-Wunused-but-set-variable" warning option can be helpful to track variables
102353 the code is auto-generated and we have no ways to deal with it.
102355 The particular example is Bison-generated code.
102358 such cases. A typical use of this macro is to place this macro before the
102367 include: Add macro to ignore -Wuser-defined-warnings
102369 if we have specified "-Werror" and we have no control to disable the warning
102373 are used (to redirect the developer to use Gnulib version). However,
102378 cases. A typical use of this macro is to place this macro before including
102389 had whitespace in its name, like this:
102393 however, it is not possible to then use this window in a new TUI
102403 GDB clearly uses the whitespace to split the incoming command line.
102405 I could fix this by trying to add a mechanism by which we can use
102406 whitespace within a window name, but it seems like an easier solution
102407 if we just forbid whitespace within a window name. Not only is this
102409 names with spaces in would mean we'd need to audit all the places a
102410 window name could be printed and ensure that the use of a space didn't
102413 So, having decided to disallow whitespace, I then thought about other
102414 special characters. We currently accept anything as a window name,
102417 My concerns were about how special characters used in a window name
102419 which is maybe fine now, but what if one day we wanted to allow
102421 a window name with '-'? We already support a '-horizontal' option,
102422 what if we want to add more in the future? Or use of the special
102425 In the end I figured it might make sense to place some restrictive
102433 There is a chance that there is user code in the wild which will break
102434 with the addition of this change, but hopefully adapting to the new
102439 gdb/testsuite: Add test to step through function epilogue
102440 The testsuite implicitly tests GDB's ability to step through epilogues
102447 The test created attempts to step through a simple epilogue, an
102448 epilogue that ends on another epilogue, and epilogues leading to other
102453 gdb.base/skip.exp: Use finish to exit functions
102454 gdb.base/skip.exp was making use of a fixed number of step commands to
102455 exit some functions. This caused some problems when using clang to test
102456 GDB, as GDB would need fewer steps to reach the desired spots. For
102490 would not be easy to test for this behavior using steps and analzing
102494 uses finish to leave functions, synchronizing through compilers and
102495 compiler versions. Some test names were also changed to be a bit more
102528 was failing because the filename displayed when GDB attached to the
102532 …Attaching to program: /home/blarsen/Documents/gdb-build/gdb/testsuite/outputs/gdb.base/jit-elf/jit…
102548 …Attaching to program: /home/blarsen/Documents/gdb-build/gdb/testsuite/outputs/gdb.base/jit-elf/jit…
102565 little to allow the relative path.
102570 When trying to test gdb.base/msym-bp-shl.exp using clang, it would have
102572 optimized away. Adding __attribute__ ((used)) to it fixed this.
102578 when trying to step out of functions, since clang requires one fewer
102579 step when compared to gcc. The inferior gets increasingly out of sync
102583 This commit fixes this by switching those hardcoded steps to
102584 gdb_step_until, to guarantee that the inferior is always synced to what
102611 have been sent to a line before `return`, so epilogues won't factor in.
102615 gdb/testsuite: Add a proc to test where compiler links the epilogue
102616 Different compilers link the epilogue of functions to different lines.
102617 As an example, gcc links it to the closing brace of the function,
102618 whereas clang links it to the last statement of the function. This
102622 so this commit adds a gdb_caching_proc that is able to detect where the
102627 ld/testsuite: allow to force another directory for gcc linker
102628 Add a new variable "ld_testsuite_tmpdir" to enable manual configuration
102629 of the -B flag added to gcc calls. This flag ensure that gcc is invoking
102630 the linker and the assembler we want to test.
102633 by the testsuite in tmpdir/ld will point to nothing. Thus, even with the
102635 falling back to its default linker. Hence this variable to ensure that
102640 * testsuite/config/default.exp: Allow to change -B flag with
102648 runtest outside the build tree, it can be hard to retrieve them.
102650 Instead of letting tcl raise an error when trying to access this
102670 But most of them has a reasoning to keep them:
102672 - Cx : Same as "Ct" except it has a constraint to have rd == rs2
102673 (similar to "Cw"). Although it hasn't used, its role is clear
102674 enough to implement a new instruction with this operand type.
102680 ... except "b". I could not have found any reference to this operand type
102693 RISC-V: Add macro-only operands to validate_riscv_insn
102703 operands to this function. By doing this, we could instead choose to reject
102731 being built. This patch came from trying to avoid a maintainer-mode
102740 Making info in po
102741 make[3]: Entering directory '/build/gas/all/bfd/po'
102742 cd .. && make po/SRC-POTFILES.in
102743 cd .. && make po/BLD-POTFILES.in
102763 * Makefile.am (po/BLD-POTFILES.in): Don't depend on $(BLD_POTFILES).
102764 (po/SRC-POTFILES.in): Don't depend on $(SRC_POTFILES).
102768 gdbsupport: move fileio_errno_to_host to fileio.{h,cc} and rename
102770 fileio_error -> errno function. Factor that out to
102779 gdbsupport: convert FILEIO_* macros to an enum
102780 Converting from free-form macros to an enum gives a bit of type-safety.
102781 This caught places where we would assign host error numbers to what
102787 variable to 0. It seems better to have an explicit enumerator than to
102789 initializing this variable to FILEIO_EUNKNOWN instead, such that if the
102793 be, so I prefer to err on the side of caution and just keep the existing
102801 Convert host_to_fileio_error and fileio_errno_to_host to return / accept
102809 gdbsupport: move include/gdb/fileio.h contents to fileio.h
102814 Move its content back to gdbsupport/fileio.h. I have omitted the bits
102822 gdbsupport: change path_join parameter to array_view<const char *>
102824 character name, we hit this assertion failure:
102854 is a string_view of length 1, so it's incorrect to try to access index
102859 This patch makes the easy fix, that is to change the path_join parameter
102860 from a vector of to a vector of `const char *`. Another solution would
102861 be to introduce a non-standard gdb::cstring_view class, which would be a
102863 correct to access index 1, it would yield the NUL character. If there
102875 Remove the macro, replace all uses with calls to type::length.
102882 Add the `length` and `set_length` methods on `struct type`, in order to remove
102883 the `TYPE_LENGTH` macro. In this patch, the macro is changed to use the
102885 changed to use the setter method directly. The next patch will remove the
102893 Remove the macro, replace all uses by calls to type::target_type.
102901 to remove the `TYPE_TARGET_TYPE` macro. In this patch, the macro is changed to
102903 are changed to use the setter method directly. The next patch will remove the
102911 To avoid -Werror=strict-prototypes, this commit changes () to (void).
102932 This is a minor fix to commit 96462b012988d35ebb1137a2ad9fd0a96547d79a
102935 has a way to update the ISA string: ".option arch".
102957 2) Demangling doesn't give the source function name as stored in
102963 name contains the DWARF name as a sub-string. Very likely the name
102968 containing the DWARF source name as a substring.
102971 returns false, fall back to comp_unit_find_line.
102988 passing to cplus_demangle to control demangling.
102992 to suit lang. Adjust all callers.
102999 of the field is to modify the return of the lookup, which was its
103011 configure: Pass CPPFLAGS_FOR_BUILD to subdirs
103015 Fortunately, it didn't cause severe errors but error messages related to
103017 to subdirectories through Makefile) remain in config.log.
103020 need to set proper CPPFLAGS_FOR_BUILD (may be empty) and pass it to
103025 * configure.ac: Pass CPPFLAGS_FOR_BUILD to subdirectories.
103032 once we have enabled Ztso extension. This is intended to implement v0.1 of
103071 * testsuite/gas/riscv/no-relax-reloc.d: Updated CALL to CALL_PLT.
103074 * testsuite/ld-riscv-elf/variant_cc-r.d: Updated CALL to CALL_PLT.
103094 The direct cause for the looping was failing to test for error return
103103 (alpha_vms_slurp_relocs): Set reloc_done to 1 on success, -1 on
103109 to previous errors from layout, and don't try to write them.
103119 this patch changes it to be 'static'.
103124 This changes some target_so_ops instances to be const. This makes
103126 allows for the removal of some initialization code.
103129 This changs solib_ops to be an ordinary gdbarch value and updates all
103130 the uses. This removes a longstanding FIXME and makes the code
103135 to simply remove it.
103144 This commit tries to split the existing script in two, there is a new
103146 related to running debuginfod tests. All the code in the new library
103149 adjustments to try and make the code a little more generic.
103151 One change I made, for example, is the library offers functions to
103155 The existing test script is updated to make use of the new library
103156 code, and this test is still passing for me. The only change in the
103157 test results is a single test where I changed the name to remove the
103158 port number from the test name - the port number can change from run
103159 to run, so could make it hard to compare test results.
103167 LoongArch: Set macro SUB_SEGMENT_ALIGN to 0.
103197 The issue was found during an attempt to add static-pie support to the
103200 Fix it by iterating through the inputs of .rela.dyn to find the slot.
103206 there is no need to write anything into GOT. And when we write the GOT
103231 gdb: add ATTRIBUTE_PRINTF to gdb_bfd_error_handler
103240 This patch adds missing ATTRIBUTE_PRINTF to fix the error.
103260 (gdb) FAIL: gdb.dwarf2/dw2-no-code-cu.exp: p var with no complaints
103271 The change intends to avoid a problem with a check in
103275 Fix the FAIL by reducing the scope of the "lowpc != highpc" condition to the
103276 call to dwarf_decode_lines in handle_DW_AT_stmt_list.
103303 This commit adds a hook to the BFD error handler for suppressing
103311 to firefox. From the bug report, the messages all say:
103313 …BFD: /usr/lib/debug/usr/lib64/firefox/libxul.so-100.0-2.fc35.x86_64.debug: attempt to load strings…
103319 messages identical to those already output should be suppressed.
103322 sections, but something was referring to section #38. I haven't
103323 investigated further to find out how this came to be.
103331 command, could be added to print out each message along with the
103336 other, but are not identical to those output by BFD's default error
103337 handler. So, that problem would need to be solved too.
103363 On a powerpc system with gcc 12 built to default to 128-bit IEEE long double,
103372 This is due to incorrect handling of the argument in ppc64_sysv_abi_push_param.
103374 Fix this and similar cases, and expand the test-case to test handling of
103385 [gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp for aarch64
103387 ("[gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp"). ]
103389 When running the test-case gdb.dwarf2/dw2-dir-file-name.exp with
103396 tmp-dw2-dir-file-name.c:999^M
103397 (gdb) FAIL: gdb.dwarf2/dw2-dir-file-name.exp: \
103398 compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
103405 CU: tmp-dw2-dir-file-name.c:
103406 File name Line number Starting address View Stmt
103407 tmp-dw2-dir-file-name.c 999 0x400608 x
103408 tmp-dw2-dir-file-name.c 1000 0x40062c x
103409 tmp-dw2-dir-file-name.c - 0x40062c
103420 at tmp-dw2-dir-file-name.c:999^M
103421 (gdb) PASS: gdb.dwarf2/dw2-dir-file-name.exp: \
103422 compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
103429 CU: tmp-dw2-dir-file-name.c:
103430 File name Line number Starting address View Stmt
103431 tmp-dw2-dir-file-name.c 999 0x4004bd x
103432 tmp-dw2-dir-file-name.c 1000 0x4004d3 x
103433 tmp-dw2-dir-file-name.c - 0x4004d3
103440 - expecting the breakpoint to be printed without instruction address.
103458 comes to handle \t
103459 - readline interprets the \t as completion, tries to complete, fails to do so,
103461 - expect sees the bell, and proceeds to send ^C
103462 - readline is still in the call to rl_callback_read_char, and stores the
103464 - readline returns from the call to rl_callback_read_char, without having
103466 - gdb goes to wait for the next event
103469 Fix this by handling pending signals after each call to rl_callback_read_char.
103472 an older version, then the fix is disabled due to missing function
103482 Not that anyone would want to indirect via the GOT when an address can
103488 leads to "Internal error in md_apply_fix", because the generic parts
103489 of assembler fixup handling convert the fx_pcrel fixup to one without
103498 * pdb.c (pdb_get_elt_at_index): Only allow block_size to be
103528 This commit adds ATTRIBUTE_UNUSED attribute to some of them, which means
103579 * libcollector/libcol_util.h: Fix -Wint-to-pointer-cast warnings.
103594 regexps to allow for output genreated by the Clang compiler.
103600 fuzzers to create an archive with mach_o_fat_archentry headers that
103601 point to the same offset. bfd_mach_o_fat_openr_next_archived_file
103602 uses the previous element offset to find its header, and thus the next
103628 This commit checks "__clang__" macro to prevent adding the option if the
103663 Modify ld-ctf test files to suit ARM
103730 Add with_source_code to the command line options that trigger
103755 regardless of compiler choices, and updates the exp file to
103762 Currently, GDB's testsuite uses a set amount of step commands to exit
103765 most noticeable if Clang was used to test GDB.
103773 This patch only introduces this proc, but does not add it to any
103780 program. Clang, for instance, prefers to add nothing from standard
103782 Because of this, gdb.base/dprintf.exp was failing when GDB attempted to
103783 use dprintf as a call to fprintf(stderrr, ...), like this:
103785 (gdb) PASS: gdb.base/dprintf.exp: call: fprintf: set dprintf style to call
103789 also to stderr 1234
103790 'stderr' has unknown type; cast it to its declared type
103793 To avoid this false positive, we explicitly test to see if
103807 The reason for implementing this interface is that we want to print
103811 A prev patch has added PC, EPC, PSR and EPSR to reggroup
103825 1. jmpi [pc+4] //insn code: 0xeac00001
103828 2. lrw t1, [pc+8] //insn code: 0xea8d0002
103829 jmp t1 //insn code: 0x7834
103830 nop //insn code: 0x6c03
103848 3. In gdbserver/linux-csky-low.cc file, using PTRACE_GET/SET_RGESET to
103922 add xfails to gdb.base/complex-parts.exp when testing with clang
103923 clang doesn't add encoding to the name of complex variables, only says
103924 that the type name is complex, making the relevant tests fail.
103925 This patch adds the xfails to the tests that expect the variable name to
103930 Fix gdb.base/call-ar-st to work with Clang
103953 These symbols are local static variables, and "main" is the name of
103955 number to the linkage name:
103963 This commit changes the testcase to accept both outputs, as they are
103975 update gdb.base/info-program.exp to not fail with clang
103984 gdb/testsuite: change gdb.base/nodebug.exp to not fail with clang
103985 Clang organizes the variables differently to gcc in the original version
103986 of this code, leading to the following differences when testing
103995 However, since the important part of this test doesn't seem to be which
103997 address. This test was changed to actually measure address changes,
104019 since changing them to unsigned would require a disproportionate
104020 amount of changes ti pe-dll.c to avoid comparisons between signed
104026 but noticed while working on the code.)
104077 /* Actually the test will just hang, but we want to test
104085 The error message we see is due to the destructor of thread being called while
104088 This is supposed to be taken care of by thread.join (), but the ^C prevents
104108 [gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp for ppc64le
104110 gdb.dwarf2/dw2-dir-file-name.exp"), I made gdb.dwarf2/dw2-dir-file-name.exp
104131 [gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp with clang
104132 When running test-case gdb.dwarf2/dw2-dir-file-name.exp with clang, we run
104142 (gdb) FAIL: gdb.dwarf2/dw2-dir-file-name.exp: \
104143 compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
104148 to cause problem with clang, as documented in the comment for proc
104165 doesn't need to be quite as large anymore (the largest presently used
104171 - a particular positive return value would have been meaningless to the
104173 Therefore convert the function to return "void" at the same time.
104179 externally, which means they will be exported to the dynamic symbol table,
104182 may relax the R_RISCV_CALL relocations to R_RISCV_JAL or R_RISCV_RVC_JUMP,
104183 if these relocations are relocated to the plt entries, then we won't report
104196 RISC-V: jal cannot refer to a default visibility symbol for shared object
104236 There's some code in read_unspecified_type that marks the type as stub, but
104293 requirement from 'V' to 'Zve32x'.
104295 requirement from 'V' to 'Zve32x'.
104308 enabled. Note HW watchpoint support is disabled on Power 9 due to a HW bug.
104309 The skip_hw_watchpoint_tests proc must be used to correctly determine
104336 gdbsupport fail to build.
104342 This commit fixes this issue by substituting "$srcdir" (shell format) to
104412 back to the architecture-specific prologue analyzer, which correctly skips
104413 past the prologue, to address 0x4022f7:
104428 File name Line number Starting address View Stmt
104480 - Adjusted code to use templated type and to use host endianness as
104481 opposed to target endianness.
104484 code is laid out in a way that handles the 32-bit thumb instructions as
104487 This is fine, but it is prone to host-endianness issues given how the two
104497 It turns out the abstract memory reader class is more generic than it needs to
104498 be, and we can simplify the code a bit by assuming we have a simple instruction
104499 reader that only reads up to 4 bytes, which is the length of a 32-bit
104503 read. This way we avoid having to deal with the endianness conversion, and use
104507 While at it, Tom suggested adding a 32-bit Arm instruction selftest to increase
104514 [gdb/testsuite] Use prototype to call libc functions
104549 tag to DWARF DIEs generated for function symbols").
104561 If fixP->fx_subsy is NULL, BFD_RELOC_8/16/24 can't convert to
104574 Currently objdump -S is not able to make use files downloaded from debuginfod.
104575 This is due to bfd_find_nearest_line_discriminator being unable to locate any
104577 a call to debuginfod_find_source in order to download missing source files.
104580 bfd_find_nearest_line_discriminator. Also add a call to
104581 debuginfod_find_source in order to download missing source files.
104596 gdb: add Tsukasa Oi to gdb/MAINTAINERS
104634 (normally, this is a non-NULL pointer to a NULL-terminated list).
104663 The intention of the check is to make sure we don't have more that one
104672 - changing the check condition to "per_bfd->types.size () > 1", and
104691 to specify a .debug_names index with the TU list referring to a TU from the
104694 This is intended to produce something similar to:
104732 (normally, this is a non-NULL pointer to a NULL-terminated list).
104737 to allow non-enum disassembler options.
104754 renamed to EBREAK in 2016 (the RISC-V ISA, version 2.1).
104774 changes were made to the simulator source to handle the new libopcodes
104784 /tmp/build/sim/../../src/sim/erc32/interf.c:247: undefined reference to `fprintf_styled'
104792 Now, the obvious fix would be to move fprintf_styled into libsim.a,
104793 however, that turns out to be tricky.
104801 requiring the linker to pull in fprintf_styled from libsim.a I was
104806 The ideal solution of course, would be to merge the two similar, but
104811 But I don't have time right now to start debugging the erc32
104815 The easiest solution I think is to just have two copies of
104819 not very big, so it's not a huge amount of duplicate code.
104822 welcome anyone who wants to take on fixing the run_sim problem
104836 When generating TLS dynamic relocations the existing xtensa BFD code
104837 treats linking to a PIE exactly as linking to a shared object, resulting
104862 output so that section symbols without a name as shown with their
104863 section name."), but xtensa linker TLS relaxation tests weren't adjusted
104870 * testsuite/ld-xtensa/tlsbin.rd: Adjust expected output to allow
104874 * testsuite/ld-xtensa/tlspic.rd: Adjust expected output to allow
104885 This patch makes possible to print the highest address (-1) and the addresses
104886 related to gp which value is -1. This is particularly useful if the highest
104888 Besides, despite that it is very rare to have GP the highest address, it would
104904 * riscv-dis.c (struct riscv_private_data): Add `to_print_addr' to
104935 handling to sign-extend lower 32-bits of the original result.
104941 * testsuite/gas/riscv/dis-addr-addiw.s: New to test the address
104961 to gdb-patches@sourceware.org.
104963 This commit does the same to sim/MAINTAINERS.
104984 integer representation it corresponds to for integer parameters.
105012 to the sysconfig module[2].
105017 need to support both implementations for backward compatibility.
105053 Remove a call to clear_interpreter_hooks
105054 mi_interp::resume does not need to call clear_interpreter_hooks,
105058 The TUI checks against gdb_stdout to decide when to buffer. It seems
105059 much cleaner to me to simply record this as an attribute of the stream
105063 gdb_setup_readline makes new streams and assigns to the various stream
105065 values to leak. As far as I can, this code is simply unnecessary and
105066 can be removed -- with the exception of the assignment to gdb_stdtarg,
105074 This changes safe_parse_type to use scoped_restore rather than
105078 This changes 'struct ui' to use member initialization. This is
105079 simpler to understand.
105093 This changes ui_out_redirect_pop to also perform the redirection, and
105094 then updates several sites to use this, rather than explicit
105101 Remove some dead code
105102 This patch removes some dead code and an old FIXME. These no longer
105106 This changes gdb so that, if ui::input_fd is set to -1, then it will
105108 support code I wrote, but as it turns out to also be useful to
105109 Insight, it seems best to check it in separately.
105116 These three registers all relate to the floating-point status and
105118 status register, and consists of two parts, the flags (bits 0 to 4)
105119 and the rounding-mode (bits 5 to 7).
105124 register. So fflags is an alias for bits 0 to 4 of fcsr, and frm is
105125 an alias for bits 5 to 7 of fcsr.
105137 In contrast, the RISC-V native Linux target only has access to the
105150 expects the target to handle reading and writing these registers. And
105157 target description, but the target doesn't know how to access the
105160 A final complication relating to these floating pointer CSRs is which
105170 unreasonable to me, and so I had GDB check for these registers in
105173 In this commit I make some changes relating to how GDB handles the
105180 target (e.g. QEMU) from continuing to include all three of these CSRs,
105181 the code in riscv-tdep.c continues to check for all three of these
105185 then RISC-V GDB will now create two pseudo registers in order to
105192 its target description, but, if GDB falls back to using
105195 riscv_gdbarch_tdep::frm_regnum, I've then updated the RISC-V code to
105199 pseudo-register numbers are calculated after the call to
105204 I've updated some tests to include more testing of the fflags and frm
105209 gdb: Add tdesc_found_register function to tdesc API
105210 This commit adds a new function to the target description API within
105215 What I want to do in the next commit is check to see if a target
105219 The new function allows me to ask the tdesc_arch_data whether a
105222 solution than adding code such that, while checking each feature, I
105225 No tests here as the new code is not used, but this code will be
105250 frm 0x0 FRM:0 [RNE (round to nearest; ties to even)]
105251 … fcsr 0x0 RD:0 NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:0 [RNE (round to nearest; ties to even)]
105270 The first change I propose in this commit is to remove the 'RD'
105275 frm 0x0 FRM:0 [RNE (round to nearest; ties to even)]
105276 fcsr 0x0 NV:0 DZ:0 OF:0 UF:0 NX:0 FRM:0 [RNE (round to nearest; ties to even)]
105290 Notice that despite being a 3-bit field, FRM masks to 2-bits.
105292 defined for all 8 values. That GDB masks to 2-bits is just a bug I
105300 instruction, or a RISC-V instruction can choose to use a global,
105304 indicates "dynamic round mode", the instruction should defer to the
105307 But it makes no sense for the FRM of $fcsr to itself be set to
105311 _its_ round-mode set to dynamic, and the FRM field is also set to 0x7,
105314 And so, I propose changing the text for value 0x7 of the FRM field to
105320 I've added a new test that uses 'info registers' to check what GDB
105321 prints for the three registers related to this patch. There is one
105324 allows these registers to be reported as '<unavailable>'.
105360 value is a null-terminated string containing the name of the
105368 unnamed namespaces or the existence of a linkage name).
105371 tags optional, similar to the unnamed namespaces.
105375 case was added to the switch statement calling the
105384 While I do not know of a way to bring GCC to emit template tags without
105442 The same principle theoretically applies to template functions. Also
105444 way to trigger and test this changed behavior. Template functions do
105445 not emit a '[with...]' list and their name generation also does not
105447 not a template tag has a name in 'dwarf2_compute_name' and thus, the
105456 gdb, testsuite: adapt function_range expected name
105457 When writing a dwarf testcase for some C++ code I wanted to use the
105459 to extract the bounds of 'main'.
105465 c_type_print_args on C++ functions and append their arguments to the
105466 function name. This happens to all C++ functions, but is only visible
105467 when the function doesn't have a linkage name.
105469 An example might make this more clear. Given the following code
105492 Dump of assembler code for function main(int, char**):
105499 Dump of assembler code for function _Z3fooif:
105507 name is being printed, as also visible in its DWARF:
105526 Dump of assembler code for function main:
105533 Dump of assembler code for function foo:
105540 Note, for foo we did not get a linkage name emitted in DWARF, so
105541 it is printed by its name:
105553 list was added to the regex matching the function name in the
105561 The call to debuginfod_debuginfo_query in elf_symfile_read is given
105562 objfile->original_name as the filename to print when downloading the
105567 causes debuginfod to display the wrong path of the objfile during a download.
105579 in order to fix linking against Microsoft import libraries, ld did
105582 every archive member had the same name (no regard for exactly what
105583 that name was).
105586 (in 2003) to allow for Microsoft import libraries with intermixed
105589 the exact same member name, or be named *.obj. (Curiously, this would
105590 allow members with any name if it precedes the first one named *.dll.)
105596 Instead of trying to do validation of the whole archive before
105604 names), and vastly simplifies the code.
105607 seem to bundle up multiple import libraries together with some
105639 Given we'll have to transition to std::invoke_result eventually, make a
105640 GDB wrapper to mimimc std::invoke_result, which uses std::invoke_result
105642 to remove the wrapper in the future, just replace gdb:: with std::.
105656 way to write a test for this.
105669 (concat_filename): Use new field to help select the correct table
105679 The print_one_detail_ranged_breakpoint has been renamed to
105685 Convert ranged breakpoints to vtable ops
105716 Three-part patch set from Tsukasa OI to support zmmul in assembler.
105760 * riscv-opc.c (riscv_opcodes): Updated multiply instructions to zmmul.
105785 the CU at 0x0 to the actual size of both CUs combined.
105787 This eventually leads to the assert, when we read the actual size from the CU
105793 The easiest way to fix this is to set the length to 0 (meaning: unkown) in
105796 This makes the failure mode to accept the incomplete CU table, but to ignore
105799 It would be nice to instead reject the .debug_names index, and build a
105801 dwarf2_initialize_objfile, so it looks rather intrusive to restart at that
105829 The call to gdbarch_update_p fails because commit 575b4c298a6 ("gdb: Remove
105832 Fix this by adding score-*-* to the list of obsolete targets in
105833 gdb/configure.tgt, such that we're no longer able to build the configuration:
105841 list in gdb/MAINTAINERS, such that gdb/gdb_mbuild.sh no longer tries to build
105856 line_delta to flag end of section. This filters its way down to
105857 size_inc_line_addr and emit_inc_line_addr. Pass line_delta on to
105858 scale_addr_delta where it can be used to omit an unaligned opcode
105884 Similar to 911438f9f4 ("gdbsupport: fix array-view compilation with
105904 gdb: change bpstat_print's kind parameter to target_waitkind
105905 Change from int to target_waitkind, which is really what is is. While
105915 Factor out the code that checks that a value is yes/no or yes/no/auto.
105916 Add two macros to gdbsupport/common.m4 and use them in gdb/configure.ac
105918 I inspected the changes to configure. Other than whitespace changes, we
105919 have some benign changes to the error messages (one of them had an error
105920 actually). There are changes to the --enable-source-highlight and
105930 The fail was due to -Werror and headers included by dlfcn.h and
105947 Allow to document user-defined aliases.
105948 Compared to the previous version, this version fixes the comments reported by
105950 shows the alias definition to ensure the user understands this is an
105956 However, GDB alias command allows to define aliases with arguments
105962 nested 'with' followed by a last command to launch, such as:
105969 Temporarily set SETTING to VALUE, run COMMAND, and restore SETTING.
106001 …cpustate.c:270:1: error: conflicting types for 'aarch64_get_CPSR_bits' due to enum/integer mismatc…
106017 used in shared library. This will lead to incorrect run-time behavior
106028 to disable linker error. If function pointer equality is needed, linker
106039 GAS: Add a return type tag to DWARF DIEs generated for function symbols.
106047 (out_debug_info): Use the new defined constants when referring to
106050 * testsuite/gas/elf/dwarf-3-func.d: Update to allow for newly
106056 GAS: Allow AArch64 pseudo-ops to accept the command line separator character.
106097 ld: pe: Move the return type to a separate line from the function name
106136 I've been able to find.
106151 When debugging a certain class of GDB bug, I often end up wanting to
106153 not too hard to pull this from some debug output, but I thought it
106158 to find the frame-id for a specific frame.
106183 I don't think it makes any sense for a SHT_RELR section to specify a
106185 There is no real need to specify sh_info either, SHT_RELR is not for
106187 themselves to even half-sensible objects. So they found a hole in
106190 sh_info target section. When it came to reading in the target section
106199 Further to commit 7744e3278b9f.
106206 Add an option to dlltool to allow the creation of deterministic libraries.
106231 This implements target async for Windows. The basic idea is to have
106234 behavior is undesirable, so the functions passed to do_synchronously
106235 are changed to return a boolean indicating which behavior is needed.
106239 Move some Windows operations to worker thread
106241 that started (or attached) to the inferior. Also, there is no way on
106242 Windows to wait for a debug event in addition to other events.
106243 Therefore, in order to implement target async for Windows, gdb will
106244 have to call some functions in a worker thread.
106260 to test Ravenscar using the FSF test suite.
106266 Have readelf warn users if it is asked to decode a LLVM bitcode file or a golang object file.
106269 magic values, then attempts to generate a helpful error message.
106312 gdbpy_parse_register_id to be more "Python-like" -- it always ensures
106324 passed on to bfd_get_relocated_section_contents. No surprises there.
106327 symbols are added to the generic linker hash table. Global symbols
106328 are not added to the linker hash table if symbols *are* provided. Now
106334 difference. We could always add them, but I'm inclined to think that
106388 system that does not generate position-independent code by default, but
106389 the system the test runs on tries to link the test executable as
106393 so the generated code doesn't change.
106407 Callfuncs.exp is impacted and won't run due to new warnings:
106416 leave that up for others to decide/implement.
106423 options to disable some warning. That is OK with GCC, because
106427 We do that here, so that individual testcases don't have to
106436 According to LoongArch ELF ABI specification [1], variadic arguments
106440 be left unused due to the aligned register pair rule. long double data
106466 java specific code.
106497 The problem is that the type that gets passed down to
106499 trying to read the entry value) is a typedef whose size has never been
106502 variable is therefore set to 0, instead of the actual type length. We
106505 passing to the copy function a source array view of length 0 and a
106512 succeeded. It's possible that we need to get into this specific code
106513 path (value_of_dwarf_reg_entry and all) to manage to get to
106520 test. The .cpp source code is the smallest reproducer I am able to make
106521 from the reproducer given in the bug (thanks to Pedro for suggestions on
106522 how to minimize it further than I had). Since I tested on both amd64
106533 gdb.dwarf2/dw2-dir-file-name.exp testcase to be part of a prologue.
106541 In the particular case of gdb.dwarf2/dw2-dir-file-name.exp, the analyzer skips
106542 a couple instructions and leaves us in a nice spot where the address to the
106567 some registers as it obtains the new gdbarch that corresponds to the
106576 [ snip registers x0 to x30 ]
106589 [ snip registers x0 to x30 ]
106600 length) changed from 8 to 4. The tpidr register is provided by the
106603 This happens because the code that searches for a new gdbarch to match the
106618 gdbsupport/event-loop: add a timeout parameter to gdb_do_one_event
106623 loops have then to be "merged" (i.e.: work together). But this is
106627 A solution is to delegate GUI events handling to the gdb events handler.
106628 Insight uses Tck/Tk as GUI and the latter offers a "notifier" feature to
106630 function to support a timeout parameter. Unfortunately gdb_do_one_event
106633 it would become an event by itself and thus can cause a legitimate event to
106639 This patch implements a wait timeout to gdb_do_one_event. The initial
106641 to enter a wait state. If no pending event has been found during this
106642 phase, a timer is then created for the given timeout in order to re-use
106647 The new parameter defaults to "no timeout" (-1): as it is used by Insight
106648 only, there is no need to update calls from the gdb source tree.
106652 gdb: add Patrick Monnerat to gdb/MAINTAINERS
106658 errors, is annoying. Introduce a boolean variable to emit the warning
106660 move the warning to output_insn(). (I didn't want to go as far as
106689 Fix mmo_get_byte to return a fail-safe value, not just on the first
106698 * mmo.c (mmo_make_section): Alloc name using bfd_alloc. Use
106705 mmo_get_loc needs to handle arbitrary vma and size chunks. Fuzzers
106707 getting close to address wrap-around.
106727 ___lc_codepage_func was introduced to determine the current encoding.
106729 Prior to version 9.0 of MinGW-w64, the function prototype for
106730 ___lc_codepage_func was missing and trying to build BFD caused the
106736 ___lc_codepage_func to allow a sucessful build with MinGW-w64.
106742 due to additional styling characters. Each style is encoded with 3
106744 increase it from 100 bytes to 128 bytes to accommodate 9 sets of styles
106768 The problem was that GDB was failing to stop after a finish command,
106769 and was then running to an unexpected location.
106771 The reason GDB failed to stop at the finish breakpoint was that the
106775 The reason for this mismatch was that the assembler code that is
106781 32 to 64 bits. If the expected $fp value has some significant bits
106785 and making use of preprocessor macros to specialise the file for the
106790 Once I'd decided to make use of preprocessor macros to solve the 32/64
106805 to
106815 Update the test to expect the new form.
106822 When working on windows-nat.c, it's useful to see an error message in
106823 addition to the error number given by GetLastError. This patch moves
106824 strwinerror from gdbserver to gdbsupport, and then updates
106825 windows-nat.c to use it. A couple of minor changes to strwinerror
106833 argument to gdbarch_register. Regression tested on x86-64 Fedora 34.
106842 3) When assigning sections to segments (IS_SECTION_IN_INPUT_SEGMENT)
106843 use bed->want_p_paddr_set_to_zero to decide whether lma vs p_paddr
106849 are it can lead to the situation triggered by the testcases, where a
106863 Now that we can purge templates, let's use this to improve readability a
106872 certain patterns. Introduce "xy" and "xyz" templates to reduce
106875 To facilitate using a uniform name for both AVX and AVX512, further
106876 introduce a means to purge a previously defined template: A standalone
106877 <name> will be recognized to have this effect.
106880 to separate AT&T and Intel syntax forms, matching VFPCLASSP{S,D} and
106888 template to reduce redundancy.
106891 - the AVX VPEXTRW template which is not being touched needs to remain
106894 requires it to be first,
106895 - this add a benign/meaningless IgnoreSize attribute to the memory form
106902 AVX512 scatter/gather ones. On the moved lines also convert EVex=<n> to
106910 template to reduce redundancy.
106913 - a few otherwise untouched templates are moved, so they end up next to
106918 {,V}PEXTRQ, and {,V}PINSRQ are useful to keep),
106919 - this adds benign/meaningless IgnoreSize attributes to the GPR forms of
106926 pairs follow certain encoding patterns. Introduce an "sd" template to
106927 reduce redundancy. Similarly, to further cover similarities between
106931 determination, allowing Disp8MemShift to be specified without an operand
106942 - VFPCLASSPH is properly split to separate AT&T and Intel syntax forms,
106947 revert "x86: Also pass -P to $(CPP) when processing i386-opc.tbl"
106949 broke i386-gen's emitting of diagnostics. As a replacement to address
106951 the line continuation backslashes, switch to using + as the line
106977 When kernel veriosn >= V4.x, the characteristic values used to
107006 This comment (and the functionality it describes) relates to how QEMU
107018 Upon further investigation, it turns out I was wrong. GDB has to use
107019 the csr copy of the register. If GDB tries to use the register from
107020 the fpu feature then QEMU will return an error when GDB tries to read
107023 Luckily, the code within GDB (currently) will always select the csr
107025 This commit updates the comment to better describe what is actually
107028 Of course, I should probably also send a patch to QEMU to fix up the
107029 target description that is sent to GDB.
107041 The printable name field of the default nds32 bfd_arch_info changed
107042 from 'n1h' to 'n1'. As a consequence the generated feature file
107047 Move decode_location_spec to code_breakpoint
107049 out to be relatively easy to remove this method from breakpoint and
107050 instead move the base implementation to code_breakpoint.
107052 Change location_spec_to_sals to a method
107053 location_spec_to_sals is only ever called for code breakpoints, so
107056 Change breakpoint_re_set_default to a method
107093 now use %z and %t rather than by casting to unsigned long. Also,
107106 cosmetic. The point of the change is to avoid use of a BFD type
107107 in readelf, where we'd like to keep as independent of BFD as
107121 [gdb/testsuite] Fix gdb.dwarf2/dw2-dir-file-name.exp
107122 When running test-case gdb.dwarf2/dw2-dir-file-name.exp on x86_64-linux, we
107126 Breakpoint 2 at 0x4004c4: file tmp-dw2-dir-file-name.c, line 999.^M
107132 at tmp-dw2-dir-file-name.c:999^M
107133 (gdb) PASS: gdb.dwarf2/dw2-dir-file-name.exp: \
107134 compdir_missing__ldir_missing__file_basename: continue to breakpoint: \
107138 When trying to set a breakpoint on
107140 prologue skipper starts at 0x4004c0 and skips past two insns, to 0x4004c4:
107155 CU: tmp-dw2-dir-file-name.c:
107156 File name Line number Starting address View Stmt
107157 tmp-dw2-dir-file-name.c 999 0x4004c0 x
107158 tmp-dw2-dir-file-name.c 1000 0x4004d6 x
107159 tmp-dw2-dir-file-name.c - 0x4004d6
107167 Breakpoint 2 at 0x400618: file tmp-dw2-dir-file-name.c, line 999.^M
107169 due to the architecture-specific prologue skipper starting at 0x400610 and
107170 skipping past two insns, to 0x400618:
107191 Breakpoint 2 at 0x400610: file tmp-dw2-dir-file-name.c, line 999.^M
107195 This requires us to update the expected patterns.
107209 When doing varobj_re_set, we currently try to recreate floating varobj.
107211 of varobj_invalidate" to deal with use a after free issue. However
107216 This commit proposes to remove this recreation process for floating
107225 [This patch is a followup to the discussion in
107232 In the testcase, a varobj is created to track a global variable, and
107235 During the load of the new binary, GDB tries to recreate the varobj to
107237 point, the old process is still in flight. So when we try to access to
107238 the value of the global, in a PIE executable we only have access to the
107240 consequence down the line read_value_memory fails to read the unrelated
107242 expression used to access to the global’s value is valid, so the varobj
107251 executable install_new_value sees that value changes, leading to a
107255 relocation has happened before we try to recreate varobjs. This way we
107265 The varobj_invalidate_iter function has logic to invalidate any local
107267 after free in varobj" all varobj containing references to an objfile are
107271 contains valid references and there is no reason to invalidate it.
107273 This patch proposes to remove this unnecessary invalidation and adds a
107275 survive a call to varobj_invalidate_iter.
107313 PPC_OPERAND_PLUS1 fits perfectly to mark that maximal value should be
107325 Grants No: 825310 and 825322, SV is in DRAFT form and is to be publicly
107338 will cause GDB to print an error and/or abort unwinding of the frame as
107341 The FNC_RETURN pattern requires Security Extensions to be enabled.
107350 have never been supported by the RISC-V port. Remove related ld code.
107362 allowing sb_scrub_and_add_sb to see whether there is pending input.
107364 to resize the output buffer.
107366 sb_scrub_and_add_sb also limited output to the size of the input,
107371 expansion code relied on do_scrub_chars returning early. So fix that
107380 Allow output to max.
107414 According to the output syntax [1], curly braces means tuple, and a
107427 -fix-breakpoint-script-output MI command to set it, if frontends want
107428 to use the fixed output for this without using the newer MI version.
107447 Default to enabling colored disassembly if output is to a terminal.
107460 cannot_store_register gdbarch method to tell GDB this.
107462 Without this method GDB will try to write to x0, and relies on the
107463 target to ignore such writes. If you are using a target that
107464 complains (or throws an error) when writing to x0, this change will
107467 The gdb.arch/riscv-reg-aliases.exp test exercises writing to x0, and
107473 With a recent import of gnulib, code has been pulled that tests and enables
107482 This will lead to mismatches in the struct stat size, leading to memory
107489 2038, if it makes sense. 64-bit hosts seems to be more common these days, so
107490 I'm not sure how important it is to have this support enabled and how soon
107491 we want to enable it.
107501 mistakenly didn't. It needs to calculate the high_pc expression ahead of
107502 time, in order to skip emitting any data for the function if the value
107506 symbol_get_obj(symp)->size ends up evaluating to zero. I hope we can
107507 expect that to not be the case, otherwise we'd need to have a way to
107509 actually writing the data out to the file. Even then it wouldn't be
107510 entirely obvious in which way to alter the data.
107515 Prior to the inline plt call support (commit 08be322439), the only
107523 use_plt_offset to pltcal_to_direct, invert logic. For relocs
107533 pei-loongarch64. This is not a full target and only exists to support EFI at
107537 a container format. This format has been added to elf based loongarch64 targets
107542 We should't limit addresses to 32-bits for 64-bit vma, otherwise there will be
107627 (gdb) PASS: gdb.arch/riscv-reg-aliases.exp: write non-zero value to ft0
107630 (gdb) FAIL: gdb.arch/riscv-reg-aliases.exp: read ft0 after non-zero write to ft0
107639 The problem is that when 501 is written to $ft0.float the value is
107640 converted to floating point format and stored in the register. Prior
107641 to the above commit printing with /x and /d would first extract the
107642 value as a float, and then convert the value to an integer for
107667 The current implementation of the fcc register is referenced to the
107684 According to "Condition Flag Register" in "LoongArch Reference Manual"
107686 uint8 to make it easier for users to view the fcc register groups.
107705 Default to enabling colored disassembly if output is to a terminal.
107707 * objdump.c (disassembler_color): Change type to an enum.
107725 When we create a pthread debug session we have callbacks to read
107728 Before we come into aix-thread wait() we switch to no thread and
107731 When we get into pdc_read_data we have a dependency that we need to
107733 thread, inorder to read memory.
107735 Hence we switch to the correct thread.
107752 Fix this by simplifying the test-case to print _start rather running to it.
107758 gdb/riscv: use register name enum values in riscv-linux-nat.c
107768 x86-64: adjust MOVQ to/from SReg attributes
107769 It is unclear to me why the corresponding MOV (no Q suffix) can be
107770 issued without REX.W, but MOVQ has to have that prefix (bit). Add
107788 While the x/y/z suffix isn't necessary to use in this case, it is still
107795 basis: In Intel syntax we want to consistently issue an "ambiguous
107827 solib ops would default to current_target_so_ops; but the patch
107828 changed this code to default to nullptr. This patch fixes the bug by
107831 I managed to reproduce the bug with a riscv-elf build and then
107840 dissably call with source code involved. E.g.
107854 belongs to:
107871 that I can get to 1.5s and there are other symbols where the difference
107884 (stash_comp_unit): Insert to the splay tree.
107928 name (strp) "__ioinit"
107960 Add a link to the NEWS files in the release announcement email.
107993 ‘<brace-enclosed initializer list>’ to ‘gdb_user_regs’
108047 A per-module .debug_names section needs to have an entry in the CU list for
108060 Also I've kept the bucket count to 1, which makes it trivial to satisfy the
108093 for a symbol error. If the symbol name is the last string in its
108122 changes it to return false on silly alignment values, avoiding yet
108123 another way to trigger ubsan errors like coffcode.h:3192:12: runtime
108127 error of some sort. Change that to keep going, which might change the
108143 Do the shift using unsigned variables to avoid UB on << 8.
108146 variables to their blocks.
108168 PRIx64 and casts to promote bfd_vma to uint64_t. The one file using
108199 This seems to be fixed by this change in the struct language_gdbarch
108215 Extend the unit test for gdb::parallel_for_each to test both.
108225 In dwarf2_build_psymtabs_hard, we use a parallel_for_each to distribute CUs
108234 I've used this experiment to verify the performance impact:
108270 With parallel_for_each_debug set to true, we get some more detail about
108299 Add a task_size parameter to parallel_for_each, defaulting to nullptr, and use
108300 the task size to distribute similarly-sized chunks to the threads.
108379 binutils/Dwarf: avoid "shadowing" of glibc function name
108389 "2048" (SHF_COMPRESSED) is not going to be portable in the long term, it
108396 * testsuite/gas/elf/section10.s: Use SHF_LINK_ORDER to test
108402 When gas/read.c calls mbstowcs with a NULL destination, it should set size to 0
108405 invoking mbstowc in order to check the validity of a wide string.
108411 that allow me to inspect a variable of a common type, like:
108417 Add functions to dump variables of types 'value' and 'expression':
108447 enabled), link ld to it, and use it to validate that the input is
108448 correct JSON, to avoid writing garbage to the file. The
108449 configure option --enable-jansson has to be used to explicitly enable
108451 are not interested) to seamlessly skip it without issues.
108474 There is more work to be done to actually support compression and
108475 decompression using the zstd library, but I will leave that to the
108490 it to instead use registry.h. It's a rather large patch but largely
108492 approach to the new one.
108494 The main benefit of this change is that it introduces type safety to
108495 the gdbarch registry. It also removes a bunch of code.
108499 doesn't seem very important to me, though.
108503 Allow registry to refer to const types
108504 So far, the registry hasn't been used to refer to a 'const' type, but
108505 this changes with the gdbarch change. This patch arranges to let the
108506 registry store a pointer-to-const, by removing const in the 'set'
108510 This changes gdbarch to use new and delete.
108513 This changes gdbarch to use bool for initialized_p.
108541 - gdb fails to set a hw watchpoint and instead sets a sw watchpoint
108559 - initializing wpnum to 0 instead of ""
108560 - signalling the failure to set a hw watchpoint by a fail
108578 The problem is that the architecture-specific prologue analyzer fails to
108596 - fixing the support for the first insn to extract the immediate operand, and
108612 BFD_VMA_FMT can't be used in format strings that need to be
108614 bfd_vma differs from the machine used to compile .pot files. We've
108620 needed to preserve PRId64 output from bfd_vma values, or to preserve
108629 spaces to line up output due to the original %V printing hex vmas with
108631 to print 32-bit vmas for 32-bit targets. So change %V back to be
108634 currently use %V must instead sprintf to a buffer in order to find the
108638 (print_space): Change to a macro.
108649 with printing to a buffer in order to properly format output.
108655 R_MIPS_REL16 isn't a pc-relative reloc as the name might indicate.
108657 * elf64-mips.c (mips_reloc_map): Map BFD_RELOC_16 to R_MIPS_REL16.
108667 Reset alignment for each PT_LOAD segment to avoid using alignment from
108684 Use unique_ptr to destroy per-bfd object
108689 condition used to create it -- so it could possibly result in a memory
108694 This changes objfile to use an auto_obstack. This helps prevent
108700 This changes struct objfile to use a gdb_bfd_ref_ptr. In addition to
108703 was that, in some cases, registry shutdown could refer to memory that
108719 …Fix a conflict between the linker's need to rename some PE format input libraries and the BFD libr…
108726 * opncls.c (bfd_set_filename): Refuse to change the name of a bfd
108733 to the same bfd, store their names in the sort_key field.
108735 * ldlang.c (sort_filename): New function. Returns the filename to
108766 keeps stale references to object being freed when we unload an objfile.
108767 This includes the "valid_block" field which is reset to nullptr if the
108768 pointed to block is tied to an objfile being freed.
108770 However, at some point varobj_invalidate_iter might try to recreate
108773 bc20e562ec0 might clear this field, we have lost the ability to
108774 distinguish between varobj referring to globals and non globals.
108785 against size remaining, due to ISO C 9899 standard 6.5.2 para 8
108786 regarding adding a constant to a pointer:
108788 "If both the pointer operand and the result point to elements of the
108794 array object" in this case to be the malloc'd section contents!
108806 - Instead check opcode space, even if just to be on the safe side going
108811 Just like all Size64 insns are marked Cpu64, all Size32 insns ought to
108817 selecting which form if "reversing" to use - except for the MOV to/from
108819 (rather than bit 1) to indicate the direction (from/to memory) of an
108838 simple boolean to returning the size of the register set. The
108841 return type to be a size_t.
108851 needs to be emitted. Otherwise tools like objdump won't properly process
108858 While there also amend the affected function's leading comment to also
108865 choose whether to perform a relaxation to an IE access model or an LE
108870 dynamic access can be relaxed to an initial exec access when creating a
108872 relax it to a local exec access instead. This usually does not happen
108880 and known to be located in the executable. This happens on all global
108885 to local-exec if we are creating an executable and the relevant symbol
108890 Many of the tests added to check our relaxation to IE were implemented
108897 such symbols and relax their accesses to a local-exec access.
108899 Hence we have to update all tests that relied on the older suboptimal
108902 The two cases when we still would want to relax a general dynamic access
108903 to an initial exec one are:
108912 I have chosen to switch the existing testcases from a plain executable
108913 to one dynamically linked to a shared object as that doesn't require
108915 different variable rather than requiring adding another code sequence).
108917 The tls-relax-all testcase was an outlier to the above approach, since
108918 it included a general dynamic access to both a local and global symbol
108924 The updates are to ensure that the .data section exists. This means
108929 N.b. this changes quite a few testcases from fail to pass.
108934 This patch extends assembler support for the use of register names to
108952 pseudo-registers to match values assigned in DWARF standards (see "4.1
108953 DWARF register names" in [1])so ra_auth_code goes from 12 to 143 and
108954 amends the unwinder .save directive-processing code to correctly handle
108957 The mechanism for splitting the register list is also re-written to
108985 (parse_reg_list): Remove obsolete code.
108986 (reg_names): Set ra_auth_code to 143.
108998 and "corrupt unwind data" warnings, and refuses to dump that info. It
109008 By mistake it was permitted to be used from the very introduction of XOP
109021 This maps to the same as ld's --exclude-symbols command line option,
109028 The function read_addrmap_from_aranges contains code to issue a warning:
109058 2022-08-01 WANG Xuerui <git@xen0n.name>
109060 opcodes: LoongArch: add "ret" instruction to reduce typing
109064 the feature's popularity. It's better to provide support directly in the
109065 assembler so downstream users wouldn't have to re-invent this over and
109070 2022-08-01 WANG Xuerui <git@xen0n.name>
109072 opcodes: LoongArch: make all non-native jumps desugar to canonical b{lt/ge}[u] forms
109074 sorted in ascending order according to opcodes, and the label form
109085 Replace them in most cases with code that prints a bfd_vma using
109098 Instead use PRIx64 to print bfd_vma values.
109110 sprintf_vma. Instead use PRIx64 to print bfd_vma values.
109116 (print_main_table): Use PRIx64 to print opcode.
109120 PRIx64 to print bfd_vma values.
109124 (print_vma): Don't use printf_vma. Instead use PRIx64 to print
109131 Instead use PRIx64 to print bfd_vma values.
109137 Instead use PRIx64 to print bfd_vma values.
109140 * symbols.c (print_symbol_value_1): Use %p to print pointers.
109142 (print_expr_1): Use PRIx64 to print bfd_vma values.
109143 * write.c (print_fixup): Use %p to print pointers. Don't use
109151 use PRIx64 to print bfd_vma values.
109153 sprintf_vma. Instead use PRIx64 to print bfd_vma values.
109155 * ldlang.c (lang_map): Use %V to print region origin.
109165 LoongArch: Set defaults to exec stack 0.
109177 bfd_uint64_t with uint64_t: Some hosts typedef int64_t to long long
109178 even when long is the same size as long long. That confuses the code
109184 Note that the changes to configure.com are pure guesswork.
109189 (bfd_vma, bfd_signed_vma): Move comments to 64-bit typedefs.
109276 Using different ways of passing source file paths to compilers results n
109284 Because of this, GDB sometimes failed to look up macros. The previous
109291 to make sure that GDB keeps handling all these cases correctly, even if
109298 to generate the DWARF assembler-based test.
109300 For the DWARF assembler-based test, add to testsuite/lib/dwarf.exp the
109301 necessary code to generate a DWARF5 .debug_macro section. The design of
109313 gdb: remove code to prepend comp dir in buildsym_compunit::start_subfile
109314 The bit of code removed by this patch was introduced to fix the same
109315 kind of problem that the previous patch fixes. That is, to try to match
109316 existing subfiles when different name forms are used to refer to a same
109319 The thread for the patch that introduced this code is:
109341 Because of this mismatch, thing didn't work, so they added this code to
109342 prepend the compilation directory to the existing subfile names, so that
109353 I therefore think that this code is no longer needed. It does feel like
109354 a quick hack to make one specific case work, and we have a more general
109355 solution now. Also, this code was introduced to work around a problem
109357 think it's preferable for these hacks to be located in the specific
109358 debug info reader code, rather than in the common code.
109360 Even though this code was added to work around a DWARF reader problem,
109362 advantage of this code in the mean time. It's very difficult to
109364 proposing to get rid of it to simplify things a little bit.
109370 gdb: add "id" fields to identify symtabs and subfiles
109397 When starting to investigate this (taking the gcc-compiled binary as an
109398 example), we see that GDB fails to look up the appropriate macro scope
109402 (top-gdb) p name
109407 `source` is the macro_source_file that we would expect GDB to find.
109408 `name` comes from the symtab::filename field of the symtab we are
109410 the name of the macro_source_file doesn't match exactly the name of the
109413 The name of the main symtab comes from the compilation unit's
109414 DW_AT_name, passed to the buildsym_compunit's constructor:
109419 (what I witnessed all compilers do) the same string that was passed to
109422 The name of the macro_source_file comes from the line number program
109423 header's file table, from the call to the line_header::file_file_name
109429 entry refers to, in the file table (if the file name is not already
109430 absolute). In this case, the file name is "test.c", appended to the
109433 Because the symtab's name is not created the same way as the
109434 macro_source_file's name is created, we get this mismatch. GDB fails to
109440 path can be passed to the compiler by the user.
109442 Another thing to consider is that while the main symtab's name (or
109444 main symtab is also referred to using its entry in the line table
109446 ensure that the same name is produced in both cases, so that a call to
109449 we fail to do that, things still often work, because of a fallback: the
109455 last effort to work around any bug or bad debug info, but I don't think
109456 we should design things such as to rely on it. It's a heuristic, it can
109458 some good debug info, we don't end up relying on that for things to
109461 A first attempt at fixing this was to try to prepend the compilation
109464 possible to get something that would produce reliable, consistent paths.
109466 Another attempt at fixing this was to make both macro_source_file
109468 That means to prepend directories at least until we get an absolute
109471 resulted in user-visible changes (for example, paths to source files in
109474 lets the user control how they want the paths to be displayed, and that
109477 require a good amount of testsuite tweaks to make tests accept these
109481 "filename_for_id" in struct symtab and struct subfile, next to the
109482 existing filename field. The goal is to separate the internal ids used
109485 internally. For DWARF symtabs, this new field is meant to contain the
109488 symtab::filename field remains the one used for printing to the user, so
109493 - Add "name_for_id" and "filename_for_id" fields to "struct subfile"
109494 and "struct symtab", next to existing "name" and "filename" fields.
109497 next to the existing "name" ones.
109500 to start_subfile for the main source file look up the existing
109504 to macro_lookup_inclusion. This is the key thing to making the
109510 name. The only pre-existing user of this method is the macro code,
109511 to give the macro_source_file objects their name. And we now want
109512 them to have this "most complete possible" name, which will match the
109515 possible" name for the main symtab's "filename_for_id". In this
109517 / DW_AT_comp_dir, it means prepending DW_AT_comp_dir to DW_AT_name if
109519 - Change dwarf2_start_subfile to build a name_for_id for the subfile
109520 being started. The simplest way is to re-use
109523 representation as the macro code does, for the same file (since it
109525 - Update calls to allocate_symtab to pass the "name_for_id" from the
109541 …[symtab-create] start_subfile: name = test.c, name_for_id = /home/simark/build/binutils-gdb-one-ta…
109542 …[symtab-create] start_subfile: name = ./test.c, name_for_id = /home/simark/build/binutils-gdb-one-…
109543 …[symtab-create] start_subfile: name = ./test.c, name_for_id = /home/simark/build/binutils-gdb-one-…
109558 name: "test.c"
109564 table header does not match exactly the name in the compilation unit.
109572 clang create two entries that refer to the same file but are of in a different
109578 name: "test.c"
109581 name: "test.c"
109584 The first file name produces a path without a "." while the second does.
109587 table. It therefore appears as "non-empty" to
109595 name test.c
109611 happens before my patch, so I think its acceptable to leave it as-is.
109617 Finally, I made a change in find_file_and_directory is necessary to
109641 "dw2-compdir-oldgcc42.S", which refers to directory 0. Directory 0
109642 normally refers to the compilation unit's comp dir, but it is
109645 This caused some symtab lookup problems, and to work around them, some
109659 Prior to my patch, a subfile would get created with filename
109665 [symtab-create] start_subfile: name = /dir/d/dw2-compdir-oldgcc42.S
109666 [symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S
109667 [symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S
109668 …[symtab-create] start_subfile: found existing symtab with name dw2-compdir-oldgcc42.S (dw2-compdir…
109675 find_file_and_directory, both DW_AT_name and the line table would try to
109679 …[symtab-create] start_subfile: name = /dir/d/dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-comp…
109680 …[symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-compdir-old…
109682 …[symtab-create] start_subfile: name = dw2-compdir-oldgcc42.S, name_for_id = /dir/d/dw2-compdir-old…
109685 But since the one with name == "/dir/d/dw2-compdir-oldgcc42.S", coming
109687 with "/dir/d/dw2-compdir-oldgcc42.S" as the name, "info source" shows
109691 "/dir/d/dw2-compdir-oldgcc42.S", so it wouldn't be wrong to report the
109698 modify the name to just keep the file part. The result is coherent with
109705 With this change, filename_for_id is still the full name,
109714 gdb/dwarf: pass a file_entry to line_header::file_file_name
109716 that will already have access to the file_entry object for which they
109717 want the file name. It would be inefficient to have them pass an index,
109718 only for line_header::file_file_name to re-lookup the same file_entry
109719 object. Change line_header::file_file_name to accept a file_entry
109720 object reference, instead of an index to look up.
109728 about an invalid index to the sole current caller of file_file_name,
109739 gdb/dwarf: pass compilation directory to line header
109740 The following patch changes line_header::file_file_name to prepend the
109741 compilation directory to the file name, if needed. For that, the line
109742 header needs to know about the compilation directory. Prepare for that
109753 Add a few debug prints in buildsym.c that were helpful to me in writing
109762 to print the debug messages enabled by "set debug symtab-create".
109780 The test-case expects (0, 0, 0), but we're getting another value due to
109812 commit it is possible to have objdump style AArch64 disassembler
109816 The changes to support styling are mostly split between two files
109822 mostly relating to assembler directives are also printed from this
109823 file. This commit changes all of this to pass through suitable
109835 addition to register names and immediate values. In some cases, a
109836 single operand will expand into what will appear (to the user) as
109840 components need to by styled differently, so we need to get the
109843 The solution that I propose here is similar to the solution that I
109846 Currently, aarch64_print_operand uses snprintf to write the operand
109849 What I propose is that we pass an extra argument to the
109853 When aarch64_print_operand needs to format part of its output this can
109857 aarch64-dis.c we can spot these special style markers and use this to
109858 split the disassembler output up and apply the correct style to each
109874 to aid in printing diagnostic messages. Right now I have no plans to
109875 add styling to the assembler output, and so, the callback function
109898 It's possible for relax_delete_bytes to be called with section
109910 of course a user-specified "rex.w", which we ought to honor anyway).
109917 else it'll be resolved at the end of assembly, then pointing to the
109924 against absolute addresses be emitted. This ought to be okay as long as
109926 for such arises, quite likely the only way to address this would be to
109946 assembler instead of trying to hack around this for every target.
109950 ld: Extend ac_default_ld_warn_rwx_segments to all SPARC targets [PR29411]
109955 needs to be disabled on all SPARC targets, not just Solaris/SPARC: the
109956 .plt section is required to be RWX by the 32-bit SPARC ELF psABI and the
109966 * configure.tgt (ac_default_ld_warn_rwx_segments): Extend to all
109979 Unable to fetch general registers: No such process.^M
109986 due to a mismatch between the actual "No such process" line and the expected
109998 RISC-V: Add `OP_V' to .insn named opcodes
110000 ratified `V' extension) to .insn opcode name list. Although vector
110017 Remove some unneeded checks in Guile code
110018 The Guile code generally checks to see if an htab is non-null before
110019 destroying it. However, the registry code already ensures this, so we
110020 can change these checks to asserts and simplify the code a little.
110022 Change registry to use less memory
110023 The registry code creates "registry_data" objects that hold the free
110024 function and the index; then the registry keys refer to this object.
110028 simplifies the code somewhat.
110034 with relatively ordinary template classes. The result is less code
110040 changes to the users of the registry code in gdb -- code using the key
110041 system just required a small change to the key's declaration.
110043 All existing users of the old C-like API are now converted to use the
110045 functions to be an operator() in a deleter class.
110048 single "free" phase. No existing code used both phases.
110056 Remove some unused functions from guile code
110057 The guile code has a couple of unused functions that touch on the
110066 obstack -- which normally is fine, as that is going to be destroyed
110069 However, this approach requires that the objfile be passed to registry
110071 This patch changes the copied type hash table to simply use the heap
110073 copy_type_recursive, to make this all more clear.
110076 Previously it was copying the dynamic property list to the dying
110081 However I think this is incorrect -- that obstack is about to be
110086 Change address_space to use new and delete
110087 This changes address_space to use new and delete, and makes some other
110089 to be a method.
110091 This patch was needed for the subsequent patch to rewrite the registry
110104 Changed from using PyLong_FromLong to the gdb_py-versions.
110106 Re-factored some code to make it look more cohesive.
110113 Tom pointed out that using the policy class explicitly to decrement a
110114 reference counted object was not the way to go, so this has instead been
110117 Moved macro from py-internal to py-breakpoint.c.
110122 This version addresses the points Pedro gave in review to this patch.
110131 Refactored some code to use more c++-y style range for loops
110132 wrt to breakpoint locations.
110140 Changes in response to review by Tom Tromey:
110145 - moved bploc Python definition to py-breakpoint.c
110148 to the individual locations holding a reference to
110151 The reason why this needs to be here is, if the user writes
110158 object requires it to be alive for as long as it is alive.
110172 Currently, the Python API lacks the ability to
110194 function: function name where location was set
110201 Access/calls to these, can all throw Python exceptions (documented in
110202 the online documentation), and that's due to the nature
110208 Therefore this patch has chosen to be non-intrusive:
110209 it's up to the Python user to re-request the locations if
110215 with runtime overhead when the Python user wants to use them.
110223 1 change was also made to breakpoint.h/c to make it possible
110224 to enable and disable a bp_location* specifically,
110240 gdb/gdb_mbuild.sh: use return instead of continue to avoid shellcheck error
110270 Commit 05c06f318fd9a112529dfc313e6512b399a645e4 enabled GDB to access
110275 kernels (such as RHEL6). This means that GDB is unable to insert
110289 linux_proc_xfer_partial) would return TARGET_XFER_EOF if the write to
110295 then fallback to using ptrace to perform the operation.
110310 This patch makes linux_nat_target::xfer_partial go straight to writing
110312 running kernel, enabling GDB to insert breakpoints on these older
110314 TARGET_XFER_EOF to TARGET_XFER_E_IO.
110324 Probe whether /proc/pid/mem is writable, by using it to write to a GDB
110325 variable. This will be used in the following patch to avoid falling
110326 back to writing to inferior memory with ptrace if /proc/pid/mem _is_
110334 According to LoongArch ELF ABI specification [1], handle the function
110341 gdb: LoongArch: Fix code style issues
110342 Fix some code style issues suggested by Tom Tromey and Andrew Burgess,
110345 (1) Put an introductory comment to explain the purpose for some functions.
110347 (2) Modify the the attribute code to make it portable.
110349 (3) Remove globals and pass pointers to locals.
110369 inline-small-func.c:21: undefined reference to `callee'
110370 clang-12.0: error: linker command failed with exit code 1 \
110371 (use -v to see invocation)
110372 UNTESTED: gdb.opt/inline-small-func.exp: failed to prepare
110383 due to this snippet in ld/emulparams/elf32ppc.sh.
110398 gdb/hurd: pass memory_tagged as false to find_memory_region_ftype
110403 gnu-nat.c:2620:21: error: too few arguments to function
110418 gnu-nat.c:2635:13: error: too few arguments to function
110440 Added a new argument to find_memory_region_ftype, but did not pass it to
110482 gdb: rename gdbarch_tdep struct to fix g++ 4.8 build
110490 GDB would no longer build using g++ 4.8. The issue appears to be some
110492 templated function called 'gdbarch_tdep'. Prior to the above commit
110496 I've not tried to track down exactly when.
110498 In this commit I propose to fix the g++ 4.8 build problem by renaming
110499 'struct gdbarch_tdep' to 'struct gdbarch_tdep_base'. This rename
110501 and removes the overloading of the name, which allows GDB to build
110504 I've also updated the comment on 'struct gdbarch_tdep_base' to fix a
110505 typo, and the comment on the 'gdbarch_tdep' function, to mention that
110510 Fix indentation in loongarch code, preventing a compile time warning.
110515 The varobj_invalidate function is meant to be called when restarting a
110519 Two kind of varobj are subject to re-creation: global varobj (i.e.
110525 recreates floating varobj as non-floating, due to an invalid parameter.
110526 This patches fixes this and adds an assertion to check that if a varobj
110536 The last important thing to note is that due to the previous patch, when
110539 objfile it referred to got invalidated). As a consequence,
110540 varobj_invalidate tries to recreate vars which are already marked as
110549 Varobj object contains references to types, variables (i.e. struct
110551 objfile's obstack. It is possible for this objfile to be deleted (and
110552 the obstack to be feed), while the varobj remains valid. Later, if the
110554 address sanitizer build, this leads to a plain error. For non address
110559 This can be observed if we create a varobj that refers to ta symbol in a
110561 command) or after the shared library is unloaded (with a call to dlclose
110566 - Adding cleanup procedure to the free_objfile observable. When
110568 being freed, and removes references to blocks belonging to this
110574 free_objfile observer in order to reuse the type hash table already
110578 This patch also makes sure to keep a reference to the expression's
110583 to initialize the python context with default gdbarch and language_defn
110584 (i.e. nullptr) if expr is NULL, but since we might still try to display
110602 patch makes it possible, by adding a new "-pending" option to
110605 A pending breakpoint shows different MI attributes compared to a
110610 Tweak mi_runto to let it take and pass down arguments.
110625 * gp-display-html/gp-display-html.in: fixed a problem to execute
110637 code to handle the results; renamed a variable to improve the
110663 gprofng: fix bug 29351 - Move dynamic loading of modules to a later stage
110670 man page to fail in case a module is missing; the loading part is
110671 now done somewhat later in the execution to avoid this problem.
110676 GDB uses the environment variable PYTHONDONTWRITEBYTECODE to
110677 determine whether or not to write the result of byte-compiling
110690 If this is set to a non-empty string, Python won't try to write
110702 dont-write-bytecode" be expanded. I've done that in addition to
110716 commit failed to update one location in py-disasm.c though.
110719 triggered a call to gdbpy_disassembler::print_address_func, and, as I
110721 as the code currently (incorrectly) casts the stream field to be a
110726 In order to test this case I had to tweak the existing test case a
110734 used uninitialised by the Python disassembler API code. This issue
110736 and causes the gdb.python/py-disasm.exp test to fail like this:
110740 Dump of assembler code for function main:
110754 to worry about reseting m_in_comment back to false after the single
110763 When GCC 12 is used to build binutils with -O0, the following 2 tests
110769 Compile 2 tests with -O2 to avoid test failures.
110793 for mingw+clang. While adding that, I wrote some unit tests to make
110806 Building GDB on mingw/gcc hosts is currently broken, due to a static
110820 …../../../../../binutils-gdb/gdb/../gdbsupport/packed.h:41:40: note: the comparison reduces to '(4 …
110825 The issue is that mingw gcc defaults to "-mms-bitfields", which
110844 which causes git to show me if I muck up and use spaces instead of
110847 I recently proposed adding something like this to the .gitattributes
110852 So, in this commit, I propose to update the top-level .gitattributes
110867 The only downside I see to adding this at the top level is if there
110890 constant, it's not possible to use switch statement to define the
110891 rules. In order to not have a mix, replace the few existing
110896 Remove dead code from windows_nat_target::detach
110898 after a call to 'error'. However, this can't happen because 'error'
110901 This patch removes the dead code.
110913 I added a new disassembler style dis_style_sub_mnemonic, but forgot to
110919 This commit adds disassembler styling to the libopcodes ppc
110921 converted the fprintf_func calls to fprintf_styled_func calls and
110934 is used to access a field of a control register. I initially tried
110966 This commit just adds the new style, and prepares objdump to handle
111035 Some R_LARCH_64 in section .eh_frame will to generate
111036 R_LARCH_NONE, we change relocation to R_LARCH_32_PCREL
111063 LoongArch: Move ifunc info to rela.dyn from rela.plt.
111067 In dynamic programes, move ifunc dynamic relocate info to section
111096 Define new reloc types according to linker needs.
111116 to cater for user silliness.
111120 out at a higher address. That's due to the address expression for
111124 which need to reference section vma and lma respectively, SIZEOF can
111131 .branch_lt address to take into account possible user sections
111140 gdb/testsuite: add a clear test to py-breakpoint.exp
111141 This patch adds a test case to try to clear an internal python
111144 This was suggested by Pedro during a code review of the following
111150 gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
111156 gdb/testsuite: rename get_maint_bp_addr and move it to gdb-utils.exp
111158 move it to gdb-utils.exp.
111160 Following Andrew's suggestion, I renamed get_maint_bp_addr to
111162 addition to the internal ones. Note that there is still room for
111177 cc-with-debug-names on a system with gcc 12.1.1 (defaulting to dwarf 5), I
111188 The exec contains a .debug_names section, which gdb rejects due to
111193 to create all_comp_units. However, the failed index reading left some
111212 typically "all" and "minimal". However, they give the same name to both
111214 This makes it difficult and confusing when trying to reproduce problems
111215 manually with the test artifacts. Change those tests to use unique
111222 Change target_ops::async to accept bool
111223 This changes the parameter of target_ops::async from int to bool.
111259 we hope to print out GPRs, PC and the registers related to exceptions.
111283 disassemble it to that MMA instruction. We create new masks defines that
111321 generic gdbarch_tdep pointer to a specific sub-class type. This means
111325 In order to use gdb::checked_static_cast the types involved must have
111330 to the wrong type, then there should be no changes after this commit.
111342 The idea is to add a new function gdb::checked_static_cast, which can,
111358 developer mode, a run-time check will be made to ensure that `base`
111362 In a non-developer build gdb::checked_static_cast is equivalent to a
111375 then (accidentally) passed GDB a RISC-V binary, and asked GDB to "run"
111379 The target architecture is set to "auto" (currently "i386").
111383 The target architecture is set to "auto" (currently "riscv:rv32").
111396 as soon as the inferior comes to life. In response to this stop GDB
111398 to read register from the inferior, to do this we end up calling
111403 based targets will end in different functions to fetch registers, but
111413 behaviour, in my case I happen to trigger an assert, but this might
111416 The thing I tried that exposed this problem was of course, trying to
111418 don't think that the correct solution for this problem is to detect,
111443 this leads to the second, much larger change in this commit,
111452 In the next commit I will build on this change to add an assertion in
111453 gdbarch_tdep that checks we are casting to the correct type.
111473 In these cases it is possible, and valid, for a user to have one
111480 ups, will not return the expected results, this could lead to
111489 handling, so I don't think we need to worry about this case, and
111495 The watch_command_1 case I don't think we need to worry about, this
111500 this is what allows a breakpoint to be created between inferiors.
111504 breakpoint will be created) to the adjust_breakpoint_address function.
111506 switch_to_program_space_and_thread to switch program_space and
111511 gdbarch_tdep to the wrong type.
111516 inferior and tries to create a breakpoint in the ARM inferior.
111528 gdbarch_tdep and casts the result to arm_gdbarch_tdep. This is wrong,
111532 With this patch in place, we will have switched to a thread in the ARM
111542 I have added an assert to arm_frame_is_thumb.
111547 This commit is similar to the previous commit, but in this case GDB is
111564 Later we might pass TDEP to mips_mask_address_p. However, in my
111571 I also think the current output is a little confusing, we appear to
111583 It would be nice to remove another use of deprecated_show_value_hack
111599 The target architecture is set to "mips".
111610 gdb/arm: move fetch of arm_gdbarch_tdep to a more inner scope
111611 This is a small refactor to resolve an issue before it becomes a
111617 The problem with the current code is that the functions in question
111641 This commit just moves the call to gdbarch_tdep() after the
111644 In a later commit gdbarch_tdep() will be able to spot when we are
111645 casting the result to the wrong type, and this function will trigger
111652 [arm] Rename arm_cache_is_sp_register to arm_is_alternative_sp_register
111653 All usages of this helper are really made to check if the register is
111694 When I changed the initialization of parallel_for_each_debug from 0 to false,
111695 I forgot to change the type from int to bool. Fix this.
111702 I noticed this code in dw2_debug_names_iterator::next:
111718 This code used to DTRT, before we started keeping both CUs and TUs in
111724 It's hard to produce a test-case for this, but let's try at least to trigger
111740 case to 6, and we have:
111746 After this, it still crashes because this code in
111799 to count entries rather than words.
111812 needs to be done by section and offset rather than base and offset.
111828 I'm inclined to think that abbrev caching is counter-productive. The
111829 time taken to search the list of abbrevs converted to internal form is
111830 non-zero, and it's easy to decode the raw abbrevs. It's especially
111831 silly to cache empty lists of decoded abbrevs (happens with zero
111840 abbrev base, offset and size checking to..
111855 (process_abbrev_set): Print actual section name on error.
111889 PyConfig API to provide equivalent functionality while also preserving
111895 rawhide, though complete testing was not possible on rawhide due to
111896 a kernel bug. That being the case, I decided to enable the newer
111898 corresponds to Python 3.10.
111900 We could try to use the PyConfig API for Python versions as early as 3.8,
111901 but I'm reluctant to do this as there may have been PyConfig related
111904 more than adequate for testing the new Python initialization code in
111918 code, but Simon pointed out that this global configuration variable
111920 uses Py_DontWriteBytecodeFlag in the new initialization code.
111924 deprecated in Python 3.12, it makes sense to disable their use for
111928 by use of the soon-to-be deprecated global configuration variables.)
111932 rest of the "bail out" code more direct. In particular,
111935 The v3 patch addresses some rebase conflicts related to module
111938 commit also initializes a struct for each module to import. Both the
111939 initialization and the call to were moved ahead of the ifdefs to avoid
111940 having to replicate (at least some of) the code three times in various
111948 gdb/value.c: add several headers to the include list
111949 Building GDB currently fails to build with libc++, because libc++ is
111951 to support. The following headers have been added:
111953 * `<iterator>`, to support `std::back_inserter`
111954 * `<utility>`, to support `std::move` and `std::swap`
111955 * `<vector>`, to support `std::vector`
111963 GNU/Linux), if you use the "step N" (or "stepi/next/nexti N") to step
111997 /* We run to this line below, and then issue "next 3". That should
112020 is what keeps track of how many steps are left to make. When one step
112025 proceed to presenting the stop to the user. If it isn't 0 yet, then
112026 the method returns false, indicating to fetch_inferior_event to "keep
112032 stop_all_threads to stop everything. I.e., after the first step
112036 step returns false -- i.e., we need to keep_going for another step.
112041 If the target is in non-stop mode, we don't actually need to stop all
112048 stop_waiting, to handle_inferior_events's callers,
112063 Assuming GMSD is a special operand, marked as O_md1, the code:
112069 ...fails upon attempts to resolve the value of the symbol. This happens
112072 macro to customize the behavior when resolve_symbol_value hits O_md
112083 protected symbols and non-canonical reference to canonical protected
112084 functions, change the linker to always disallow such relocations.
112120 longer lead to a GLOB_DAT (similar to a hidden symbol).
112135 Note: if some code tries to use direct access relocations to take the
112152 Reformat gdbarch-components.py to fix deviations
112153 Reformat to make sure we have a clean file with no deviations
112154 from the expected python code format.
112159 Teach GDB how to dump memory tags for AArch64 when using the gcore command
112160 and how to read memory tag data back from a core file generated by GDB
112165 Each tagged memory range (listed in /proc/<pid>/smaps) gets dumped to its
112174 I've added a new testcase to exercise the feature.
112184 The Linux kernel can dump memory tag segments to a core file, one segment
112189 segment type and display it accordingly. It also adds code required so GDB
112192 Upon reading, each segment that contains memory tags gets mapped to a
112193 section named "memtag". These sections will be used by GDB to lookup the tag
112194 data. There can be multiple such sections with the same name, and they are not
112195 numbered to simplify GDB's handling and lookup.
112209 constants conditionally to prevent compilation failures.
112213 ld: Pass -nostdlib to compiler with -r
112214 Pass -nostdlib to compiler with -r to avoid unnecessary .o file and
112270 Currently, Python code can use event registries to detect when gdb
112272 there's no way to detect the removal of an objfile, say when the
112276 event to be emitted in this case.
112282 core files to the count of unexpected core files:
112292 whole point of the testcase is to crash GDB with a signal.
112294 Make GDB change its current directory to the output dir just before
112303 $ find . -name "core.*"
112316 Currently the Ada code assumes that it can distinguish between a
112325 question has a name.
112331 to use a unique_ptr, and also changes cli_uiout to be a private
112345 'ui'. It also changes gdb to use these methods everywhere, rather
112346 than sometimes reaching in to the ui to manage the file descriptor
112352 Update the ARC disassembler to supply style information to the
112368 instruction leading to errors when those ciphers are
112398 It is quite possible to only have python3 available on a system.
112402 user needs to configure using --with-python=/usr/bin/python3.
112404 This commit updates GDB's configure.ac script to first look for
112407 to provide python support, no user supplied configure arguments are
112418 Both forms were missing VexW0 (thus allowing Evex.W=1 to be encoded by
112420 was using the wrong Masking value, thus allowing zeroing-masking to be
112452 That doesn't seem to matter much for this example, but for say 10 threads and
112473 This allows us to override the default detect_leaks=0 setting, by manually
112492 UNTESTED: gdb.base/step-indirect-call-thunk.exp: failed to prepare
112505 Since commit c4a3dbaf113 ("Expose current 'print' settings to Python") we
112522 Add a parallel_for_each_debug variable, set to false by default.
112561 message to be printed to stderr indicating that gdb was not built with
112564 Fix this by changing the 'set debuginfod enabled off' command to a
112572 commit updates the test case to use gdb_test_multiple, making it more
112573 resilient to internal errors and such.
112580 Add 'nibbles' to gdb.print_options
112581 When I rebased and updated the print_options patch, I forgot to update
112582 print_options to add the new 'nibbles' feature to the result. This
112590 assert is due to the missing IEEE 128-bit support in file
112596 differences include the number of bits used to encode the exponent
112616 Add 'summary' mode to Value.format_string
112617 This adds a 'summary' mode to Value.format_string and to
112618 gdb.print_options. For the former, it lets Python code format values
112621 set to 'scalars'.
112623 I considered adding a new mode here to let a pretty-printer see
112629 Expose current 'print' settings to Python
112630 PR python/17291 asks for access to the current print options. While I
112632 Value.format_string, it seemed to me that a bit more could be done.
112635 react to temporary settings such as "print/x". This patch changes
112638 Second, there is no good way to examine the current settings (in
112648 Traceback Table consists of a series of bit fields to indicate things like
112650 function. The Traceback Table is generated following the end of the code
112652 PowerPC ELF ABI and is intended to support debuggers and exception
112691 for the cooked index finalization to be done.
112704 This can be useful when debugging multi-threading behaviour, and you want to
112713 Update NEWS and gdb.texinfo to document floating-point support
112730 /usr/include/c++/4.8/atomic:208:13: error: no matching function for call to \
112815 Re: PowerPC: implement md_operand to parse register names
112816 I meant to make this change before committing, to let compilers know
112817 the code on the false branch of md_parse_name is dead.
112825 PowerPC: implement md_operand to parse register names
112826 Allows register names to appear in symbol assignments, so for example
112833 (register_name): Rename to..
112835 (cr_names): Rename to..
112840 (md_assemble): Don't special case register name matching in
112841 operands, except to set cr_operand as appropriate.
112878 thread 3. This commit tightens that regexp to catch such a bug. It
112893 Where the source code for stap-probe.c is:
112911 Add PowerPC support to gdb.cp/call-method-register.cc
112924 Due to recent changes in the default value of -fcf-protection for gcc, the
112943 to be "-fcf-protection=none" for the test to compile on Intel.
112976 The problem is related to longjmp handling -- dlsym internally
112977 longjmps on error. The testcase can be reduced to this:
112988 10 return 0; /* until to here */
112995 The problem is that the BPSTAT_WHAT_CLEAR_LONGJMP_RESUME code in
112996 infrun.c fails to find the initiating frame, and so infrun thinks that
112997 the longjmp jumped somewhere outer to "until"'s originating frame.
113005 /* There are several cases to consider.
113028 set_longjmp_breakpoint. The initiating frame is supposed to be the
113032 caller frame is the caller of main. When later infrun tries to find
113033 that frame by id, it fails to find it, because frame_find_by_id
113036 The bug is that we passed the caller frame's id to
113051 Remove the unused variable to eliminate the error.
113062 /* We'd like to be more strict here, similar to what is done in
113063 set_unit_type, but currently a partial unit can go from unknown to
113064 minimal to ada to c. */
113069 This requires us to move the m_unit_type initialization to ensure that
113084 - Use a table to describe the four available modes.
113088 - Tweak the "replay" mode's description to describe replay first
113099 The cu->per_cu->lang field was added to carry information from the initial
113100 partial symtabs phase to the symtab expansion phase, for the benefit of a
113106 Fix this by adding dwarf2_cu::lang () and using it where we can to replace
113145 should either link runtime to your application or manually preload it with \
113160 Add a new file tsan-suppressions.txt, to suppress the "unlock unlocked mutex"
113163 The file is added to the TSAN_OPTIONS in lib/gdb.exp.
113170 When building gdb with gcc 4.8.5, we run into problems due to unconditionally
113229 Likewise for the write to addresses_seen in cooked_indexer::check_bounds and a
113231 gdb.dwarf2/dw2-dir-file-name.exp and target board cc-with-dwz-m.
113240 The set of fields has been established experimentally to be the
113241 minimal set to get rid of this type of -fsanitize=thread errors, but
113304 dwarf2_per_cu_data, because it introduces padding due to alignment of
113313 but to avoid having to write that in several places and add suitable
113316 able to write:
113325 make use of it. One of those patches will want to wrap a struct
113330 so the new gdbsupport/packed.h header adds some operators to make
113336 It would be possible to implement struct packed without using
113339 to debug GDB. The way it's implemented, printing a struct packed
113342 __attribute__((packed)) is supported by all compilers that are able to
113353 It is not possible to build GDB with MSVC today, but if it could, that
113355 it supports packing via pragmas, so there's a way to cross that bridge
113356 if we ever get to it. I believe any compiler worth its salt supports
113361 static assertions to catch such compilers in action:
113372 It might be possible to hit md_end before md_begin is called, don't
113383 input .data sections mapped to it. The input .data section has
113389 Fix that. Note that it is arguably wrong for ld to leave the output
113391 sections are written to it, but I'm not going to change that since it
113392 might be useful to hand-craft relocs in a data section that is then
113393 written to a SHT_REL/SHT_RELA output section.
113397 than output section type to determine whether to exclude using
113413 other dwarf regnos have no corresponding gdb regs to them.
113451 seems off to me. (And, it complicates changes I want to do to
113479 After loading a core file, you're supposed to be able to use "detach"
113480 to unload the core file. That unfortunately regressed starting with
113501 The code that crashes looks like:
113523 just unpushes, and relies on core_target::close to actually do the
113525 that is that detach_command grabs an extra strong reference to the
113527 core_target::detach doesn't actually result in a call to
113530 Fix this my moving the cleaning up the core inferior to a shared
113532 still need to cleanup the inferior from within core_file::close
113533 because there are paths to it that want to get rid of the core without
113536 This commit includes a new test added to gdb.base/corefile.exp to
113548 there are references to "@var{thread-id}", but such variable does not
113564 This commit extends GDB to make use of libopcodes styling support
113569 fall back to using the Python Pygments package, when the package is
113575 Additionally, as the styling is now done in GDB we can add settings to
113576 allow the user to configure which colours are used right from the GDB
113584 These can be used to manually disable use of libopcodes styling. This
113586 need to do this. But, this could be useful for testing, or, in some
113587 rare cases, a user might want to override the Python hook used for
113589 falls back to using Python. Right now I would consider this second
113602 styles to style some parts of the disassembler output. I have also
113613 respectively, and exist to make it easier for users to discover
113614 disassembler related style settings. The 'address' style is used to
113616 or 'function' style is used to style the names of symbols in
113624 The target architecture is set to "auto" (currently "i386:x86-64").
113628 the setting defaults to "on" for architectures that support libopcodes
113632 The target architecture is set to "sparc".
113636 the setting will show as "off" if the user switches to an architecture
113638 still "on" at this point though, if the user switches back to
113639 i386:x86-64 then the setting would go back to being "on".
113646 to i386:x86-64 the setting will still show as "off".
113653 attempting to switch the setting "on" for an unsupported architecture
113657 The target architecture is set to "auto" (currently "i386:x86-64").
113664 the user will need to switch back to a supported architecture before
113672 passed as an argument to the fprintf_func and fprintf_styled_func
113673 callbacks when the disassembler wants to print anything.
113675 Previously, GDB would store a pointer to a ui_file object in the
113676 'stream' field, then, when the disassembler wanted to print anything,
113677 the content would be written to the ui_file object. An example of an
113683 /* Write output to STREAM here. */
113687 only have access to STREAM, we can't access any additional state
113691 become an issue, how we style the output being written to STREAM will
113693 might need to be updated, depending on what is being printed.
113696 disassemble_info to carry a pointer to the gdb_disassemble_info
113699 We then have the two sub-classes of gdb_disassemble_info to consider,
113702 to make stream be a gdb_disassemble_info pointer, no further updates
113706 sub-class now carries around a pointer to the stream object. The
113707 print callbacks are updated to cast the incoming stream object back to
113711 additional state to the gdb_printing_disassembler, and update the
113712 print callbacks to access this state.
113745 Fix this similar to the per_cu->dwarf_version case, by only setting it if
113747 same code is already present in the other cutu_reader constructor. ]
113749 Move this logic into into a member function set_length to make sure it's used
113750 consistenly, and make the field private in order to enforce access through the
113751 member functions, and rename it to m_length.
113767 initial_length_size to get the total length:
113783 It should be ARCH_AARCH64_MTE_LINUX_H as opposed to ARCH_AARCH64_LINUX_H.
113789 introduced orig_a0, similar processing needs to be done in gdbserver.
113795 gdbserver: LoongArch: Simplify code with register number macros
113796 Move "enum loongarch_regnum" to gdb/arch/loongarch.h so that the
113798 to simplify the code.
113809 allocated and thus needs to be freed, in others the key is a const
113813 also tidies how math functions are called, those that are supposed to
113831 (tic54x_asg): Use notes obstack to dup strings.
113851 Since htab_traverse can also resize hash tables (to make another
113866 This allocates entries added to the string hash tables on the notes
113868 switch over the str_hash allocation to notes_calloc, which is why I
113888 This doesn't lend itself to obstack allocation, so freeing must be
113892 (md_begin): Pass the above as del_f to htab_create_alloc.
113902 to htab_delete plus telling the libiberty/hashtab.c infrastructure to
113904 core_optab memory on the notes obstack. It would be possible to free
113906 for arc, but a later patch will move all the string hash memory to the
113930 Also, use the table alloc_f when allocating tuples to be stored, so
113936 (str_hash_insert): Adjust to suit. Call table->free_f when
113938 (hash_string_tuple, eq_string_tuple): Move to..
113943 gas: rename md_end to md_finish
113945 freeing memory like other *_end functions. Rename it to md_finish,
113947 makes it possible to find them all with "grep md_finish",
113948 eg. md_mips_end is renamed to mips_md_finish, not md_mips_finish.
113952 The idea here is that target maintainers implement md_end functions to
113958 * as.c (main): Rename md_end to md_finish.
113989 (main): Init notes obstack, and arrange to be freed on exit.
113997 itbl_files seems to be debug code. Get rid of it.
114041 Another case of duplicated hash.h code, the only minor difference
114063 po_hash code duplicates the str_hash code in hash.h for no good reason.
114076 * read.c (read_symbol_name): Free name on error path.
114077 * config/tc-ppc.c (ppc_GNU_visibility): Free name returned from
114084 This is mostly a tidy with the aim of being able to free
114085 out_file_name, but it does fix a possible attempt to unlink the output
114097 Makes it a little easier to use the notes obstack for persistent
114112 arm gas is only supposed to warn once per symbol for -mwarn-syms, but
114120 * testsuite/gas/arm/pr18347.s: Modify to generate duplicate
114129 bad. It's simply because maintainers want to be able to update
114151 I looked at all uses of GDB_PY_LLU_ARG and fixed these up to use
114153 but those seemed relatively unlikely to be useful with a gdb.Value, so
114156 likely to be found this way.
114165 the problem by adding a special case to set_parameter.
114198 removed, by limiting the usage of the variable to guile versions <= 3.0.
114200 This does not break anything. The variable was merely used to address a
114203 Note that we don't limit the usage of the variable to guile versions <= 3.0.5,
114204 because we want to support f.i. building against 3.0.6 and then using a shared
114222 A problem internal to GDB has been detected,^M
114243 We're trying to access unit_type / lang which hasn't been set yet.
114251 IWBN to have this working in all use cases, but for now, allow lang () and
114252 unit_type () to return language_unknown and 0 here.
114282 The problem is in this piece of code in dw2_debug_names_iterator::next:
114301 So to get the nth TU we need the element at "nr_cus + n", but
114302 the code uses "nr_tus + n" instead.
114312 gdb: initialize the data_head variable to eliminate compilation warnings
114333 This commit adds disassembler style to the libopcodes s390
114335 converted the fprintf_func calls to fprintf_styled_func calls and
114351 Update version to 2.39.50 and regenerate files
114372 gdb: fix {rs6000_nat_target,aix_thread_target}::wait to not use inferior_ptid
114373 Trying to run a simple program (empty main) on AIX, I get:
114379 A problem internal to GDB has been detected,
114422 A problem internal to GDB has been detected,
114426 This is due to some bit-rot in the AIX port, still relying on the entry
114436 pid is non-zero. Since inferior_ptid is set to null_ptid on entry, the
114437 pid returned by wait is not equal to `inferior_ptid.pid ()`, so we reset
114438 pid to -1 and go to waiting again. Since there are not more children to
114457 So, the first step is to fix the snippets above to not use
114458 inferior_ptid. In the first snippet, use find_inferior_pid to see if
114460 assume it's a detached child process to we ignore the event. That
114461 should be enough to fix the problem, because it should make it so we
114462 won't go into the second snippet. But still, fix the second snippet to
114464 which is where rs6000_nat_target::wait appears to be copied from in the
114470 rs6000_nat_target has set inferior_ptid to the appropriate value (the
114477 get_signaled_thread to all avoid using inferior_ptid. Instead, they
114480 With this patch, I am able to run the program to completion:
114513 DW_FORM_sdata, a signed integer form. This commit tweaks it to use
114559 gdb: LoongArch: Fix typos in code comments
114572 According to "Procedure Calling Convention" in "LoongArch ELF ABI
114588 * From INSN_CLASS_ZFH to INSN_CLASS_ZFHMIN:
114592 * From INSN_CLASS_ZFH to INSN_CLASS_ZFH_OR_ZHINX:
114596 * From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFH_OR_ZHINX:
114606 * From INSN_CLASS_ZFH_OR_ZHINX to INSN_CLASS_ZFHMIN_OR_ZHINXMIN:
114610 * From INSN_CLASS_D_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_D:
114614 * From INSN_CLASS_Q_AND_ZFH_INX to INSN_CLASS_ZFHMIN_AND_Q:
114629 (riscv_parse_check_conflicts): Change error message to include
114679 to dynamically set ones.
114690 names to disassemble Zfinx instructions.
114708 * testsuite/gas/riscv/fp-zhinx-insns.d: Add Zqinx to -march
114716 * as.h: ..to here.
114743 elf: Set p_align to the minimum page size if possible
114757 This once again allows to reduce redundancy in (and size of) the opcode
114761 This would significantly complicate the code, as there the first
114764 Note that the .s suffix isn't being enabled to have any effect, for
114768 programmer to request the alternative encoding to be used for register-
114772 retained (and altered), to make sure the same encoding as before is
114790 to assemble successfully, or e.g.
114797 had been logical to be there, as reverse-matched insns don't make it
114809 quite useful to be able to go back to prior state without needing to
114810 re-invoke perhaps many earlier directives and without needing to invoke
114814 For now require the same .code<N> to be in effect for ".arch pop" that
114817 Also change the global "no_cond_jump_promotion" to be bool, to match the
114831 So far there was no way to reset the architecture to that assembly would
114837 those aren't easy to address without re-flowing almost the entire
114844 the variable to NULL also wouldn't be necessary), at least in the other
114853 [gdb/exp] Fix internal error when printing C++ pointer-to-member
114860 while printing a c++ pointer-to-member.
114876 useful to be able to check this from Python, so this patch adds a new
114903 is added into struct user_pt_regs [1] to match the upstream kernel, and
114910 arch/loongarch/include/uapi/asm/ptrace.h in the kernel tree to make sure.
114911 To build upstream GDB for a kernel lacking orig_a0, it's necessary to
114935 x86: introduce fake processor type to mark sub-arch entries in cpu_arch[]
114939 entries to near the top.
114948 Utilize this right away to pack the table a little more tightly, by
114949 converting "skip" to bool and putting it earlier in a group of bitfields
114955 Introduce a helper function to replace 4 instances of similar code. Use
114956 reconcat() to cover the previously explicit free().
114964 Fix snafu in rust demangler recursion limit code
114979 (output_file_close): Save obstacks attached to output bfd before
114994 * objcopy.c (copy_relocations_in_section): Use it to allocate
114995 array of reloc pointers. Rewrite code stripping relocs to do
115007 pass proper str_offsets_base to fetch_indexed_string().
115025 allows us to add certain checks, f.i. checking that that a field is not read
115028 Add get/set member functions for the two fields as a convenient location to
115029 add such checks, make the fields private to enforce using the member
115043 The only case where 64-bit code uses non-sign-extended (can also be
115048 Hence the distinction in templates is unnecessary, allowing code to be
115056 modes; the necessary adjustment to the expected ones has already been
115073 Furthermore the type mask returned by lex_got() also needs to be
115075 when dealing with 32-bit addressing mode in 64-bit code.
115079 x86-64: improve handling of branches to absolute addresses
115081 branch would, besides causing a warning, result in operands to be
115085 adding a testcase to guard against regressing this again.
115153 field already has the value that we're trying to set it to.
115155 Move this logic into into a member function set_version (in analogy to the
115156 already present member function version) to make sure it's used consistenly,
115157 and make the field private in order to enforce access through the member
115158 functions, and rename it to m_dwarf_version.
115160 While we're at it, make sure that the version is set before read, to avoid
115173 due to this:
115181 won't be propagated to spawned programs.^M
115185 This is similar to the problem fixed by commit f0bbba7886f
115190 that would mean the "GNU gdb (GDB) $version" line that we're trying to check
115193 Fix this instead by updating the regexp to allow the message.
115222 to a word that is or is not followed by a space. In some cases they are
115236 as it now goes on to propose the entire symbol table, while:
115243 In other cases an extraneous space is used that does not correspond to
115251 Add newline to the end of the rnglists displsy.
115259 GDB: Add `NUMBER' completion to `set' integer commands
115276 it will, annoyingly, complete to `set print elements unlimited' right
115287 Completion section of the manual in addition to the Command Options
115292 gdb/testsuite: Expand gdb.cp/mb-ctor.exp to test dynamic allocation
115293 When testing GDB's ability to stop in constructors, gdb.cp/mb-ctor.exp
115304 debuginfod tests to fail.
115317 [failed to restore the stack]^M
115336 A process-directed signal can be delivered to any thread, and what we see
115337 here is the fallout of the signal being delivered to a worker thread rather
115342 [ I have not been able to reproduce this after it occurred for the first time,
115356 I propose giving slightly more space to the two version number
115365 Fix GDBserver regression due to change to avoid reading shell registers
115366 Simon reported that the recent change to make GDB and GDBserver avoid
115406 deleted before the starting_up flag gets restored to false.
115412 Fix this by not using a scoped_restore to manage the starting_up flag,
115420 Match the whole error message expected to be given rather than omitting
115434 Argument required (integer to set it to.).
115436 Argument required (integer to set it to, or "unlimited".).
115446 Specifically, expand the description of the 'opcodes' field to explain
115452 The FPCCR.TS bit is used to identify if FPU registers are considered
115454 (S16 to S31) are stacked on exception entry or otherwise skipped.
115467 In a future commit I would like to enable the new libopcodes styling
115468 for AArch64, this will allow objdump and GDB[1] to syntax highlight
115472 In this commit, I propose to extend aarch64_print_operand to take a
115475 updated to pass an extra buffer, and print any resulting comment.
115483 means a few test cases needed updated. If people would prefer me to
115484 move everyone to use the two spaces, then just let me know. Or maybe
115486 figure out a way to maintain the old output exactly if that is
115492 [1] GDB patches have not been merged yet, but have been posted to the
115508 ERROR: Couldn't send delete breakpoints to GDB.
115513 -re ".*A problem internal to GDB has been detected" {
115521 if {[prepare_for_testing "failed to prepare" $binfile $srcfile $opts]} {
115544 that runs a test within GDB to detect if we have hardware watchpoint
115547 Unfortunately, to run this test we restart GDB, and when the test has
115553 The fix is to call skip_hw_watchpoint_tests early, before we start GDB
115615 breakpoint is going to hit, we could simply teach save_stop_reason to
115622 So to avoid GDB vs GDBserver divergence, we apply the same approach to
115643 This is due to PR gcc/81275 - "-fsanitize=thread produce incorrect
115656 MinGW seems to call ___lc_codepage_func() in order to retrieve the
115669 a name containing a space (eg "Program Files").
115676 (read_rc_file): Adapt to new defines.
115699 plt_branch stubs are similar to plt_call stubs in that they branch
115717 (ppc_size_one_stub): Call plt_stub_size before plt_stub_pad to
115724 sub type to add a difference in main type to the type (thus keeping
115736 extended to 32.
115744 Here, we will split each floating-point and vector register to
115749 1. s0 and s1 correspond to fr0, s4 and s5 correspond to fr1, and so on.
115750 Every two separated pseudo registers correspond to a float register.
115751 2. s0, s1, s2 and s3 correspond to vr0; s4, s5, s6 and s7 correspond to vr1,
115752 and so on. Every four pseudo registers corresponds to a vector register.
115755 used. This part is to prepare for the expansion of vector registers to 32
115758 part is to prepare for the expansion of the vector register to 32.
115774 extension to valid 'S' extension list.
115807 extension to valid 'S' extension list.
115848 extension to valid 'S' extension list.
115893 * testsuite/ld-elf/elf.exp: Add mips to targets that need
115894 --warn-execstack to pass first pr29072 test.
115902 gdb/testsuite: update bug numbers from Gnats to bugzilla
115903 Some tests link to outdated bug numbers when an XFAIL or a KFAIL happen.
115906 mentions that it used to be 555 on the Gnats system and seems to relate
115907 to the issue at hand.
115929 The problem is that a single case statement in configure is shared to handle
115949 error status, instead of aborting. This makes it harder to debug
115951 assertion. I've had to hack the code to make GDBserver abort to debug
115954 I believe the reason it exits instead of aborting, is to prevent
115957 years ago, but I can't be sure. Anyhow, that seems reasonable to me.
115960 modes, I propose to make GDBserver abort on internal error if in
115966 ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has been detected.
115971 while in release mode, you'll continue to get:
115974 ../../src/gdbserver/server.cc:3711: A problem internal to GDBserver has been detected.
116009 computing number of bytes to read.
116015 Non-Secure to Secure stack unwinding enablement status and
116016 doesn't choose the proper SP to do the unwinding.
116018 This patch only unwinds the stack when Non-Secure to Secure
116019 unwinding is enabled, previous SP is set w/r to the current mode
116043 Error while executing Python code.^M
116047 The type of addr is <class 'gdb.Value'>, so the first thing to try is whether
116090 When trying to run test-case gdb.reverse/i387-env-reverse.exp for x86_64-linux
116109 Your branch is up to date with 'origin/master'.
116112 (use "git add <file>..." to include in what will be committed)
116115 nothing added to commit but untracked files present (use "git add" to track)
116120 Workaround this by first copying the source file to the temp dir, such that
116137 and update it to be able to handle "gcc_major_version {gfortran-*} f90".
116145 and gcc-12 (defaulting to DWARF5), I run into:
116166 But when trying to read the string offset at index 0 in the table (which
116186 Note that this happens to give the right answer for 32-bit dwarf and
116191 we run into a similar problem. It just happens to not trigger the warning,
116207 When building gdbserver with -fsanitize=thread (added to CFLAGS/CXXFLAGS) we
116219 which looks similar to what is described in commit 78e49486944 ("[gdb/build]
116224 setup to use this variant, if available, but it's not there.
116245 * configure.ac: Move HPPA specific code from here...
116246 * configure.tgt: ... to here. Add similar code for MIPS.
116247 Move code for CRIS, MIPS and HPPA to block at start of file.
116260 Commit 04f096fb9e25 ("Move the xc16x target to the obsolete list") moved
116261 the architecture from the "obsolete but still available" to the
116263 impossible to enable (except maybe via "enable everything" options").
116265 Note that I didn't touch */po/*.po{,t} on the assumption that these
116274 refering to .debug_addr instead of .debug_loclists
116277 use it to access the section offset.
116279 Pass loclists_base to fetch_indexed_value().
116285 of the PLT sections to be fixed relative to .TOC. after stub sizing,
116286 because changes in offset to PLT entries might mean a change in stub
116290 to PLT offset when -z relro. Not so when -z norelro, because then the
116295 to .got.
116296 * testsuite/ld-powerpc/elfv2exe.d: Adjust to suit.
116303 (from i386) in linker scripts to put the end of the relro segment past
116337 * testsuite/ld-i386/pie1.d: Adjust to suit.
116354 arm: Define elf_backend_extern_protected_data to 0 [PR 18705]
116355 Similar to commit 4fb55bf6a9606eb7b626c30a9f4e71d6c2d4fbb2 for aarch64.
116357 Commit b68a20d6675f1360ea4db50a9835c073675b9889 changed ld to produce
116360 ld.lld) by defining elf_backend_extern_protected_data to 0.
116382 ...points to a "sibling" DIE that is at a different child depth.
116389 expensive and, IMO, is better left to some (still hypothetical) DWARF
116398 is currently based on 'info_ptr', which does not always point to the
116406 instruction to be executed.
116408 gdb: LoongArch: Define register numbers and clean up code
116410 we can use them directly in the related code, and also clean up some
116411 code to make them more clear and readable.
116438 observers to cast to cli_interp_base instead and use interp_ui_out()
116460 stack pointer of the 4 stack pointers needs to be kept in sync.
116464 gdb/testsuite: remove unneeded calls to get_compiler_info
116465 It is not necessary to call get_compiler_info before calling
116468 there is now no longer any need for any test script to call
116471 As a result every call to get_compiler_info outside of lib/gdb.exp is
116481 to instead call test_compiler_info directly, however, I have instead
116482 added a new proc to gdb.exp: 'is_c_compiler_gcc'. I've then updated
116483 the testsuite to call this proc instead of using the global.
116488 global, means that test scripts don't need to call get_compiler_info
116492 As a result I've been able to remove the get_compiler_info calls from
116496 being checked at the top of the script to decide if the whole script
116607 I decided to put this new info in the "gdb Summary" section, as that's
116608 a place people already are used to looking at, either when looking at
116610 extended this section before, to include the count of DUPLICATE and
116635 something that we want to count many times, once per testcase, and
116677 so it's easy to tell which program produced the core from the core
116678 file name.
116684 At least gdb.base/annota1.exp and gdb.base/annota3.exp have code in
116685 them to delete the core file. However, that isn't working for me,
116686 because said code only looks for cores named exactly either "core" or
116699 $ find . -name "core.*"
116708 In addition, it changes some testcases that expect to have their
116709 program dump core, to switch the inferior's cwd to the testcase's
116714 unexpected core files to gdb.sum.
116729 run_inferior_call that are used to save, and then restore some state,
116735 the async field was restored after a call to either delete_file_handle
116758 from whenever interpreters were changed to use inheritance. This
116762 I noticed a few spots that were explicitly creating new references to
116763 Py_True or Py_False. It's simpler here to use PyBool_FromLong, so
116768 PowerPC64: fix assertion in ppc_build_one_stub with -Os code
116803 Call _bfd_elf_symbol_refs_local_p with local_protected==true to suppress
116806 Note: if some code tries to use direct access relocations to take the
116807 address of foo (likely due to -fno-pic), the pointer equality will
116814 aarch64: Define elf_backend_extern_protected_data to 0 [PR 18705]
116815 Follow-up to commit 90b7a5df152a64d2bea20beb438e8b81049a5c30
116818 Commit 32f573bcb3aaa1c9defcad79dbb5851fcc02ae2d changed ld to produce
116821 ld.lld) by defining elf_backend_extern_protected_data to 0.
116831 changes it to be a std::string instead, and removes some erroneous
116834 Move mi_interpreter to mi-interp.h
116836 tracked this down to mi-common.h including this file. This patch
116837 moves the MI interpreter to mi-interp.h, which cuts down on
116841 This changes interp::m_name to be a unique_xmalloc_ptr, removing some
116843 'inited' member, and moves the 'private:' and 'public:' keywords to
116862 Note: x86 requires GNU_PROPERTY_NO_COPY_ON_PROTECTED to have the error.
116863 This is to largely due to GCC 5's "x86-64: Optimize access to globals in
116864 PIE with copy reloc" which started to use direct access relocations for
116868 switching to -fpie/-fpic, aarch64 mostly doesn't need to worry about
116876 str_offsets_base to calculate the string offset.
116893 * elfxx-riscv.c (riscv_parse_prefixed_ext): Removed the code which are
116894 used to check the prefixed extension orders.
116906 RISC-V: Use single h extension to control hypervisor CSRs and instructions.
116907 According to the picture 28.1 in the current ISA spec, h is no larger the
116909 patch fix the implementation, and use the single h to control hypervisor
116910 CSRs and instructions, which we promised to do before.
116935 * testsuite/gas/riscv/h-ext-32.d: Added h to architecture string.
116949 RISC-V: Add 'H' to canonical extension ordering
116950 This commit adds 'H' to canonical extension ordering based on current
116970 strings with the gettext macro to prepare future i18n.
117030 We were failing to call prune_warnings appropriately, leading to
117044 A missing paren led to an intended cast to avoid dependence on the size
117045 of size_t in one argument of ctf_err_warn applying to the wrong type by
117056 and different compilation flags, then arrange to link all of these
117058 either inputs (if the .o files have the same name, say if they are
117060 types are found: the latter can lead to entirely spurious errors when
117061 it tries to produce multiple per-CU outputs with the same name
117065 Fixing this is multi-pronged. Both inputs and outputs need to be
117067 same cuname and filename need to be considered distinct as long as they
117068 have different associated CTF dicts, and per-CU outputs need to be
117071 CU name: fix this by introducing a new field in the ctf_dict_t named
117072 ctf_link_in_out, which (for input dicts) points to the associated per-CU
117073 output dict (if any), and for output dicts points to the associated
117074 input dict. At creation time the name used is completely arbitrary:
117076 when a clash is found, adjust the CU name by sticking the number of
117077 elements in the input on the end. At output time, the CU name will
117082 This naming scheme is not very helpful, but it's hard to see what else
117083 we can do. The input .o name may be the same. The input .a name is not
117084 even visible to ctf_link, and even *that* might be the same, because
117085 .a's can contain many members with the same name, all of which
117088 they are all represented, any any symbols, variables etc referring to
117094 Use the opportunity to prevent a couple of sources of problems, to wit
117097 multiple consecutive ctf_link's to have the same net effect as just
117108 CU name uniquely when clashes are found.
117111 name for a new per-CU dict.
117115 per-CU dicts relating to different inputs.
117125 name.
117139 list of directories to search, just as the shell does when looking
117140 for a program to run.
117145 This commit adds a cross reference to the file command for these options.
117154 value to fetch_indexed_addr(), i.e. fetch the proper entry in .debug_addr section.
117155 (display_debug_ranges): Add rnglists_base to the .debug_rnglists base address.
117158 …Default to disabling the linker warnings about execstack and RWX segments if the target is the HPP…
117160 * configure.ac (ac_default_ld_warn_execstack): Default to 'no' for
117165 option to the command line when running execstack tests for the
117176 is consulted only when deciding whether or not to print a value, and
117203 PR exp/20630 points out a simple way to cause an assertion failure in
117207 reason for this. This patch fixes the bug by updating copy_type to
117210 Better would perhaps be to finally implement type GC, but I still
117219 incorrectly assembled "runs" from unsorted entries and inserted them to an
117221 This commit updates the run assembly loop to break upon encountering a
117235 gdb/python: Export nibbles to python layer
117236 This patch makes it possible to allow Value.format_string() to return
117239 When we set the parameter of nibbles to True, we can achieve the
117249 This patch also includes update to the relevant testcase and
117268 group. The motivation for this work is to enhance the readability of
117277 With this patch applied, we can use the new print setting to display the
117295 gdb: NEWS: Move LoongArch gdbserver to the correct section
117308 demand_copy_C_string, which puts the name on the gas notes obstack.
117311 non-quoted names, obj_elf_section_name mallocs the name. Due to the
117312 mix of allocation strategies it isn't possible for callers to free
117315 can't obstack_free on error paths due to the xtensa
117317 the name is dup'd for no good reason as far as I know.
117320 * config/obj-elf.c (obj_elf_section_name): Create name on notes
117322 (obj_elf_attach_to_group): Don't strdup group name.
117343 …ld not convert ‘{0, LINE_OFFSET_UNKNOWN}’ from ‘<brace-enclosed initializer list>’ to ‘line_offset’
117354 LINE_OFFSET_UNKNOWN}, so initialization to those values can just go
117356 those cases can be better rewritten to delay setting the sign field
117363 Convert set_location_spec_string to a method
117364 This converts set_location_spec_string to a method of location_spec,
117365 and makes the location_spec::as_string field protected, renaming it to
117372 Convert location_spec_to_string to a method
117373 This converts location_spec_to_string to a method of location_spec,
117374 simplifying the code using it, as it no longer has to use
117381 Convert location_spec_type to a method
117382 This converts location_spec_type to location_spec::type().
117388 Convert location_spec_empty_p to a method
117389 This converts location_spec_empty_p to a method of location_spec,
117390 simplifying users, as they no longer have to use
117400 no longer have to use std::unique_ptr::get().
117435 location.c, so they are moved to the header. Since the definitions of
117442 ... were converted to proper copy ctors.
117446 get_linespec_location are converted to downcast functions, like
117457 breakpoint locations, or the result of decoding a location spec to
117471 /* Location we used to set the breakpoint. */
117476 /* The base class for all an event locations used to set a stop event
117483 actual locations in the program in scenarios that have nothing to do
117486 To clean all this confusion up, this patch renames "event_location" to
117488 location spec, they are renamed to include "spec" in their name, like
117490 location specs, and currently have just "location" in their name are
117491 renamed to include "spec" in their name too.
117522 The problem is that have_mpx is supposed to return 0, but it doesn't because
117523 it tries to match this output:
117542 EOF before reading anything returns NULL and does not write to buf.
117551 At least one place calling list_matching_formats failed to free the
117557 * addr2line.c (process_file): Adjust to suit.
117583 (dwarf_select_sections_by_names): Adjust to suit. Set
117595 pass over FDE to cie->col_type[reg] if CIE specifies reg.
117611 Noticed format mismatch when attempted to build gdb on i686-linux-gnu
117635 Add to documentation of Python 'dont_repeat' method
117637 is a bit ambiguous about when the method ought to be called. This
117645 ARM_SP_REGNUM as an alias similar to what is done in hardware.
117661 This means that when the GDB client is to show the value of "msp",
117662 the value should always be equal to either "msp_s" or "msp_ns".
117677 gdb/arm: Fetch initial sp value prior to compare
117679 stack pointers (msp_s, msp_ns, psp_s, psp_ns). In order to
117681 stacks. The value of the initial sp register needs to be fetched to
117687 After the recent restructuring of the disassembler code, GDB has ended
117691 My first thought was to move these out of their respective classes,
117695 And maybe that's the right way to go. But I disliked that by doing
117703 In terms of code generated, I don't think there's any significant
117705 the function is closely tied to the disassembler.
117728 Anyway to prove to myself that there was a problem here I extended the
117729 disassembler self tests in disasm-selftests.c to include a test of
117733 To fix this we need gdb_buffered_insn_length to create a disassembler
117735 disassembler to not print anything.
117738 a disassembler that doesn't print anything to the output stream.
117756 This commit extends the Python API to include disassembler support.
117758 The motivation for this commit was to provide an API by which the user
117764 does restrict the type of things that it is possible to do from a
117765 Python script, i.e. all additional output has to fit on a single line,
117767 I think, require greater changes to how GDB's internal disassembler
117775 Similar to libopcodes disassemble_info structure, has read-only
117780 this class is passed to a user written disassembler function, by
117794 This class can be used to hold the result of a call to the
117797 can return an instance of this class from Disassembler.__call__ to
117810 This provides access to GDB's builtin disassembler. A common
117812 The user code can call this function to have GDB disassemble the
117814 DisassemblerResult object, which they can then read in order to
117817 This function also provides a mechanism to intercept the
117829 can be used to list the currently registered Python disassemblers.
117836 In the next commit I will add a Python API to intercept the print_insn
117839 will be possible for a user to write Python code that either wraps
117846 for a print_insn hook. There's a new callback added to 'struct
117850 Finally, in the disassembler, the code is restructured so that the new
117852 delegate to gdbarch_print_insn.
117861 gdb: add new base class to gdb_disassembler
117863 that I would like to add. As part of that change I need to create a
117865 gdbarch. The management of these two objects is identical to how we
117867 for my new class to inherit from gdb_disassembler.
117873 member variable string_file are printed to the original ui_file*.
117877 intended to be used in a situation where print_insn is not going to be
117878 called, which is how my (upcoming) sub-class would need to operate.
117880 My solution then, is to separate out the management of the
117884 In arm-tdep.c and mips-tdep.c, where we used to cast the
117885 disassemble_info->application_data to a gdb_disassembler, we can now
117886 cast to a gdb_disassemble_info as we only need to access the gdbarch
117889 Now, my new Python disassembler sub-class will still want to print
117890 things to an output stream, and so we will want access to the
117893 However, rather than move this printing code into the
117905 The reason for adding the additional layer to the class hierarchy is
117906 that in yet another commit I intend to rewrite the function
117907 gdb_buffered_insn_length, and to do this I will be creating yet more
117917 gdb/python: convert gdbpy_err_fetch to use gdbpy_ref
117918 Convert the gdbpy_err_fetch class to make use of gdbpy_ref, this
117920 destructor to be removed.
117925 commit I will want to copy instances of gdbpy_err_fetch, and switching
117926 to using gdbpy_ref means that I can rely on the default copy
117927 constructor, without having to add one that handles the reference
117960 gcc 11, and we can only tell gcc to ignore if it knows about it.
117972 u.val) which then led to a segfault when attempting to access the
118007 reference to a non-existent manpage. Provide basic
118014 README is primarily oriented to the person who is installing gprofng,
118063 runtimes, the FPU is only initialized when a task tries to use it.
118065 switch -- instead, the save is deferred until the new task tries to
118069 This patch teaches GDB to understand this implementation. When
118070 fetching or storing registers, GDB now checks to see whether the live
118074 Currently only AArch64 uses this code. bb-runtimes implements this
118082 copy-paste. It seems better to switch to a table-driven approach.
118084 The previous code also fetched all registers whenever any register was
118094 took to be correct. However, those comments didn't account for
118118 In the Linux kernel code of LoongArch, ptrace implements PTRACE_POKEUSR
118120 set to yes.
118143 ]+)?(\^done,name="A_String_Access",numchild="1",.*[^M
118152 What happens is easier to understand if we take things out of the mi context:
118207 > > of code in elfcode.h:elf_object_p():
118216 > > Fix the core matching by copying that code to elfcore.h:elf_core_file_p().
118226 > Looking at elfcore.h, it seems to have not gotten changes made to elfcode.h over
118228 > that added these lines in elfcode.h (along with several other changes) need to
118229 > be applied to this function in elfcore.h, not just adding these lines.
118232 little wary of adding all the sanity checks to elf_core_file_p since
118235 was deliberate. The following seems reasonable to me. Please test.
118245 Fortran module). This commit adds support to handle this tag as an
118249 testcase with current git Clang. This testcase is also updated to
118257 BFD_RELOC_16, emitted by generic code to handle fixups on 16-bit data
118258 directives, expects fixups to operate on the whole of a 16-bit word.
118261 reloc that is used to generate R_MIPS_16. BFD_RELOC_16 is handled in
118271 * elf32-mips.c (mips_reloc_map): Map BFD_RELOC_MIPS_16 to R_MIPS_16.
118289 unchanged section contents on attempting to apply R_MIPS_16.
118296 asan: applying zero offset to NULL pointer
118308 in order to ensure gas state is saner for oss-fuzz.
118348 The problem is that the step is expected to step over the call to tcsetattr,
118349 but due to glibc debuginfo being installed, we step into the call.
118396 checking whether to use babeltrace... auto
118416 will have fixed names, others will have a default name "cpxcry". 'x'
118417 refers to bank, y refers index in the bank(a control register in bank
118418 4 with index 14 will has a default name cp4cr14).
118421 We assign a fixed number to each register in GDB, like:
118434 struct include name with regnum via index.
118439 We use the information described above to load the register description
118452 Error while executing Python code.^M
118457 module name in the ImportError.
118473 With its movement to the stack, and with the subsequent desire to
118479 Having got confirmation that it wasn't intentional to print memory
118482 for callers to pass in a style).
118484 While touching print_operand_value() also convert its "hex" parameter to
118492 Now that op_out[] is an array of pointers, there's no need anymore to
118499 all_prefixes[] can be shrunk to array of unsigned char. All that
118502 whether any prefixes were successfully decoded, to avoid converting
118503 opcode bytes matching the "artificial" values to prefix mnemonics.
118505 Similarly by re-arranging the bits assigned to PREFIX_* mask values
118507 active_seg_prefix to unsigned char.
118510 opcode being disassembled, signed char is sufficient to hold all possible
118523 to fill fields right in the initializer where possible. This way all
118529 Make one further arrangement though, to limit the amount of data needing
118531 member to just an array of pointers, with the actual arrays living
118536 arrange for no such declaration to be needed in the first place.
118547 updating this test not to allocate the mutable addrmap on an obstack.
118552 DWARF, but no other symbol reader was ever updated to use it. Now
118557 to avoid having to call splay_tree_delete, but examination of the code
118559 simple to treat them as ordinary C++ objects, in some cases
118560 stack-allocating them, and have a destructor to make the needed call.
118575 Move addrmap classes to addrmap.h
118576 This moves the addrmap class definitions to addrmap.h. This is safe
118577 to do now that the contents are private.
118589 changes the concrete implementations to be subclasses.
118593 Trivial fixes to Cygwin build after 8fea1a81
118598 Prior to c6ca3dab dropping support for Cygwin 1.5, __USEWIDE was not
118603 Prior to c6ca3dab dropping support for Cygwin 1.5, cygwin_buf_t was
118630 because it's not obviously related to the changes I made.
118632 Looking into it, it seems this line was intended to avoid a similar
118641 Fix comparison of unsigned long int to int in record_linux_system_call.
118654 has the MSB set to one so it is a negative integer. The comparison of the
118655 unsigned long value tmpulongest to a negative integer value for
118659 linux_record_tdep to unsigned long to fix the comparisons between
118662 An additional test gdb.reverse/test_ioctl_TCSETSW.exp is added to verify
118691 in the ioctl values for TCGETS, TCSETS, TCSETSW and TCSETSF to 0x2c.
118692 This patch also changes the hard coding to generate the number based on a
118693 it easier to update the ioctl numbers.
118702 # operations to 0 or 1.
118706 These define global variables true (to 1) and false (to 0).
118708 It seems odd to me that these globals are defined in
118714 it seems weird to me that in order to use $true/$false a user needs to
118732 suggestion is just to define them in each test script that wants
118746 and explains how to use it.
118758 Fix this by limiting the xfailing to gcc-11 and earlier. Also, limit the
118759 xfailing to the equality test.
118785 package name:
118800 Minor fix to Python breakpoint event documentation
118801 I noticed that the Python event documentation referred to the event's
118808 GDB's ability to run 32-bit ARM processes on an AArch64 native target
118822 The problems always start with a line similar to this:
118828 architecture, then gdbarch_tdep will return a pointer to an
118833 cast we then proceed to make use of TDEP, like this:
118839 returns false we then proceed with this code:
118852 The solution is to make use of a check like this:
118857 just need to make sure that we perform this check before trying to
118861 and the addition of the above check allows us to easily avoid the
118864 For fetch_registers and store_registers I made the decision to split
118866 aarch64_linux_nat_target::fetch_registers now calls to either
118870 One thing I had to decide was whether to place the new aarch32_*
118871 functions into the aarch32-linux-nat.c file. In the end I decided to
118876 and aarch64-linux-nat.c, this generic code to support 32-bit ARM
118886 aarch32-linux-nat.c, so if that is preferred I'm happy to move them.
118894 frame offset (at 0xA8 relative to R0 location) as well as FPU
118895 registers ones (starting at 0x68 relative to R0).
118899 once before the loop and reuse it to avoid fetching at every
118906 moved the ARM_CC_FOR_TARGET global check to that procedure, but forgot
118907 to tell tcl that ARM_CC_FOR_TARGET is a global. As a result,
118917 that LR is set to 0xffffffff on reset.
118920 to 0xffffffff on warm reset if Main Extension is implemented,
118931 gdb/testsuite: add Fortran compiler identification to GDB
118938 between calls to get_compiler_info.
118942 compiler_info based on the language passed as an argument to
118946 This obviously is slightly broken behaviour. If the first call to
118948 set based on the C++ compiler in use, while if the first call to
118959 Except, to make matters worse, most of the time, the user probably
118963 In gdb.exp we try to avoid global variables leaking between test
118980 However, if a single test script tries to check both the C and C++
118990 As future attempts to load the library will not actually reload it,
118992 test scripts that also tried to load that library.
118995 version adds all globals from the newly loaded library to the list of
118999 trace-support.exp includes calls, at the file scope, to things like
119000 is_amd64_regs_target, which cause get_compiler_info to be called.
119004 Our override of load_lib then decides that this new global has to be
119005 preserved, and adds it to the gdb_persistent_globals array.
119018 it to the cache.
119021 gdb_persistent_global. This automatically adds the global to the list
119032 passed to get_compiler_info. If the last language was e.g. Fortran,
119039 handled), then we should try to handle this failure better in
119050 that the user will be trying to match 'version' against something, and
119072 language argument now defaults to "c" if not specified, and the if
119076 This is a good thing, now that the API appears to take a language, if
119081 to check the version of the rust compiler then we will now give an
119083 having to figure out why they are not getting the results they
119087 passing the empty string to either get_compiler_info or
119088 test_compiler_info was in gdb_compile_shlib_1, this is now changed to
119091 There should be no changes to the test results after this commit.
119096 We don't need to call get_compiler_info before calling
119097 test_compiler_info; test_compiler_info includes a call to
119101 removing some unneeded calls to get_compiler_info. We could do the
119111 compiler_info to retrieve gcc's major version. This is discouraged and
119113 local to get_compiler_info and test_compiler_info.
119116 test_compiler_info without arguments. Gcc_major_version was changed to
119121 gdb: add Yvan Roux to gdb/MAINTAINERS
119129 This is caused by a call to skip_python_tests that is within a proc
119130 that is called multiple times by the test script. Each call to
119131 skip_python_tests results in a call to 'unsupported', and this causes
119142 gdb/testsuite: resolve duplicate test name in gnu_vector.exp
119143 While testing on AArch64 I spotted a duplicate test name in the
119146 This commit adds a 'with_test_prefix' to resolve the duplicate.
119148 While I was in the area I updated a 'gdb_test_multiple' call to make
119162 throw_perror_with_name, then any future calls would be to
119174 Unable to fetch VFP registers.: Invalid argument.
119180 perror_with_name (_("Unable to fetch VFP registers."));
119182 The perror_with_name function take a string, and adds ': <message>' to
119183 the end the string, so I don't think the string that we pass to
119194 Move CU queue to dwarf2_per_objfile
119198 not work. This was pointed out Lancelot as fallout from the patch to
119201 This patch avoids this problem by moving the queue to the per-objfile
119208 patch simplifies the code by changing it to use unique_ptr.
119218 Sometimes the operand buffers are built in a different order to the
119224 When looking for how to apply styling I guess the ideal solution would
119225 be to move away from the operands being a single string that is built
119231 But it feels like a huge amount of work to move from where we are
119232 now to that potentially ideal solution. Plus, the above solution
119240 buffer (see below for details). After this the code can continue to
119241 operate as it does right now in order to manage the set of operand
119274 The other output that appears to be from the disassembler is operands
119276 possible that a symbol name might contain any special character we
119281 back to the user (objdump, gdb, etc) to print the address and symbol
119282 on its behalf. This content is printed directly to the output stream,
119294 up, but we can come back to them later I think.
119341 The patch has been tested on Power 7 and Power 10 to verify the patch fixes
119347 On Aarch64, you can set ARM_CC_FOR_TARGET to point to the 32-bit
119348 compiler to use when testing gdb.multi/multi-arch.exp and
119352 I guess that approximately nobody remembers to set ARM_CC_FOR_TARGET.
119369 make the code independent of how reloc.size is encoded.
119408 These all ought to use bfd_reloc_offset_in_range. In particular, replace
119421 the size. The idea was to ensure no howto changed by inspecting
119437 This changes the HOWTO macro to encode the howto.size field from a
119439 uses of HOWTO, a major pain, but makes it a little nicer to specify
119445 (EMPTY_HOWTO): Adjust to keep it all zero.
119500 Mostly cosmetic unless attempting to link coff-z80 into another output
119528 to gas static state not being reinitialised between testcases, a bug
119532 (input_scrub_reinit): ..to here.
119541 This changes windows_process_info to use virtual methods for its
119542 callbacks, and then changes the two clients of this code to subclass
119543 this class to implement the methods.
119546 structures visible to the compilation of of nat/windows-nat.c. This
119549 This change then lets us change all the per-inferior globals to be
119555 It's possible this could be cleaned up further... ideally I'd like to
119558 to build or test Cygwin, larger refactorings are difficult.
119564 windows_nat_target. This avoids having to reference the
119565 windows_nat_target singleton in some more spots -- a minor code
119568 Allow ASLR to be disabled on Windows
119569 On Windows, it is possible to disable ASLR when creating a process.
119570 This patch adds code to do this, and hooks it up to gdb's existing
119573 CreateProcess wrapper function is updated to make the attempt, and
119574 then fall back to the current approach if it fails.
119578 CreateProcess function. This is done to make the next patch a bit
119589 but it's more appropriate to return const. This patch implements
119595 In commit 1390b65a1b9 ("[gdb/rust] Fix literal truncation") I forgot to add
119607 the FRV disassembler if the target bfd name is unknown.") in Januari 2017.
119621 "Changes since GDB 12". This patch consolidates the two. I chose to
119627 varobj used to store 'print_value' as a C string, where NULL was a
119628 valid value, and so it had logic to handle this situation. However,
119629 at some point this was changed to be a std::string, and so the code
119657 This then introduces redundant names like arm::arm, so try to avoid those,
119733 The insn is written to gdb_stdout, and there is code in the selftest to add a
119734 newline after the insn, which writes to stream().
119737 before writing to gdb_stdout, so writing into it after the disassembler has
119779 call to skip_python_tests. As a result, this test would fail for any
119782 This commit adds a call to skip_python_tests.
119791 I found a comment that referred to Python 2, but that is now obsolete
119792 -- the code it refers to is gone. I'm checking in this patch to
119795 There's a similar comment elsewhere, but I plan to remove that one in
119796 another patch I'm going to submit shortly.
119822 Rewrite parse_number to use ULONGEST instead of LONGEST, to fix UB errors as
119850 but that's related to C-like languages. In absence of information of whether
119862 but that's related to C-like languages. In absence of information of whether
119874 There might be a bug that 32-bit fortran truncates 64-bit values to
119884 The target architecture is set to "i386:x86-64".
119886 The target architecture is set to "i386".
119909 According to C language rules, unsigned types cannot be used for decimal
119920 According to the same rules, unsigned long is incorrect.
119949 This results in an increase in total tests from 15572 to 847448 (55 times
119954 combination, while keeping the possibility intact to run with all
119960 - wrapping from unsigned to signed
119962 - PR16377: using unsigned types to represent decimal constants in C
119975 ERROR: tcl error code NONE
119983 The problem is a curly brace as fourth argument to gdb_test, which errors out
119984 due to recently introduced more strict argument checking in gdb_test.
119988 Though this fixes the error for me, due to PR29160 I get only FAILs, so I can't
119995 into this hard-to-reproduce FAIL:
120002 [Switching to Thread 0x7ffff6d66700 (LWP 31287)]^M
120008 trying to pass on some order and fail on another order.
120010 Fix this by rewriting the regexps to match one line at most, and detecting
120023 warning: Unable to determine inferior's software breakpoint type: couldn't
120065 configuration of GDB. Attempting to continue with the default aarch64:ilp32
120077 Fix the warning by setting osabi to none while doing selftests that iterate
120093 For ARC, we use the generic case in print_one_insn_test, containing this code:
120114 which needs access to memory, and will consequently fail.
120117 supported osabi's to makes sure we trigger arc_linux_breakpoint_kind_from_pc
120118 which will give us a usable instruction to disassemble.
120134 complicates things by trying to set the current osabi.
120185 ]+)?(\^done,changelist=\[{name="foo",in_scope="true",type_changed="false",has_more="0"},
120186 {name="cb",in_scope="true",type_changed="false",has_more="0"}\][^M
120190 ^done,changelist=[{name="foo",in_scope="true",type_changed="false",has_more="0"}]^M
120195 The problem is that the test-case attempts to detect a change in the cb
120203 but that only works if the stack location happens to be unequal to 12 before
120206 Fix this by first initializing to 0, and then changing the value to 12:
120229 wonder if this profiling code is actually useful at all any more, in
120230 the meantime it's simple to fix the declaration.
120303 This renames the solib-dsbt.c copy of "struct ext_link_map" to avoid
120311 This renames one of the instance of "struct field_info" to avoid an
120352 make check-gdb TESTS="gdb.base/branch-to-self.exp"
120356 FAIL: gdb.base/branch-to-self.exp: single-step: si (timeout)
120357 …FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: continue to breakpoint: continue to brea…
120358 FAIL: gdb.base/branch-to-self.exp: break-cond: side=host: p counter (timeout)
120360 Implement the software_single_step gdbarch method to decode the current
120362 LoongArch to fix the above failed testcases.
120366 gdb: Do not add empty sections to the section map
120370 objfile, which are collected by update_section_map () and passed to
120386 …> ../../gdb/windows-nat.c:714:12: error: declaration of ‘char name [512]’ shadows a parameter [-We…
120387 > 714 | char name[SO_NAME_MAX_PATH_SIZE];
120390 > 655 | windows_make_so (const char *name, LPVOID load_addr)
120398 nat/windows-nat.c"). Update code under ifdef __CYGWIN__ for globals
120399 moved to members of struct windows_process_info.
120403 in gdbserver"). That change moves code from gdb/windows-nat.c to
120405 includes for parts of that code under ifdef __CYGWIN__.
120438 This fixes some horrible code using do_scrub_chars. What we had ran
120443 which should have been written directly to sbuf.
120446 scrubbing to input_scrub_include_sb. I did wonder about #NO_APP
120457 It is possible for sb_scrub_and_add_sb to not consume all of the input
120459 do_scrub_chars can leave pointers to the string buffer for the next
120480 Since commit b43771b045 it has been possible to look up addresses
120481 that match a unit with errors, since ranges are added to a trie while
120484 to scan_unit_for_symbols. Fix this by setting unit->error.
120504 configuration of GDB. Attempting to continue with the default aarch64:ilp32
120516 Fix the warning by setting osabi to none while doing selftests that iterate
120524 This adds the gdb.current_language function, which can be used to find
120526 having to parse the output of "show language".
120528 It also adds the gdb.Frame.language, which can be used to find the
120540 The prologue unwinder had support for FPU registers, but only to
120546 When unwinding the stack, the floating point registers d0 to d15
120547 need to be handled as double words, not words.
120555 called. After the function call, a hardware timer was used to
120559 from main to verify the content of the registers using "info float"
120560 and another breakpoint in the interrupt handler was used to check
120567 Changed offset from decimal to hex to match architecture reference
120568 manual terminology and keep coherency with the rest of the code.
120572 gdb:csky save fpu and vdsp info to struct csky_gdbarch_tdep
120574 to csky_gdbarch_tdep. They will be initialized from info.abfd in
120577 Now, they are just used to find a candidate among the list of pre-declared
120582 fpu_abi: to check if the bfd is using VAL_CSKY_FPU_ABI_HARD or
120584 fpu_hardfp: to check if the bfd is using VAL_CSKY_FPU_HARDFP_SINGLE
120586 vdsp_version: to check if a function is returned with CSKY_VRET_REGNUM
120616 to properly handle IFUNC function pointer reference. Since IFUNC symbol
120618 function pointer reference in PDE so that it will be resolved to its PLT
120670 A while back, I changed objfiles to be held via a shared_ptr. The
120671 idea at the time was that this was a step toward writing to the index
120673 to do so. However, since then we've rewritten the DWARF reader, and
120675 fact there are patches pending to implement this.
120677 This patch switches objfile management to unique_ptr, which makes more
120698 with a printed pointer while the gnu stack does not. This leads to
120726 For the compiled binary the Intel/LLVM compilers both decide to move the
120732 testcase at this point to be a bit more allowing for other outputs.
120733 I added the optional "<SYMBOLNAME>" to the regex testing for g.
120756 (so copied) to mixed_func_1g. The default copy-ctor will be called but,
120758 constructor is not implemented it will only be able to shallow copy the
120761 free on the heap allocated string which leads to a double free. Instead
120776 For example, in this test the linkage name for var_a in ifx is
120815 I want to emphasize: for Fortran (and also C/C++) the complete command
120818 that a given substring can be completed to (meaning that the given substring
120848 Attempt to use a type name as an expression
120884 to-be-completed string one can easily produce similar results:
120888 p typeinfo name for void
120889 p typeinfo name for void const*
120890 p typeinfo name for void*
120891 p typeinfo name for wchar_t
120892 p typeinfo name for wchar_t const*
120893 p typeinfo name for wchar_t*
120895 (gdb) p typeinfo name for void*
120919 confusing and maybe one wants to change this at some point but this
120933 that is quite similar to a C main function. This C-like wrapper has
120973 a character*1 type variable to the Fortran executable, but both, ifx and
120974 gfortran chose to emit this variable's type as a DW_TAG_string_type of
120981 a symbol or recurse to process the children. Therefore we can
120984 So they did not add any output to 'info types'. Only flang did emit a
120988 check for this character type was chagened to optional with the
120989 check_optional_entry to allow for the symbols's absence and to allow
120990 flang and ifx to pass this test as well.
120994 ifx) it even seems wrong. The line check for s1 was changed to actually
121006 or STATIC_BLOCKm wgucm according to block.h
121016 adding it to either, the GLOBAL_BLOCK nor the LOCAL_BLOCK. A bug has
121022 the change made here was to only check for this type in case of gfortran
121024 line issue mentioned above. A comment was added to maybe remove this
121025 check once the scoping issue is resolved (and it starts to fail with
121026 newer gfortran versions). The one used to test these changes was 13.0.
121033 later commit to make a testcase less GNU specific and more flexible for
121037 GDBInfoSymbols::check_entry is used to verify and test the output of the
121040 they test for symbols that are not actually required to be emitted. The
121048 appearing in the info symbols command. In order to fix this we will
121054 In order for ifx and ifort to emit all debug entries, even for unused
121055 parameters in modules we have to define the '-debug-parameters all' flag.
121057 This commit adds it to the ifx-*/ifort-* specific flags in gdb.exp.
121061 testsuite, fortran: add compiler dependent types to dynamic-ptype-whatis
121092 The name for icx and icpx in the testsuite was earlier set to 'intel-*'
121093 by the compiler identification. This commit changes this to 'icx-*'.
121096 tests have to be adapted here.
121101 gdb/testsuite: add Fortran compiler identification to GDB
121102 This commit adds a separate Fortran compiler identification mechanism to
121103 the testsuite, similar to the existing one for C/C++. Before this
121115 test_compiler_info to identify compiler flags and the compiler version.
121116 This could sometimes lead to unpredictable outputs. It also limited
121117 testsuite execution to combinations where C and Fortran compiler would
121119 clang/flang ..). This commit enables GDB to detect C and Fortran
121128 This enables GDB to properly run heterogeneous combinations of C and
121133 or enables one to run the testsuite without specifying a C compiler as in
121138 On the other hand this also requires one to always specify a
121147 flang-llvm to distinguish the two. While LLVM flang is not quite mature
121149 idea to include it already. For this we added a case for the fortran_main
121150 procedure. LLVM flang uses 'MAIN__' as opposed to classic flang which
121153 We did not have the possibility to test ARMFLANG - the versioning scheme
121156 We changed the test_compiler_info procedure to take another optional
121157 argument, the language string, which will be passed though to the
121160 get_compiler_info. The latter procedure was extended to also handle
121161 the 'f90' argument (similarly to the already existing 'c++' one).
121165 gdb/testsuite: move getting_compiler_info to front of gdb_compile
121170 to check whether or not it was called in with the option
121172 preprocess some test input to try and figure out the actual compiler
121173 version of the compiler used. While doing this we cannot again try to
121176 procedure do recursively test for the compiler version to e.g. set
121181 which was set to the result of the 'lsearch' query and used instead of
121183 options. But, this variable was actually set too late within the code.
121184 This lead to a mixture of querying 'getting_compiler_info' or
121185 doing an lserach on the options passed to the procedure.
121188 getting_compiler_info to the front of the procedure. It is set to true
121198 Newer Intel compilers emit their dwarf type name in a slightly different
121199 format. Therefore, this needs adjustment to make more tests pass in the
121211 The last uses of the F77_FOR_TARGET via passing f77 to GDB's compile
121219 being compiled by passing 'f90' to the GDB compile, thus only actually
121221 Gfortran in this case is backwards compatible with most f77 code as
121224 The reason we'd like to get rid of this now is, that we'll be
121225 implementing a Fortran compiler identification mechanism, similar to the
121227 defines to identify the Fortran compiler version at hand. We found it
121228 inconsequent to only implement this for f90 but, on the other hand, f77
121242 In the name matching unit tests in gdb/dwarf2/read.c, explain better
121296 gdb/testsuite: resolve duplicate test name in gdb.trace/signal.exp
121297 Spotted a duplicate test name in gdb.trace/signal.exp, resolved in
121334 It's because the test still expects to match a whitespace after the
121346 of your program's code."
121366 formats. GDB parses these and then finds the actual code locations
121368 specified like "-function func" will actually match all the code
121369 locations in the program that correspond to the address/file/lineno of
121379 command aborts with an error if the location specification resolves to
121381 arbitrarily and silently picks whatever is the first resolved code
121386 input, the argument or arguments that is/are passed to commands to
121387 instruct GDB how to find locations of interest. This is distinct from
121388 the actual code locations in the program, which are what GDB finds
121395 - renames the "Specify Location" section of the manual to "Location
121400 an actual code location in the program. It explains what a concrete
121401 code location is. It explains that a location specification may be
121402 incomplete, and that may match multiple code locations in the
121403 program, or no code location at all. It gives examples. Some
121406 better to have these centralized in this "Location Specification"
121411 command argument, updated it to say "@var{locspec}" instead. At the
121412 same time, tweaks the description of the affected commands to
121413 describe what happens when the location spec resolves to more than
121425 Special thanks goes to Eli Zaretskii for reviews and rewording
121432 Move 64-bit BFD files from ALL_TARGET_OBS to ALL_64_TARGET_OBS
121433 Doing a 32-bit build with "--enable-targets=all --disable-sim" fails to link
121439 binutils-gdb/gdb/loongarch-tdep.c:443: undefined reference to `loongarch_r_normal_name'
121441 binutils-gdb/gdb/loongarch-tdep.c:37: undefined reference to `loongarch_insn_length'
121443 binutils-gdb/gdb/loongarch-tdep.c:87: undefined reference to `loongarch_insn_length'
121444 binutils-gdb/gdb/loongarch-tdep.c:88: undefined reference to `loongarch_decode_imm'
121445 binutils-gdb/gdb/loongarch-tdep.c:89: undefined reference to `loongarch_decode_imm'
121446 binutils-gdb/gdb/loongarch-tdep.c:90: undefined reference to `loongarch_decode_imm'
121447 binutils-gdb/gdb/loongarch-tdep.c:91: undefined reference to `loongarch_decode_imm'
121448 binutils-gdb/gdb/loongarch-tdep.c:92: undefined reference to `loongarch_decode_imm'
121458 "--enable-targets=all --disable-sim" to complete.
121460 Moving the bpf, tilegx and loongarch files to the correct list means GDB can
121463 We still need the "--disable-sim" switch (or "--enable-64-bit-bfd") to
121477 Use a union to avoid casts in bfd/doc/chew.c
121480 sizes, not that we're likely to encounter build machines like that
121507 * doc/chew.c: Update function definitions to ISO C, remove
121514 "var" keyword which isn't used and was broken. (No means to set
121529 The zhinx extension is a sub-extension in zfinx, corresponding to
121609 In this commit I aim to improve the "help" output for commands and
121634 I've added a NEWS entry to note that there has been a change in
121642 Make use of gdb::unique_xmalloc_ptr<char> to hold the documentation
121645 is the removal of the call to free toward the end of this function.
121647 Prior to this commit, if an exception was thrown after the GDB command
121650 would surely lead to undefined behaviour.
121653 it over to the command creation routines. If we throw _after_ the
121656 add_prefix_cmd or add_cmd) then it is up to those functions to free
121684 handler did not find "show" in the command name, violating an
121685 invariant. This patch fixes the bug by changing the registration to
121691 While working on another patch[1] I had need to touch this code in
121701 What this code does is add whitespace after the instruction mnemonic
121704 The problem I ran into when working on this code can be seen by
121724 instr_info::obuf, then instr_info::mnemonicendp is setup to point to
121734 to this:
121744 for 'nop', and adjust the buffer to this:
121759 The fix for this is pretty easy, I can change NOP_Fixup to adjust
121763 So, I could update the tests to expect the whitespace....
121768 Turns out, I can pretty easily update the whitespace emitting code to
121775 I've then updated all the tests that I saw failing to adjust the
121776 expected patterns to account for the change in whitespace.
121783 bfd_hostptr_t is defined as a type large enough to hold either a long
121784 or a pointer. It mostly appears in the coff backend code in casts.
121787 comparison with include/coff/external.h and other code reveals that
121788 the type only needs to be large enough for a 32-bit integer or a
121815 (now legacy) one. Short of having access to a MASM version to actually
121821 Sadly the split out function, at least for the time being, needs to cast
121830 As a preparatory step to allowing proper non-operand forms of specifying
121831 embedded rounding / SAE, convert the internal representation to non-
121839 to the last register operand instead, just like spelled out by the SDM.
121841 assembler (such that it'll be easy to see that the assembler change
121842 doesn't alter generated code).
121847 MASM doesn't support the {1to<n>} form; DWORD BCST (paralleling
121848 DWORD PTR) and alike are to be used there instead. Accept these forms
121851 Acceptance of the original {1to<n>} operand suffix is retained both for
121852 backwards compatibility and to disambiguate VFPCLASSP{S,D,H} and vector
121854 how MASM expects those to be disambiguated.
121861 MASM doesn't support the {1to<n>} form; DWORD BCST (paralleling
121862 DWORD PTR) and alike are to be used there instead. Make the disassembler
121864 be easy to see that the assembler change doesn't alter generated code).
121867 the original {1to<n>} operand suffix is retained, to disambiguate
121868 output. I have no insight (yet) into how MASM expects those to be
121880 * libcollector/heaptrace.c: Fix -Wpointer-to-int-cast warnings.
121892 ld: cris*-elf: Default to --no-warn-rwx-segment
121895 specified through the --enable-* -option, default to
121902 cris: bfd: Correct default to no execstack
121906 emitting code needing it. In other words, the binutils setting
121908 defaulting to "off" is more sane.
121912 * testsuite/ld-elf/elf.exp (target_defaults_to_execstack): Switch to 0
121916 * elf32-cris.c (elf_backend_default_execstack): Define to 0.
121928 gdb: Change psymbol_functions::require_partial_symbols to partial_symbols
121933 serves this exact purpose, and does not need to do it anymore.
121935 This patch renames this method to partial_symbols and makes it an accessor
121946 Here is a way to reproduce the issue (there might be other ways, but one
121974 [Attaching after process 19720 fork to child process 19723]
121976 [Switching to process 19723]
122046 A fatal error internal to GDB has been detected, further
122054 was no debug info associated with it, but there is. Later, if we try to
122058 required to encounter some issues, it only is to encounter the segfault.
122060 main binary, unrelated to where we stopped.
122065 child_inf->symfile_flags = SYMFILE_NO_READ to delay the psymtab loading
122066 as much as possible. If we compare to what was done to handle this
122079 to the objfile's require_partial_symbols, so if the partial symbol table
122080 is not loaded at this point, there is no mechanism to fix this.
122082 Instead of requiring each implementation of the quick_functions to check
122083 that partial symbols have been read, I think it is safer to enforce this
122090 This patch proposes to wrap the access of the `qf` field with an accessor
122092 qf_require_partial_symbols. All calls to quick functions are updated
122108 PR gdb/29128 points out a crash in the new DWARF index code. This
122111 can only occur due to bad debuginfo, but at the same time, gdb should
122114 This patch fixes the bug and further merges some code into
122123 After DWARF has been scanned, the cooked index code does a
122126 splits Ada names to synthesize package names.
122134 comes from name canonicalization: if a given non-canonical name is
122135 referred to by multiple indices, there will be N canonical copies (one
122138 This requires changing the users of the index to iterate over multiple
122143 current machine, "maint space 1" reports no change due to the patch.
122146 correct results. That approach measures "time to next prompt", but
122148 doesn't) change. Instead, a simple way to make gdb wait for the
122149 results is to set a breakpoint.
122186 Whilst reviewing Luis' proposed change to s_arm_unwind_save_mixed
122188 directly within the main function, which is not guaranteed to be
122189 portable. Whilst studying the code further, I also realized that it
122190 could be rewritten without using it and also reworked to remove a lot
122192 removes the source of the warning that Luis was trying to fix).
122222 if the question and response parameters are given to gdb_test, the
122224 needed to use gdb_test_multiple to enforce this.
122226 This patch updates the gdb.dwarf2/calling-convention.exp testcase to use
122227 gdb_test to check that GDB asks a question. This replaces the more
122245 enabled), link ld to it, and use it to validate that the input is
122246 correct JSON, to avoid writing garbage to the file. The
122247 configure option --enable-jansson has to be used to explicitly enable
122249 are not interested) to seamlessly skip it without issues.
122258 Testsuite files belonging to commit 3ac9da49378c.
122274 Such locations won't trigger a break, so to avoid confusion, show "y-"
122296 The previous patch to add -prompt/-lbl to gdb_test introduced a
122297 regression: Before, you could specify an explicit empty message to
122298 indicate you didn't want to PASS, like so:
122311 commit, but tries to avoid it if possible. Most of the patch fixes
122317 In addition to looking for DUPLICATEs, I also looked for cases where
122318 we would now end up with an empty message in gdb.sum, due to a
122329 I fixed such cases by passing an explicit message. We may want to
122335 those were preexisting, unrelated to the gdb_test change.
122341 Add -nopass option to gdb_test/gdb_test_multiple
122342 The previous patch to add -prompt/-lbl to gdb_test introduced a
122343 regression: Before, you could specify an explicit empty message to
122344 indicate you didn't want to PASS, like so:
122354 I think that not issuing a PASS should be restricted to only a few
122356 to use gdb_test internally. In tests that iterate an unknown number
122362 new "-nopass" option to gdb_test and gdb_test_no_output. Compared to
122416 ppc: extend opindex to 16 bits
122417 With the upcoming SVP64 extension[0] to PowerPC architecture, it became
122419 switches the underlying type to uint16_t, also introducing a special
122458 (gdb) FAIL: gdb.opt/clobbered-registers-O2.exp: runto: run to start_sequence
122462 - the call to start_sequence in gen_movsd is optimized away, despite the
122476 files, as a way of trying harder to enforce noinline/noipa/noclone.
122494 The problem is that starting gcc-12, the assignments to x and y in main are
122508 Note that the test-case intends to check the handling of debug info for
122509 optimized code in function gen_movsd, so inhibiting optimization in main
122520 due to reserved 11 for extension in glibc, otherwise when execute:
122540 so that GDB for AArch64 knows how to pass DFP parameters and how to
122548 Merge config/ changes from GCC, to enable DFP on AArch64
122560 The fix here is to pass "section" down to read_and_display_attr_value.
122565 to read_and_display_attr_value2.
122566 (read_and_display_attr_value): Don't attempt to check for .dwo
122567 section name when section is NULL.
122573 * dwarf.c (display_debug_names): Don't attempt to display bucket
122588 Move the specialization into an explicit std namespace to workaround a
122589 bug in older compilers. GCC 6.4.1 at least fails to compile the previous
122600 and use this with register_size to compute the size of the
122628 In order to fix the above issues, implement the iterate_over_regset_sections
122629 gdbarch method to iterate over core file register note sections on LoongArch.
122645 The problem is that proc gdb_test doesn't pass down the -prompt option to proc
122646 gdb_test_multiple, due to a typo making this lappend without effect:
122652 Fix this by actually appending to opts.
122664 be represented in type 'long int'; cast to an unsigned type to negate this \
122665 value to itself
122729 The translation from tagged type to "full view" type happens in
122730 ada_tag_value_at_base_address, where we hit this code:
122732 /* Storage_Offset'Last is used to indicate that a dynamic offset to
122754 The difference is expected, it bisects to gcc commit d0567dc0dbf ("[multiple
122757 There's some code right after the code quoted above that deals with this
122762 /* OFFSET_TO_TOP used to be a positive value to be subtracted
122764 C++ dispatch table: C++ uses a *negative* value to *add*
122765 to the base address. Ada's convention has therefore been
122788 $supported_archs loop, to prevent duplicate testing.
122791 loop. This reduces the number of tests from 17744 to 15572.
122802 Currently GDB is not able to debug (Binary generated with Clang) variables
122804 LLVM debugger LLDB is able to debug.
122807 present in actual program. This is done to apply parallelism to block of
122808 code.
122810 For non-artifical functions, DW_AT_name attribute should contains the name
122817 it is not able to debug OpenMP (Clang).
122819 It should be fair to fallback to check DW_AT_linkage_name in case DW_AT_name
122851 The surprising part to me is having "base_breakpoint" being a subclass
122852 of "breakpoint". I'm just refering to naming here -- I mean, you'd
122859 breakpoints" shows watchpoints, tracepoints, etc. So it makes to call
122862 Instead, I propose renaming base_breakpoint to code_breakpoint. The
122863 previous patches made sure that all code breakpoints inherit from
122864 base_breakpoint, so it's fitting. Also, "code breakpoint" contrasts
122883 ... which makes a lot more sense to me.
122885 I've left this patch as last in the series in case people want to
122888 "code" has a nice property that it's exactly as many letters as
122896 To look for code paths that lead to create_breakpoints_sal creating
122911 The way to get to create_breakpoints_sal with multiple lsals is to use
122935 Use the "delete" command to delete unwanted breakpoints.
122942 procedure to use gdb_test_multiple instead of send_gdb/gdb_expect
122950 This adds a new ctor to momentary_breakpoints with a few parameters
122954 make the breakpoint be thread specific, which looks like a bug to me.
122956 The point of that breakpoint is to intercept std::terminate calls that
122968 number should be always 0, to avoid constantly incrementing (or
122975 internal breakpoint number to the new breakpoint. This commit fixes
122996 Move add_location(sal) to base_breakpoint
122998 add_location(sal), so we can move it to base_breakpoint (a.k.a. base
122999 class for code breakpoints).
123007 I did try to propagate more use of base_breakpoint to avoid casts, but
123014 Move common bits of catchpoint/exception_catchpoint to breakpoint's ctor
123015 Move common bits of catchpoint and exception_catchpoint to
123016 breakpoint's ctor, to avoid duplicating code.
123025 catchpoints don't have code locations.
123032 location's gdbarch, so replace the references to loc->gdbarch (which
123033 is now NULL) in syscall_catchpoint to references to the catchpoint's
123039 Since catchpoint locations aren't code locations, make struct
123051 location to decide whether the location has a meaninful address to
123063 Rename software_watchpoint_add_no_memory_location to
123069 useful to do so in "maint info breakpoints". This approach let's us
123077 exception_catchpoint is really a code breakpoint, with locations set
123078 by sals, re-set like other code breakpoints, etc., so make it inherit
123081 This adds a bit of duplicated code to exception_catchpoint's ctor
123094 init_raw_breakpoint to a ctor in a following patch.
123105 to internal_breakpoint's ctor, and stops using
123112 Convert init_ada_exception_catchpoint to a ctor
123116 init_ada_exception_catchpoint, being code specific to Ada catchpoints,
123120 And then, we can convert init_ada_exception_catchpoint to an
123132 to:
123136 just to make the code better document intention.
123138 To do this, we need to move the ada_catchpoint_location type's
123139 definition to after ada_catchpoint is defined, otherwise the compiler
123140 doesn't know that ada_catchpoint is convertible to struct breakpoint.
123147 This converts init_breakpoint_sal to a base_breakpoint constructor.
123151 To avoid manually adding a bunch of parameters to
123152 new_breakpoint_from_type, and manually passing them down to the
123179 locations are code locations. If we do that, then we can eliminate
123184 are code breakpoints, i.e., base_breakpoint subclasses, and thus we
123188 "self" pointer too. This will let us convert this function to a
123195 ranged_breakpoint: move initialization to ctor
123196 Move initialization of ranged_breakpoint's fields to its ctor.
123203 This commit replaces a chunk of code in break_range_command by an
123204 equivalent call to install_breakpoint.
123211 ranged_breakpoint's ctor already sets the breakpoint's type to
123216 Thus, the only thing init_raw_breakpoint is needed for, is to add the
123233 A patch later in the series will move this to base_breakpoint, but for
123234 now, it needs to be here.
123242 to store a 64-bit prefix instructions on Big Endian (BE) systems, the .quad
123263 This patch changes the .quad statement into two .longs to explicitly store
123266 The patch rearranges the instructions to put all of the word instructions
123269 The patch has been tested on Power 10 and Power 7 BE and LE to verify
123288 (dump_bfd): Call new function before attempting to load separate
123294 (process_object): Call new function before attempting to load
123297 debuginfod tests to pass.
123344 In aix-thread.c we use ms->value_address () to get the symbol address.
123355 add a trie to map quickly from address range to compilation unit
123356 When using perf to profile large binaries, _bfd_dwarf2_find_nearest_line()
123357 becomes a hotspot, as perf wants to get line number information
123362 Add a radix-256 trie over the address space to quickly map address to
123364 (but not full) debug information turned is on, we go from 6 ms to
123365 0.006 ms (6 µs) for each lookup from address to compilation unit, a 1000x
123412 Update the 'info pretty-printer' example in the manual to make use of
123439 This commit fixes the two mistakes, in one case, fixing the output to
123440 filter based on object-regexp, and in the other, to remove the
123458 modify support_displaced_stepping to support displaced stepping
123499 The problem is that we're passing an empty string_view to
123510 fine to pass an empty null-terminated string to IS_ABSOLUTE_PATH,
123514 Fix that by avoiding the "call" to IS_ABSOLUTE_PATH if the string_view
123522 Like the placeholder types added in 04dfe7aa5217 ("Arm64: follow-on to
123526 returned to force retaining of the [eventual] relocations. This is also
123534 in fact reduces the overall amount of code, and in particular the number
123535 of places which need to remain in sync.
123537 Afaics there's no real equivalent to the "traditional_format" field used
123556 --strip-debug. Set BSF_FILE on these symbols to change that.
123559 statements with identical code.
123580 section flags to executables") in that linking would use information a
123595 This commit fixes canonical extension order to follow the RISC-V ISA
123601 prefix to be placed before "J".
123609 Use aarch64_features to describe register features in target descriptions.
123617 descriptions to accept a const aarch64_features object rather than a
123620 Replace the multi-dimension tdesc_aarch64_list arrays used to cache
123625 Arm64: follow-on to PR gas/27217 fix
123628 Prior to trying to address PR gas/28888 I noticed anomalies in how
123633 two copy-and-paste mistakes, passing the wrong type to
123636 It further failed to add placeholder relocation types to that function's
123637 block of case labels leading to a return of 1. While not of interest for
123639 parse_operands()), calls to aarch64_force_reloc() happen before that
123655 (reg_names): Enumerate pseudoregister according to mapped physical
123660 (s_arm_unwind_save): Generate register list mask to pass to nested
123679 This will allow the unwind info to explicitly specify a different value
123692 variables' types can simply be bool and there's no masking to 32 bits
123697 Add a --no-weak option to nm.
123712 This teaches gdb_test to forward the -prompt and -lbl options to
123717 As a cleanup, instead of using llength and lindex to get at the
123721 Convert gdb.base/ui-redirect.exp and gdb.xml/tdesc-reload.exp to use
123737 Rename PAUTH_RA_STATE to RA_SIGN_STATE
123738 The aadwarf64 [1] names this register RA_SIGN_STATE, so update the code to use
123739 the same name.
123747 gdb.base/parse_number.exp. This reduces total amount of tests from 18466 to
123763 Add a new script gdb/syscalls/update-linux-from-src.sh, that can be used to
123807 Any construct which to the scrubber looks like a C preprocessor
123808 line/file "directive" is converted to .linefile, but the amount of
123811 conversion is further tied to # being a line comment character, anything
123812 which upon closer inspection turns out not to be a line/file "directive"
123813 is supposed to be treated as a comment, i.e. ignored. Therefore we
123815 code the function instead, treating everything not resulting in
123819 to avoid implementation defined behavior (which may be the raising of an
123826 Convert get_linefile_number() to return bool at this occasion as well.
123833 lacks compared with do_repeat() is a call to sb_build(), which can
123839 When assembling code previously pre-processed by a C compiler, long
123845 First of all convert to switch(), in preparation of adding another
123846 directive here which may not be ignored. While doing so drop dead code:
123852 and alike") I neglected the need to omit the leading . in M68K/MRI mode.
123877 After the patch to make gdb_test's question non-optional when
123887 asks the user whether to kill the program, while with remote targets,
123913 # QUESTION is a question GDB may ask in response to COMMAND, like
123915 # RESPONSE is the response to send if QUESTION appears.
123924 QUESTION/RESPONSE to GDB, but no question comes out. The previous
123929 3, or 5 arguments to gdb_test, but never 4, or more than 5. Making
123939 question to do this:
123941 # With gcc 9.2.0 we jump once back to main before entering foo here.
123942 # If that happens try to step a second time.
123949 Switch to using gdb_test_multiple instead. There are three spots in
123952 out to a procedure.
123961 Avoid having to unload file in gdb.server/connect-with-no-symbol-file.exp
123969 one is passed down as argument to gdb_test. With that, this test
123988 … Unexpected arguments: {set test-file-param bar.txt} {The name of the file has been changed to bar…
124003 This test is abusing the QUESTION/RESPONSE feature to send an
124004 alternative command to GDB if the first command fails. Like so:
124015 to the question path, then it's a bug. So just remove the question
124016 part passed to gdb_test.
124057 and need to be left-shifted by 1 before being shown to the user.
124059 current code does not try to prevent it, causing UBSan to complain.
124061 Fix by casting the values to their unsigned equivalents before
124083 so that it's way more unlikely to ever end up in such a situation.
124084 Then, move the code that checks the value of use_poll under HAVE_POLL
124090 // poll code
124097 // select code
124100 to
124105 // poll code
124110 // select code
124113 While at it, make use_poll be a bool. The current code is using
124114 unsigned char most probably to save space, but I don't think it really
124132 it caused "catch exception" and related commands to fail on Windows.
124147 [skip_*_tests], making it quite clear that this code block was supposed
124148 to finish the test if it entered the code block. This generates TCL
124168 a leftover from a previous approach in the index finalization code,
124169 and then when rewriting it I forgot to remove it.
124177 Windows, while gdb did implement it. This patch moves the code to
124187 to return a "const char *". I couldn't build many of these targets,
124188 but did examine the code by hand -- also, as this only affects the
124194 It's better, when at all possible, for test files to end up in the
124200 This changes coffread.c to avoid re-reading minimal symbols when
124201 possible. This only works when there are no COFF symbols to be read,
124202 but at least for my mingw builds of gdb, this seems to be the case.
124205 some local builds to ensure that no warnings crept in.
124211 write on" (equivalent), and then poke memory expecting it to patch the
124212 core binary, you'll notice something odd -- the write seems to
124231 That happens because _bfd_elf_set_section_contents does this to seek
124232 to the section's offset:
124239 ... and 'hdr->sh_offset' is zero, so we seek to just OFFSET, which is
124243 feature), and indeed elf_core_file_p doesn't even try to read sections
124254 that allow standard bfd access to the general registers (.reg) and the
124264 to:
124271 eliminating some duplicate code.
124290 a PTR cast is used in assignment or function args to a void* I've
124335 due to gcc commit 33b43b0d8cd ("Define std::string and related typedefs
124338 Fix this by adding the missing typedef for gcc version 5 (the first version to
124339 have the dual abi) to 8 (the last version missing aforementioned gcc commit).
124397 - Test long double assignment to compiler-generated long
124399 - Test long double assignment to GDB internal variables.
124424 (gdb) FAIL: gdb.dwarf2/dw2-out-of-range-end-of-seq.exp: runto: run to main
124462 The new test failed on s390-linux due to bfd_sprintf_vma trimming
124463 output to 32 bits for 32-bit targets. The test was faulty anyway,
124465 that's what you get if you cast min to int.
124481 continue to breakpoint: before pipe call
124483 Unknown syscall name 'pipe'.^M
124487 Unknown syscall name 'pipe2'.^M
124524 The problem is that due to recent commit e21d8399303 ("[gdb/testsuite] Remove
124528 Fix this by moving "clean_restart $binfile" back to
124549 Fix this by limiting the output of the command to the exec.
124573 Rewrite the proc to iterate over all cases, and check if the test is supported
124578 - a gdb build build with my usual --enable-targets setting (too long to
124591 Process record: failed to record execution log.^M
124595 (gdb) FAIL: gdb.reverse/fstatat-reverse.exp: continue to breakpoint: marker2
124598 The problems is that while with native we're trying to record these syscalls
124623 due to failure of bpf to compile with that patch applied.
124625 …: error: conversion from ‘long unsigned int’ to ‘unsigned int’ changes value from ‘184467440737094…
124665 "daddu $gp,$gp,$t9" and "daddu $gp,$t9,$gp" to the mips32_scan_prologue
124666 function to fix the large-frame.exp test case.
124685 gdb: LoongArch: Use GDB style to check readbuf and writebuf
124686 The GDB style is to write 'if (readbuf != nullptr)', and the same for
124692 PR build/29110 points out that GDB fails to build on mingw when the
124694 tools using the "posix" thread model, which somehow manages to support
124703 I am not able to test the win32 thread model build, but I'm going to
124704 ask the reporter to try this patch.
124711 If you try to set a breakpoint at a function such as "b
124713 to be set, like so:
124721 The problem is that the code in GDB that expands the std::string
124724 /* If we have "typedef struct foo {. . .} bar;" do we want to
124726 C++, because C++ folk tend to expect things like "class5
124728 arbitrarily choose to make language_minimal work in a C-like
124732 if (type->code () == TYPE_CODE_UNION)
124734 else if (type->code () == TYPE_CODE_STRUCT)
124741 else if (type->code () == TYPE_CODE_ENUM)
124745 I.e., std::string is expanded to "class std::..." instead of just
124753 Use type_print_raw_options as it seems to me that in this scenario we
124754 always want raw types, to match the real symbol names.
124756 Adjust the gdb.cp/break-f-std-string.exp testcase to try setting a
124763 Always pass an explicit language down to c_type_print
124764 The next patch will want to do language->print_type(type, ...), to
124774 language, and adjusts the codebase throughout to always pass down a
124778 rust-lang.c there's no enum language handy, but the code is written
124809 you need to compile with -D_GLIBCXX_USE_CXX11_ABI=0 to use the old
124813 If we tweak the gdb.cp/no-dmgl-verbose.exp testcase to force the old
124838 default, it expands it to the user-friendly typedef "std::string",
124840 abbreviation is expanded to the underlying, non-typedefed fullname
124847 DMGL_VERBOSE, and others that did not, leading to mismatches. The
124848 solution back then was to stop using DMGL_VERBOSE throughout.
124850 GDB has code in place to let users set a breakpoint at a function with
124858 mangled name of a function such as "void f(std::string)" that was
124863 For example, the mangled name of "void f(std::string)" if you compile
124878 would really try to set a breakpoint at "f(std::basic_string<char,
124883 For this reason, the code that expands typedefs in function parameter
124888 And here lies the problem when you try to do "b f(std::string)" with a
124890 expands to a different underlying type, like so:
124904 "f(std::string)", GDB's typedefs-in-parameters expansion code hits the
124906 fails to be inserted, because the symbol that exists is really the
124912 So to fix things for C++11 ABI, clearly we need to remove the
124920 The solution is then to in addition switch GDB to always use
124932 The point of the gdb.cp/no-dmgl-verbose.exp testcase was to try to
124939 This obviously no longer makes sense to have, since we now depend on
124941 new gdb.cp/break-f-std-string.exp testcase whose purpose is to make
124955 (in bytes) both seem to be limited by the maximum value of a 4
124956 byte (signed) Fortran integer. This lead to compiler errors/unexpected
124959 implementations, but generally, it seemed like a good idea to simply
124964 KIND parameters are too small to fit the actual intrinsic function's
124966 byte overflows. The last one caused problems, as it tried to allocate
124970 The tests were adapted to only execute the 4 byte overflow tests when
124976 gfortran 4.6). If this byte size evaluates to less than 8 we skip the
124979 the 4 byte overflow tests if the procedure is_64_target evaluates to false.
124981 In size.f90, additionally, the to-be-allocated amount of bytes did not
124994 A last change that happened with this patch was due to gfortran's and
124995 ifx's type resolution when assigning big constants to Fortran Integer*8
125004 is on. Sadly, just changing this line to
125017 on the other hand fail to compile with gfortran (9.4.0) as the compiler
125018 identifies an Integer overflow here. Finally, to make this work with
125068 observable, but it doesn't have to be, as it does not depend on the
125104 * config/obj-evax.c (evax_symbol_new_hook): Don't cast to PTR.
125121 * coffcode.h (coff_write_object_contents): Don't cast to PTR.
125166 gdb.mi/mi-multi-commands.exp. This test sends two commands to GDB as
125191 - Use syscalls/update-linux.sh to update syscalls/{amd64,i386}-linux.xml.in.
125196 - <syscall name="madvise1" number="220"/>
125197 - <syscall name="getdents64" number="221"/>
125198 - <syscall name="fcntl64" number="222"/>
125199 + <syscall name="getdents64" number="220"/>
125200 + <syscall name="fcntl64" number="221"/>
125211 Add a Makefile in gdb/syscalls that can be used to translate
125237 A problem internal to GDB has been detected,
125240 In order to fix the above failed testcases, implement the return_value
125246 This fix relates to PR gdb/29032, this makes the test more stable by
125253 (that the test sends to GDB) arrives while GDB is processing a
125267 attempt to answer that question, which is while bug PR gdb/29032 will
125277 -record btrace <name> <email>
125279 + btrace <name> <email>
125281 to clarify that the listed maintainer is only maintainer of the btrace part of
125298 Unknown syscall name 'pipe2'.^M
125339 Unknown syscall name 'pipe2'.^M
125354 Process record: failed to record execution log.^M
125358 (gdb) FAIL: gdb.reverse/pipe-reverse.exp: continue to breakpoint: marker2
125368 - translating amd64_sys_pipe2 to gdb_sys_pipe2 in amd64_canonicalize_syscall
125413 - tries to match the following prompt "(gdb) "
125420 Fix this by using a new proc wait_for_region_contents, which in contrast to
125458 The problem here is directly casting from a pointer to a non-pointer-sized
125461 Fix this by adding an intermediate cast to std::uintptr_t.
125479 test_cli_inferior: reset selection to thread 1.1
125486 But the many UNRESOLVEDs are due to not checking whether the setup as done in
125492 - adding a "setup done" pass/fail to be turned into an unresolved
125506 [Inferior 1 (process 15656) exited with code 0177]^M
125507 (gdb) FAIL: gdb.ada/catch_ex_std.exp: runto: run to main
125549 syscall". Apparently I forgot to finish the conversion of this code
125561 readline: back-port changes needed to properly detect EOF
125581 but by pressing the up arrow key to select the previous command. It
125585 The problem here appears to be readline's EOF detection when handling
125603 That commit also includes some updates to the readline documentation
125612 a number of casts to bfd_signed_vma that cause undefined behaviour
125615 * i386-dis.c (OP_E_memory): Do not cast disp to bfd_signed_vma
125621 Re: Fix new linker testsuite failures due to rwx segment test problems
125653 Fix new linker testsuite failures due to rwx segment test problems
125659 all catchpoints. init_catchpoint is rewritten to be a constructor
125668 Add initializers to tracepoint
125669 This adds some initializers to tracepoint. I think right now these
125670 may not be needed, due to obscure rules about zero initialization.
125672 to be explicit.
125680 It seems to me that breakpoint should use DISABLE_COPY_AND_ASSIGN.
125683 Add constructor to exception_catchpoint
125684 This adds a constructor to exception_catchpoint and simplifies the
125687 Add constructor to syscall_catchpoint
125688 This adds a constructor to syscall_catchpoint and simplifies the
125691 Add constructor to signal_catchpoint
125692 This adds a constructor to signal_catchpoint and simplifies the
125695 Add constructor to solib_catchpoint
125696 This adds a constructor to solib_catchpoint and simplifies the caller.
125698 Add constructor to fork_catchpoint
125699 This adds a constructor to fork_catchpoint and simplifies the caller.
125716 code in ada-lang.c that can be simplified a little as well.
125718 Move works_in_software_mode to watchpoint
125720 moves it from breakpoint to watchpoint, and changes it to return bool.
125723 This changes breakpoint::explains_signal to return bool.
125728 Change print_recreate_thread to a method
125729 This changes print_recreate_thread to be a method on breakpoint. This
125737 signal handler function test_signal_handler. The code at the break point
125743 after the stepi is in the vdso code inserted by the kernel. The code at the
125749 kernel changes involving the vdso for PowerPC have been made changes to the
125750 signal handler code flow. PowerPC is now stopping in function
125751 __kernel_start_sigtramp_rt64. PowerPC now requires an additional stepi to
125762 An additional change to the PowerPC 64 signal handler was made in Linux
125768 The first kernel change, puts code into the user space signal handler (in
125769 the vdso) as a performance optimization to prevent the call/return stack
125775 symbol is introduced to serve as the jump target from the kernel to the
125778 The above changes for PowerPC signal handler, causes gdb to stop in the
125779 kernel code not the user signal handler as expected. The kernel dispatches
125780 to the vdso code which in turn calls into the signal handler. PowerPC is
125781 special in that the kernel is using a vdso instruction (bctrl) to enter the
125784 I do not have access to a system with the first patch but not the second. I did
125791 function __kernel_start_sigtramp_rt64 then does an additional stepi to reach the
125804 likely to cause parallel running of the rule recipe. The bug goes
125805 back to 1997, the initial c0734708814c commit.
125821 The problem is that the test-case tries to mimic some gdb_compile_shlib
125846 A rather straightforward patch to change an instance of callback +
125847 void pointer to gdb::function_view, allowing pasing lambdas that
125855 By mistake, $target was used instead of $host to configure the gprogng build.
125892 to a GDBserver on startup, and therefore pushes a remote target on the
125896 Rewrite it to use scoped_mock_context, so it doesn't depend on the
125903 Move TILE-Gx files to TARGET64_LIBOPCODES_CFILES
125905 TARGET64_LIBOPCODES_CFILES as opposed to TARGET32_LIBOPCODES_CFILES.
125908 I believe it is a mistake to define ARCH_cris when BFD64 is defined. It is
125913 loongarch: Don't check ABI flags if no code section
125916 these files also have no code sections, so they should be compatible
125921 Skip ABI checks if the input has no code sections.
125924 Suggested-by: Wang Xuerui <i@xen0n.name>
125967 * plugin.c (get_symbols): Resolve SYM definition to
125983 Tidy the dynamic reloc handling code in check_relocs, removing
125984 leftover comments and code from when check_relocs was called as each
125988 handling code.
125994 My patches yesterday to unify the DWARF index base classes had a bug
125995 -- namely, I did the wholesale dynamic_cast-to-static_cast too hastily
125996 and introduced a crash. This can be seen by trying to add an index to
126013 DIAGNOSTIC_IGNORE_STRINGOP_OVERREAD macro to suppress this warning.
126028 Luis noticed that the recent changes to gdbserver to make it track
126038 A problem internal to GDB has been detected,^M
126061 This sequence of functions is invoked due to a series of conditions:
126065 2 - ... gdbserver has to know what type of architecture it is dealing
126066 with so it can pick the right breakpoint kind, so it wants to
126074 on purpose, via set_desired_process, exactly to expose code relying on
126075 the current thread when it shouldn't. It was always possible to end
126077 harder to reproduce before.
126079 This commit fixes it by tweaking is_64bit_tdesc to look at the current
126108 gdb/remote: send qSymbol to all inferiors on startup
126109 start_remote_1 calls remote_check_symbols after things are set up to
126110 give the remote side a chance to look up symbols. One call to
126116 Change it to iterate on all the target's inferiors and send a qSymbol
126119 I tested this by changing gdbserver to spawn two processes on startup:
126134 Instead of hacking GDBserver, it should also be possible to test this by
126139 I was able to see qSymbol being sent for each inferior:
126158 Note that there would probably be more work to be done to fully support
126159 this scenario, more things that need to be done for each discovered
126199 2, then inferior 2 executes until exit, then we switch back to inferior
126200 1 and try to resume it.
126204 …e this command while the target is running.\nUse the \"interrupt\" command to stop the target\nand…
126237 [infrun] start_step_over: stealing global queue of threads to step, length = 0
126255 [infrun] context_switch: Switching context from 0.0.0 to 965604.965604.0
126258 [infrun] start_step_over: stealing global queue of threads to step, length = 0
126277 space to be deleted, which clears the symtabs for that program space,
126279 observer (with a nullptr objfile, to indicate that the previously
126283 remote_check_symbols is the function that sends the qSymbol packet, to
126286 resumed. It has sent a vCont packet to resume the target and is waiting
126288 causes the exception to be thrown.
126296 space is the current program space). Inferior 2 isn't bound to any
126298 pruned). It doesn't make sense to try to send a qSymbol packet for a
126300 actually attempts to avoid that:
126305 remote target to request symbol lookups related to its
126312 passes, since inferior has execution. We therefore try to send a
126313 qSymbol packet for inferior 1 in reaction to a change in inferior 2's
126319 consider the current inferior at all, but instead all inferiors bound to
126321 be unrelated to the current program space at that point.
126325 program space to switch to, inferior 2 has already been unlinked.
126327 To fix this, make remote_new_objfile iterate on all inferiors bound to
126352 The patch also tidies the dynamic reloc handling code in check_relocs,
126353 removing leftover comments and code from when check_relocs was called
126375 gdbserver: Fix build after adding tls feature to arm tdesc.
126395 Derive the pointer to the DTV array from the tpidr register.
126405 Derive the pointer to the DTV array from the tpidruro register.
126413 operations to fetch a register set named by an ELF note type. These
126414 helper routines provide helpers to check for a register set's
126415 existence, fetch registers for a register set, and store registers to
126435 The problem starts with GDB telling GDBserver to select a thread, via
126437 and GDB, without knowing the thread is gone, tries to write to memory,
126441 gdb_write_memory, call set_desired_thread to make GDBserver re-select
126446 Now, to access memory, it doesn't really matter which thread is
126450 which process that thread belonged to.
126454 similar to set_desired_thread, but just sets the current process,
126456 read and write routines, to avoid failing if the selected thread is
126468 …FAIL: gdb.threads/access-mem-running-thread-exit.exp: non-stop: second inferior: runto: run to main
126481 Don't know how to run. Try "help target".
126482 …FAIL: gdb.threads/access-mem-running-thread-exit.exp: non-stop: second inferior: runto: run to main
126485 auto-connect-native-target off", to prevent testcases from mistakenly
126502 I found it really useful to print the executing/resumed status of all
126506 This debug was originally part of the above patch, but I wanted to
126507 rewrite this as a separate patch and move the code into a new function
126515 …tially dangerous executable segments. Add tests, options to disabke and configure switches to cho…
126517 Fix potential arithmetic overflow in the linker's plugin handling code.
126520 amount of memory to allocate.
126525 Previous work to add styled disassembler output missed a case in
126531 It is not necessary to pass an empty string to mi_gdb_start, passing
126532 the empty string is equivalent to passing no arguments, which is what
126533 we do everywhere else (that we don't need to specify an actual
126538 with a call to 'mi_gdb_start' - just for consistency.
126544 gdb/testsuite: change mi_gdb_start to take a list of flags
126547 arguments and using 'args' to gather these into a list, though clever,
126573 eval here is used to expand the $start_ops list so mi_gdb_start sees
126574 the list contents as separate arguments. In this case we just need to
126595 The test script tries to switch between the CLI an MI terminals and
126602 The proc default_mi_gdb_start expects to take a set of flags (strings)
126603 as arguments, each of flag is expected to be a separate argument. The
126605 the special 'args' parameter name, and then iterates over this list to
126608 In mi_gdb_start, which forwards to default_mi_gdb_start, the arguments
126610 expanded back to be separate arguments using the eval trick, i.e.:
126625 but forgets to expand the arguments out using the eval trick.
126628 time we get to default_mi_gdb_start, we end up with the args list
126637 which (as far as I can see) is the only test where we might try to
126639 both arguments to mi_gdb_start, but mi_gdb_start behaves as if no
126670 from each spawn-id, and for the test to pass we need to see both
126677 However, in this particular test we expect gdbserver to fail to
126695 pattern from gdb to be seen, and for the test to pass.
126697 I now see no failures relating to 'run failure detected'.
126708 align.cc:29:23: error: invalid application of 'alignof' to a void type^M
126721 is unset or set to be the empty string (via the $DEBUGINFOD_URLS
126727 Modify a testcase to verify that a whitespace-only URL disables
126733 The type_wanted value, passed down to the create_sals_from_location
126740 gnulib: update to bd11400942d6
126741 Update the gnulib import to fixes these issues:
126794 to vtable ops") caused these to start failing. I didn't notice this
126811 Attaching to Remote target^M
126822 attach to the program via remote (timeout)
126869 There's no need to have vtable_breakpoint_ops any more, so remove it
126875 switch to using methods directly in the callers. Only the two "static
126902 This patch merges the two cases. This avoids having to introduce a
126903 new bp_ constant (which can be quite subtle to do correctly) and a new
126912 Convert static marker tracepoints to vtable ops
126913 This converts static marker tracepoints to use vtable_breakpoint_ops.
126917 create_breakpoint, at present it's necessary to have a new bp_
126920 bp_static_marker_tracepoint and updates various spots to recognize it.
126922 Convert ranged breakpoints to vtable ops
126923 This converts ranged breakpoints to use vtable_breakpoint_ops. This
126928 Convert dprintf to vtable ops
126929 This converts dprintf to use vtable_breakpoint_ops.
126931 Convert Ada catchpoints to vtable ops
126932 This converts Ada catchpoints to use vtable_breakpoint_ops.
126934 Convert ordinary breakpoints to vtable ops
126935 This converts "ordinary" breakpoint to use vtable_breakpoint_ops.
126943 This changes dprintf to simply inherit directly, and updates struct
126944 dprintf_breakpoint to reflect the change as well.
126946 Convert momentary breakpoints to vtable ops
126947 This converts momentary breakpoints to use vtable_breakpoint_ops.
126949 Convert internal breakpoints to vtable ops
126950 This converts internal breakpoints to use vtable_breakpoint_ops.
126952 Convert break-catch-throw to vtable ops
126953 This converts break-catch-throw.c to use vtable_breakpoint_ops.
126955 Convert base breakpoints to vtable ops
126956 This converts base breakpoints to use vtable_breakpoint_ops.
126962 hierarchy is chosen to reflect what's already present in
126966 This patch also changes new_breakpoint_from_type to create the correct
126967 sublcass based on bptype. This is important due to the somewhat
126973 Convert tracepoints to vtable ops
126974 This converts tracepoints to use vtable_breakpoint_ops.
126976 Convert watchpoints to vtable ops
126977 This converts watchpoints and masked watchpoints. to use
126979 introduced, and watch_command_1 is changed to create one.
126981 Convert break-catch-load to vtable ops
126982 This converts break-catch-load.c to use vtable_breakpoint_ops.
126984 Convert break-catch-fork to vtable ops
126985 This converts break-catch-fork.c to use vtable_breakpoint_ops.
126987 Convert break-catch-exec to vtable ops
126988 This converts break-catch-exec.c to use vtable_breakpoint_ops.
126990 Convert break-catch-syscall to vtable ops
126991 This converts break-catch-syscall.c to use vtable_breakpoint_ops.
126993 Convert break-catch-sig to use vtable ops
126994 This converts break-catch-sig.c to use vtable_breakpoint_ops.
126999 This adds methods to struct breakpoint. Each method has a similar
127000 signature to a corresponding function in breakpoint_ops, with the
127006 with functions that simply forward a call from breakpoint_ops to the
127014 This changes breakpoint_ops::print_one to return bool, and updates all
127023 Add an assertion to clone_momentary_breakpoint
127024 This adds an assertion to clone_momentary_breakpoint. This will
127028 up the code later.
127031 Change print_solib_event to accept a bool parameter and update the
127034 Move "catch load" to a new file
127035 The "catch load" code is reasonably self-contained, and so this patch
127037 One function from breakpoint.c, print_solib_event, now has to be
127054 index closer to what gdb generated before the new DWARF scanner
127073 However, to avoid making the rewrite series even bigger (fixing the
127075 attempted to preserve the weirdness.
127083 The new code, instead, simply preserves the actual DWARF tag -- but
127087 This patch attempts to revert to the old behavior in the writer.
127103 …[Switching to inferior 2 [process 634975] (/home/simark/build/binutils-gdb-one-target/gdb/testsuit…
127104 [Switching to thread 2.1 (Thread 0x7ffff7c9a740 (LWP 634975))]^M
127110 [Switching to Thread 0x7ffff7c9a740 (LWP 634972)]^M
127111 …-fork=off: cmd=next 2: test_follow_fork: continue until exit at continue unfollowed inferior to end
127119 - we continue, leading to inferior 2's exit
127136 …[Switching to inferior 2 [process 637627] (/home/simark/build/binutils-gdb-one-target/gdb/testsuit…
127137 [Switching to thread 2.1 (Thread 0x7ffff7c9a740 (LWP 637627))]
127146 [infrun] start_step_over: stealing global queue of threads to step, length = 0
127171 [infrun] stop_all_threads: start: reason=presenting stop to user in all-stop, inf=-1
127177 [infrun] stop_all_threads: end: reason=presenting stop to user in all-stop, inf=-1
127178 [Switching to Thread 0x7ffff7c9a740 (LWP 637624)]
127194 debugging shows that prior to the call to
127197 restore_thread object is disabled, due to:
127201 choices - switch to no thread selected, or restore the
127203 later, just because that's what GDB used to do. After
127216 actually attempts to restore the event_thread to be current at the end,
127218 to be the event thread). But in this case, the event is of kind EXITED,
127232 to it anymore, so it leaks. I don't want to fix that in this patch, but
127233 thought it would be good to mention it, in case somebody has an idea for
127234 how to fix that.
127243 reviewing patches that assumed STEP/SIGNAL always applied to the
127253 Because GDB always switches the current thread to "leader" thread
127254 being resumed/stepped/signalled, we can simplify this a bit to:
127263 That's what this patch does. It renames the PTID parameter to
127264 SCOPE_PTID, adds some assertions to target_resume, and tweaks
127265 target_resume's description. In addition, it also renames PTID to
127268 they don't have to.
127282 alloc.c:(.text+0x20): undefined reference to `rpl_malloc'
127283 alloc.c:(.text+0x70): undefined reference to `rpl_realloc'
127299 to allow function pointer reference and make sure that PLT entry isn't
127300 used for function reference due to function pointer reference.
127318 Check OBJF_NOT_FILENAME in DWARF index code
127319 The DWARF index code currently uses 'stat' to see if an objfile
127320 represents a real file. However, I think it's more correct to check
127331 exceptions being in some nat-* code I can't compile, and
127332 glibc_thread_db.h, which I think is more or less a copy of some C code
127355 to this:
127376 My proposed fix is to move the nullptr check into block::ranges, and
127383 s390: Add DT_JMPREL pointing to .rela.[i]plt with static-pie
127386 to .rela.plt. On s390, the IRELATIVE relocations are
127389 to the dynamic section even if htab->srelplt->size == 0.
127417 (say, two arrays of different sizes with the same name in two different
127418 TUs) the CTF deduplicator uses a popularity contest to decide what to
127420 dict, while the others are relegated to per-CU child dicts.
127430 Adjust things to use the same strategy used to sort types on the output:
127446 cd_output_first_gid to break ties.
127460 libctf: add a comment explaining how to use ctf_*open
127461 Specifically, tell users what to pass to those functions that accept raw
127462 section content, since it's fairly involved and easy to get wrong.
127488 addrmap_find shouldn't need to modify the addrmap, so constify the
127497 Replace with calls to blockvector::blocks, and the appropriate method
127622 There might be a bug that 32-bit fortran truncates 64-bit values to
127668 long, and thus no way to represent 64-bit integers in C-like
127697 gdb/arm: Extend arm_m_addr_is_magic to support FNC_RETURN, add unwind-secure-frames command
127699 introduced by the previous patch to switch between them as needed
127702 It introduces a new 'unwind-secure-frames' arm command to enable/disable
127722 to handle Secure and Non-secure modes.
127724 This patch adds support to switch between them as needed during
127725 unwinding, and replaces all updates of cache->prev_sp with calls to
127733 cache->saved_regs to call the helper instead.
127736 This patch removes the hardcoded access to PSP in
127742 gdb/arm: Fix prologue analysis to support vpush
127758 gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
127779 * pe-dll.c (make_head): Use asprintf to allocate and populate a
127780 buffer containing the temporary name.
127799 it, to make the code more robust.
127810 This patch adds PowerPC specific tests to verify recording of various
127816 The patch has been run on both Power 10 and Power 9 to verify the ISA
127823 This patch adds support for the PowerPC ISA 3.1 instructions to the PowerPC
127824 gdb instruction recording routines. Case statement entries are added to a
127826 A few new functions were added to handle the new word instructions. The 64-bit
127828 ppc_process_prefix_instruction() is the primary function to handle the
127829 prefixed instructions. It calls additional functions to handle specific
127843 Internally at AdaCore, we noticed that the new Windows thread name
127844 code could fail. First, it might return a zero-length string, but in
127846 failure could wind up showing replacement characters to the user; this
127847 is confusing and not useful; it's better to recognize such errors and
127848 simply discard the name. This patch makes both of these changes.
127852 i386: Pass -z noexecstack to linker tests
127854 * testsuite/ld-i386/i386.exp: Pass -z noexecstack to gotpc1
127859 bsd-kvm: Fix build after recent changes to path handling functions.
127860 Convert bsd_kvm_corefile and the local filename in bsd_kvm_open to
127866 I noticed that these files failed to format with Black, because they use
127886 casting it to an integer type. This yields weird results like:
127896 This patch updates the expected Altivec floating point register prints to
127902 vector_register2_vr variables are updated to include the new float128 entry.
127922 This changes the .gdb_index writer to skip linkage names. This was
127929 bfd * elflink.c (bfd_elf_size_dynamic_sections): Display a note to the
127937 ld * testsuite/ld-elf/pr29072.b.warn: Update to include the note
127943 If a variable is passed to function in FORTRAN as an argument the
127950 failed to resolve dynamic array rank>) at assumedrank.f90:11
127953 failed to resolve dynamic array rank
127955 failed to resolve dynamic array rank
127969 the preconditions to call the function. It seems to me that
127971 an inline step over breakpoint, we do not want to resume non stepping
127975 To convince myself that this is true, I have added an assertion to
127980 This call to restart_threads originates from handle_vfork_done which
127992 In this patch, I propose to:
127996 all threads just to stop them right away for a step over breakpoint.
128000 In this patch, I also propose to keep the assertion in restart_threads
128001 to help enforce this precondition, and state it explicitly.
128004 they all seem to check that there is no step over currently active
128035 The problem seems to be that calling setbuf on terminal file handles
128045 appears to resolve the issues that have been reported.
128074 Use the "interrupt" command to stop the target^M
128076 (gdb) FAIL: gdb.multi/multi-re-run.exp: re_run_inf=1: iter=1: runto: run to all_started
128080 - Connect to a remote target with inferior 2, continue and stop on the
128082 - Connect to a separate remote target / GDBserver instance with inferior 1,
128083 continue and (expect to) stop on the all_started function
128085 The failure seen above happens when trying to continue inferior 1.
128089 - GDB tells inferior 1's remote target to continue
128090 - We go into fetch_inferior_event, try to get an event at random from
128092 - do_target_wait happens to pick inferior 2's target
128095 - handle_no_resumed tries to update the thread list of all targets:
128103 - When trying to update the thread list of inferior 1's target, it hits
128106 waiting for a stop reply, so it can't send packets to update the
128110 don't think it is necessary to update the thread list of all targets,
128115 want to ignore the "no resumed" and carry on.
128117 But I don't really see why we need to update the thread list on the
128119 maybe I just fail to imagine the situation where this is needed. But
128121 handle_no_resumed to only update the thread list of the event target.
128124 The way I originally tried to fix this was to make
128129 to update the thread list unnecessarily.
128135 gdbserver/linux: free process_info_private and arch_process_info when failing to attach
128140 with ASan while /proc/sys/kernel/yama/ptrace_scope is set to 1 (prevents
128141 attaching) shows that we fail to free some platform-specific objects
128142 tied to the process_info (process_info_private and arch_process_info):
128168 not called if we fail to attach, we only call remove_process. I
128172 confusing to do things differently here.
128177 method to that new method.
128187 The previous commit just implemented a work around in order to avoid
128189 full solution was considered too risky to merge close to branching GDB
128205 In this commit I extend GDB to use readline's rl_deprep_term_function
128206 hook to call a new function gdb_rl_deprep_term_function. From this
128210 but thanks to the previous commit (to readline) we now know when this
128215 function. In here I have used a scoped_restore_tmpl to disable the
128219 print an extra '\n' character before printing the escape sequence to
128222 rely on rl_deprep_terminal to print the trailing '\n'. However,
128225 This means that in gdb_rl_deprep_term_function we need to print
128230 rl_deprep_terminal is implemented, it's easier (I think) to just
128239 the fixes needed to support correctly printing the 'quit' string.
128241 To handle this situation I have retained the existing code in
128242 command_line_handler for printing 'quit', however, this code is only
128265 readline: back-port changes needed to properly detect EOF
128272 add rl_eof_found to public API; fix pointer aliasing problems \
128277 I have only pulled in the parts of this commit that relate to the new
128279 are needed in order to fix PR cli/28833, and are discussed in this
128280 thread to the bug-readline mailing list:
128286 be safe enough to back port this fix to GDB's tree.
128288 At some point in the future we will inevitably want to roll forward
128291 replaced with the latest upstream readline code, as I have not changed
128292 the meaning of this code at all from what is in upstream readline.
128309 a change was made to GDB to work around bug PR gdb/28833. The
128322 The reason we need to make this change is explained in the original
128327 In later commits in this series I will add a fix to GDB's in-tree copy
128333 done, and the system readline is version 8, then we will still have to
128339 change that we need to work around.
128343 against the readline version number) so I think this should be fine to
128346 For testing this commit, you need to configure GDB including the
128349 'gdb.base/eof-exit.exp', you should expect everything to PASS.
128369 I can get it to fail quite reliably by pinning it to a core:
128377 What we see is part due to a possible unfortunate ordering of events
128387 the parent appearing to exit before its child. There's not much we can
128388 do about it, so I think we have to adjust the test to cope.
128391 it immediately does an "info thread" that it expects to come back empty.
128404 to not be there, it should have been deleted automatically. Inferior 11
128416 This patch makes the somewhat naive change to call prune_inferiors in
128434 build, but I don't know what. I'll investigate and and re-test to be
128440 This changes another function in coff-pe-read.c to use 'const' more,
128441 and to avoid the use of alloca by instead using std::string.
128445 better, and just as easy. In general I think alloca is something to
128455 but it's much simpler to use a for-each loop. This allows for the
128463 .gdb_index would have the wrong fully-qualified name for a method.
128465 I tracked this down to a bug in the indexer. If a type could have
128467 However, this meant that the internal map to find the qualified name
128475 These declarations are needed by GDB's instruction detection code.
128485 The variable right_lib_flags is not being set correctly to define RIGHT.
128486 The value RIGHT is needed to force the address of the library functions
128487 lib1_func3 and lib2_func4 to occur at different address in the wrong and
128493 The test needs the lib2 addresses to be different in the right and
128497 On Intel, the ARRAY_SIZE of 1 versus 8192 is sufficient to get the
128498 dynamic linker to move the addresses of the library. You can also get
128502 The key thing is that the test was not properly setting RIGHT to
128503 defined to get the lib2_spacer function on Intel and Powerpc.
128518 Backtrace stopped: previous frame inner to this frame (corrupt stack?)
128534 is wrong on Intel. This is due to the fact that the ARRAY_SIZE caused
128535 the dynamic linker to move the library function addresses around. I
128536 believe it has to do with the default size of the data and code
128578 sufficient to cause the dymanic linker to allocate the libraries at
128579 different addresses. I don't claim to understand the specifics of how
128581 code sections are. My guess is by default PowerPC allocates a larger
128582 data size by default, which is large enough to hold array[8192]. The
128584 Intel is not large enough to hold array[8192] thus causing the code
128585 section on Intel to have to move when the large array is defined.
128588 the library addresses to occur at different addresses as the larger
128589 data section forces the code section to a different address. That was
128594 With the patch to fix the definition of RIGHT, PowerPC has a bad and a
128616 This doesn' have to be a field, it can simply be a local variable in
128618 that's what the field in called in DWARF 4 and 5. It's always easier to
128619 follow the code with the standard on the side when we use the same
128634 to mi_continue_to_line. Since the location can contain a path, that
128635 commit removed the location from the test name, in favor of a hardcoded
128639 name. Add a "with_test_prefix" with that name, so that all tests
128640 recorded during mi_continue_to_line have this in their name.
128642 mi_continue_to_line passes that "test" string to mi_get_stop_line, that
128647 Adjust three gdb.mi/mi-var-*.exp tests to use prefixes to differentiate
128648 the multiple calls to mi_run_inline_test (which calls
128661 offset. We tracked this down to the fact that, while the ELF reader
128662 is careful to re-use the per-BFD data, other readers are not, and
128665 However, since the change to allow an objfile to have multiple "quick
128667 safe and easy for all symbol readers to reuse the per-BFD data when
128671 making it private, and then switching to dwarf2_initialize_objfile as
128672 the sole way to start the DWARF reader.
128674 Note that, while I think the call to dwarf2_build_frame_info in
128675 machoread.c is also obsolete, I haven't attempted to remove it here.
128698 The problem was caused by a failed attempt to ensure that some
128699 allocated strings were deleted when GDB exits. The code in the above
128700 commit attempted to make use of 'static' to solve this problem,
128713 concatenating file names to avoid duplicated slashes. On Windows, a
128723 In general, I think it's nice to avoid superfluous slashes in file
128724 paths, since they might end up visible to the user and look a bit
128727 Introduce the path_join function that can be used to join multiple path
128730 I initially wanted to make it possible to join two absolute paths, to
128731 support the use case of prepending a sysroot path to a target file path,
128732 or the prepending the debug-file-directory to a target file path. But
128733 the code in solib_find_1 shows that it is more complex than this anyway
128735 letter). So I don't think we need to support that case in path_join.
128738 Change a few spots to use path_join to show how it can be used. I
128754 attach to the process because of ptrace restrictions (operation not
128764 gdb/testsuite: add binary testcases to py-format-string.exp
128799 To make this setting permanent, add 'set debuginfod enabled off' to .gdbinit.
128805 had forgotten to update the "notice empty URL" one.
128821 to avoid dejagnu prune_warnings.
128841 To fix this, stop printing URLs when the substring to be printed
128852 new gdb_attach to check "attach" command", this commit proposes to
128865 To maintain a behavior similat to what gdb.base/attach.exp used to do,
128889 It seemed to me that using array_view for symbol_impls would give a
128894 For a series I'm experimenting with, it was handy to hide a symbol's
128904 removes some code from dwarf2_initialize_objfile.
128906 Add an ad hoc version check to dwarf_scanner_base
128907 Some generic code in the DWARF reader has a special case for older
128914 passing a reference to the index object to this function. This avoids
128919 readers in the DWARF code. Then, it changes both mapped_index_base
128920 and cooked_index_vector to derive from this new base class.
128924 dwarf2_base_index_functions, and changes the DWARF reader to use it.
128925 This lets us drop the "index is NULL" hack from the gdb index code.
128927 Remove some "OBJF_READNOW" code from dwarf2_debug_names_index
128928 The dwarf2_debug_names_index code treats a NULL debug_names_table as
128933 This changes the mapped index classes to create the
128935 abstract interface to mapped indices.
128938 This changes mapped_index_base to have a virtual destructor, so it can
128941 Move mapped_index_base to new header file
128942 This moves mapped_index_base and the helper struct name_component to a
128951 insns to have the (ignored) rounding mode specified individually rather
128959 (bfd_xcoff_size_stubs): Cast PRIx64 arg to required type.
128980 (xcoff_ppc_relocate_section): Add info to
128984 (bfd_xcoff_backend_data): Add stub code fields.
128987 (xcoff64_ppc_relocate_section): Add info to
128991 (bfd_xcoff_backend_data): Add stub code fields.
129022 (xcoff_link_input_bfd): Adapt relocations to stub.
129023 (xcoff_write_global_symbol): Adapt to new TOC entries generated
129037 pass params to backend.
129049 (xcoff_mark_symbol): Adjust to new ldinfo field.
129056 (bfd_xcoff_size_dynamic_sections): Adapt to new ldinfo field.
129057 Move the part where the dynamic sections are build to ...
129074 of a symbol. However, I think it's better for all users to call
129093 If can't determine prologue from the symbol table, need to examine
129094 instructions. Implement loongarch_scan_prologue() to analyze the
129095 function prologue from START_PC to LIMIT_PC, return the address of
129114 The register_test_foreach_arch is used to instantiate a given selftest
129152 This patch adds a way to delay the registration of tests until the
129154 to be fully initialized in order to decide if a particular selftest can
129179 would also be accepted, leading to an extra byte being added after the
129180 instruction (i.e. generating bad code). Before re-working this (in
129181 particular to accept proper Intel syntax there), fix the immediate issue
129190 sizes, hence there are no pairs of operands to check for consistent
129203 "xchg %eax,%eax" (which would mean zero-extending %eax to %rax), so they
129207 making it unnecessary to keep two expressions in sync. And checking
129220 make them elements at indices 0 in the directory and file name tables.
129223 the following patches, I would need to have finer grained control on
129224 what is generated exactly. For example, I'd like to generate a DWARF 5 line
129229 used to refer to that directory entry (based on the DWARF version), and
129249 I'm trying to switch these functions to use std::string instead of char
129251 doing a copy of the result), while others suffer (have to make one more
129259 I'm trying to switch these functions to use std::string instead of char
129261 doing a copy of the result), while others suffer (have to make one more
129277 This updates gnulib to a relatively recent commit. Most of this was
129278 done by the gnulib import script; the only change I made was to
129285 Fix C++ cast of derived class to base class
129286 PR c++/28907 points out that casting from a derived class to a base
129287 class fails in some situations. The problem turned out to be a
129289 if you managed to construct a pointer-to-derived with an embedded
129294 it's possible to get rid of it somehow.
129303 This test attempts to run until the line marked "STOP", which is at
129304 prot.adb:34. It first runs until the "main" symbol, then tries to place
129318 The test passes anyway today, so it doesn't seem to matter that we are
129320 patch [1], because b~prot.adb:34 happens to be between two functions, so
129326 However, this ends up introducing a path in the test name. Modify
129327 mi_tbreak and mi_continue_to_line to avoid that.
129335 gdb/testsuite: add text_segment option to gdb_compile
129340 text_segment option to gdb_compile. Change tests that are currently
129341 using -Ttext-segment to use that new option instead.
129355 FAIL: gdb.base/jit-elf.exp: one_jit_test-1: continue to breakpoint: break here 1
129356 FAIL: gdb.base/jit-elf.exp: one_jit_test-1: continue to breakpoint: break here 2
129357 FAIL: gdb.base/jit-elf.exp: one_jit_test-2: continue to breakpoint: break here 1
129359 FAIL: gdb.base/jit-elf.exp: one_jit_test-2: continue to breakpoint: break here 2
129360 FAIL: gdb.base/jit-elf.exp: attach: one_jit_test-2: continue to breakpoint: break here 1
129362 FAIL: gdb.base/jit-elf.exp: PIE: one_jit_test-1: continue to breakpoint: break here 1
129363 FAIL: gdb.base/jit-elf.exp: PIE: one_jit_test-1: continue to breakpoint: break here 2
129374 gdb: fix using clear command to delete non-user breakpoints(PR cli/7161)
129394 Add comments to dwarf2/abbrev-cache.h
129407 I don't think it's very useful to return the character from gdb_putc,
129408 so this patch changes it to return void.
129415 prompt. This patch takes a simple and expedient approach to a fix:
129425 settings are separate -- if you intend to disable the wrapping, you
129429 through to the code that also handles word-wrapping.
129436 This adds an implementation of the value_print method to Rust. As
129440 to reproduce it when using a relatively old Rust compiler. However,
129441 the new "cast-printing" code in value_print is required, because
129442 omitting this causes some existing tests to fail.
129451 the code is actually the same as what is required to make slice
129461 Remove some dead code from the Rust value printer
129462 This removes a bit of dead code from the Rust value printer. This
129463 code wasn't always dead -- it fixed a real bug, and a test case was
129517 missed. I've kept it in this patch to avoid extra work.
129529 but with make check-readmore the XFAIL fails to trigger:
129568 code.
129575 Similarly to how the native Linux target was changed
129581 ... teach GDBserver to access memory even when the current thread is
129603 children to the process list immediately when the fork/vfork event is
129604 seen out of ptrace. I.e., there's no need to keep the file descriptor
129638 that target_write_memory is called with LEN==0, due to this in
129643 to the target at the specified address. (...) */
129660 std::vector::data() to return NULL when the vector is empty.
129662 This commit adds an early return to target_write_memory to avoid
129663 target backends having to care about this. For good measure, do the
129671 handle_qxfer_threads_proper needs to pause all threads even if the
129676 A following patch will make the Linux backend be able to access memory
129690 scenario, gdb assumes the entries are terminated and then proceeds to
129694 It seems to me that, because each header describes the size of each
129695 .debug_aranges CU, it's better to simply ignore 0,0 entries and simply
129696 read to the end. That is what this patch does.
129698 I've patched an existing test to provide a regression test for this.
129704 simpler way to set a thread's name. This changes gdb and gdbserver to
129713 Set the worker thread name on Windows
129715 is a change to gdb's behavior on the host. It changes gdb's thread
129716 pool to try to set the thread name on Windows, if SetThreadDescription
129721 This patch isn't likely to be useful to many people in the short term,
129722 because the Windows port of the libstdc++ thread code is not upstream.
129733 This changes gdbserver to implement thread_name method.
129738 moves handle_ms_vc_exception to the shared nat/windows-nat.c code, as
129739 preparation for adding this support to gdbserver.
129741 Move target_read_string to target/target.c
129742 This moves the two overloads of target_read_string to a new file,
129743 target/target.c, and updates both gdb and gdbserver to build this.
129745 Remove the byte order parameter to target_read_string
129746 target_read_string takes a byte order parameter, but only uses this to
129751 This renames read_string to be an overload of target_read_string.
129755 read_string does not need to call QUIT, because target_read_memory
129756 already does. This change is needed to make string-reading usable by
129761 there -- I forgot to copy over the definition when making this file.
129762 This patch tries to fix the problem. I don't have a Cygwin setup, so
129779 If you continue, setting the return value will probably lead to unpredictable behaviors.
129786 sends "n" (to tell GDB not to perform the return action) but never
129788 trying to do the next test, DejaGnu tries to match the leftover output
129791 Fix by using gdb_test to send the "n" answer and match the confirmation
129792 and consume all output to the prompt.
129794 Also do minor adjustments to the main regex:
129839 After some debugging and bisecting, to my surprise the bug was
129843 The problem occurs in handle_exception. Previously the code did:
129858 However, in the new code, the fallthrough case does:
129864 This patch rearranges the 'last_sig' setting to more closely match
129873 the "ThreadEvent" text out of the list of events, where it seemed to
129876 missing commas, and fixes an incorrect reference to NewInferiorEvent.
129911 We don't actually need cooked_index to be movable at the moment, so
129926 ... which adds mingw support to GCC's gthreads implementation, and
129927 also to std::thread.
129936 rename the typedef to task_t to fix them.
129976 Alignment check traversed label list to resolve symbol to label.
129991 * config/tc-m68k.c (m68k_frob_label): Use TC_SYMFIELD_TYPE to
130007 gdb: add ATTRIBUTE_PRINTF to complaint_interceptor::issue_complaint
130029 …rc/binutils-gdb/gdb/mips-tdep.c:453:12: note: cast one or both operands to int to silence this war…
130054 intrusive_list do need to access the fields, so they are made friends.
130061 Now that Ada is able to parse & print 0xffffffffffffffff (2^64-1) in
130062 hex, move it to the else branch like most other languages.
130069 Add some nonsense to cover "undefined behaviour".
130081 0xffffffffffffffff. This used to work, but is a regression due to
130086 gdb: fix "passing NULL to memcpy" UBsan error in dwarf2/cooked-index.c
130096 …ndex.c:332:11: runtime error: null pointer passed as argument 2, which is declared to never be null
130099 0), we shouldn't be passing a NULL pointer to memcpy. And
130102 Fix that by using std::vector::insert to insert the items of entries
130104 down to a memcpy, since the vector elements are trivially copyiable.
130110 gdb: change subfile::line_vector to an std::vector
130111 Change this field to an std::vector to facilitate memory management.
130113 the subfile, it is possible to change it without changing how symtab
130116 There is a small change in buildsym_compunit::record_line to avoid
130118 pointer to the last linetable entry, pop it from the vector, and then
130121 as an invalid access by the various static / dynamic analysis tools to
130125 There are substantial changes in xcoffread.c that simplify the code, but
130126 I can't test them. I was hesitant to do this change because of that,
130127 but I decided to send it anyway. I don't think that an almost dead
130128 platform should hold back improving the code in the common parts of GDB.
130136 then assign the result to the current subfile, obtained with
130149 Reduce manual memory management and make the code a bit easier to read.
130152 I don't have a way to test this, it's best-effort.
130158 gdb: change subfile::name and buildsym_compunit::m_comp_dir to strings
130159 Change subfile::name to be a string, for easier memory management.
130160 Change buildsym_compunit::m_comp_dir as well, since we move one in to
130161 the other at some point in patch_subfile_names, so it's easier to do
130174 memset-ing it to 0. Use a unique_ptr for the window after a subfile has
130214 we'll need some patches eventually to make the code use invoke_result
130227 Delete DWARF psymtab code
130234 point in the series to avoid any regressions; in particular, it has to
130235 come after the changes to the DWARF index writer to avoid this
130239 anywhere from the patch to wire in the new reader to this point.
130244 baseline of 1.598869 to 0.903534.
130248 Adapt .debug_names writer to new DWARF scanner
130249 This updates the .debug_names writer to work with the new DWARF
130254 Adapt .gdb_index writer to new DWARF scanner
130255 This updates the .gdb_index writer to work with the new DWARF scanner.
130256 The .debug_names writer is deferred to another patch, to make review
130259 This introduces a small hack to psyms_seen_size, but is
130266 This updates the DWARF index writing code to make the addrmap-writing
130271 deleted in a future patch, when the rest of the DWARF psymtab code is
130276 Change parameters to write_address_map
130278 this makes a small change to have write_address_map accept the address
130283 In order to change the DWARF index writer to avoid partial symtabs,
130286 simpler to reuse this code with the new indexer.
130289 We'll be removing all the psymtab code from the DWARF reader. As a
130290 preparatory step, this renames write_psymtabs_to_index to avoid the
130291 "psymtab" name.
130299 one thread, to keep memory costs lower.
130301 However, this work is all done without reference to any data outside
130303 by moving it to the background. All uses of the index are then made
130304 to wait for this process to complete.
130307 to 0.173937 (wall). Recall that before this patch, the time was
130316 independent. This setup makes it simple to scan different CUs
130324 down to 0.668923, from 0.903534. (Note that the 0.903534 is the time
130326 rebased to before this one. However, in the final series, that patch
130332 Because BFD is not thread-safe, we need to be sure that any section
130333 data that is needed is read before trying to do any DWARF indexing in
130336 This patch takes a simple approach to this -- it pre-reads the
130341 calls to dwarf2_section_info::read.
130346 This introduces a new class that can be used to make the "complaint"
130347 code thread-safe. Instantiating the class installs a new handler that
130352 to handle this, though, because the I/O system is not thread-safe.
130354 It seemed to me that only GDB developers are likely to enable
130360 them, myself, since mostly they seem to indicate compiler problems
130362 them to be in a separate tool, like a hypothetical 'dwarflint'.
130367 This wires the new DWARF indexer into the existing reader code. That
130368 is, this patch makes the modification necessary to enable the new
130373 copied my built gdb to /tmp, so that each test would be done on the
130387 This is the code that interfaces between the new index and the rest of
130392 pre-split in the cooked index, name lookup here is necessarily
130398 This patch adds the code to index DWARF. This is just the scanner; it
130402 object. This is done to support the parallelization of this code -- a
130409 "cooked" to contrast against a "raw" index, which is mapped from disk
130414 entries have been read, they are "finalize"d -- name canonicalization
130415 is performed and the entries are added to a sorted vector.
130417 Entries use the DWARF name (DW_AT_name) or linkage name, not the full
130418 name as is done for partial symbols.
130420 These two facets -- the short name and the deferred canonicalization
130424 Some special code is needed for Ada, because GNAT only emits mangled
130430 found is different in the new code. Currently gdb will notice
130433 differently in the new code so that finalization can be done in the
130434 background without then requiring a synchronization to look up the
130440 This updates skip_one_die to speed it up in the cases where either
130456 This patch changes the abbrev reader to analyze each abbrev and stash
130457 the results on the abbrev. These combine to speed up the new indexer.
130458 If the "interesting" flag is false, GDB knows to skip the DIE
130472 I instrumented the partial DIE hash to see how frequently it was used:
130484 Based on this, the new implementation doesn't try to store any DIEs,
130485 but instead just re-scans them on demand. In order to do this,
130486 though, it is convenient to have a cache of DWARF abbrevs. This way,
130487 if a second CU is needed to resolve an inter-CU reference, the abbrevs
130492 Add "fullname" handling to file_and_directory
130493 This changes the file_and_directory object to be able to compute and
130494 cache the "fullname" in the same way that is done by other code, like
130500 series to de-duplicate the exception output from multiple threads.
130503 This changes gdb::parallel_for_each to return a vector of the results.
130505 remains 'void'. This functionality is used later, to parallelize the
130508 Add batching parameter to parallel_for_each
130509 parallel_for_each currently requires each thread to process at least
130510 10 elements. However, when indexing, it's fine for a thread to handle
130515 The new DWARF scanner needs to save the entire cutu_reader object, not
130516 just parts of it. In order to make this possible, this patch
130518 because it is easy to review in isolation and it helps make the later
130527 Add name splitting
130528 The new DWARF index code works by keeping names pre-split. That is,
130529 rather than storing a symbol name like "a::b::c", the names "a", "b",
130532 This patch introduces some helper code to split a full name into its
130538 This patch adds an option to skip_one_die that causes it not to skip
130541 Allow ada_decode not to decode operators
130543 because Ada is unusual, it also decodes the Ada names to synthesize
130544 package components for them. In order for this to work out properly,
130545 gdb also needs a mode where ada_decode can be instructed not to decode
130551 desired payload are passed as parameters. This makes it suitable to
130555 This adds a new member to dwarf2_per_cu_data that indicates whether
130557 .debug_aranges reader. The idea here is to detect when a CU does not
130558 have address information, so that the new indexer will know to do
130562 Tom de Vries found a failure that we tracked down to a latent bug in
130564 The bug is that this code can erroneously reject .debug_aranges when
130565 dwz is in use, due to CUs at duplicate offsets. Because aranges can't
130566 refer to a CU coming from the dwz file, the fix is to simply skip such
130576 Allow thread-pool.h to work without threads
130577 thread-pool.h requires CXX_STD_THREAD in order to even be included.
130582 Because the thread pool already allows a task to be run in the calling
130583 thread (for example if it is configured to have no threads in the
130584 pool), it seemed straightforward to make this code ok to use when host
130596 Rebase the zlib sources to the 1.2.12 release
130615 I found a bug in the new DWARF reader series, related to the handling
130622 A while back, I sent a patch to unify the Ada varsize-limit setting
130627 However, it turns out I somehow neglected to send part of the patch.
130638 tests to detect this situation and stop with "untested".
130650 With the sole user of the return value gone, convert the return type to
130655 These were used originally to represent "# <line> <file>" constructs
130658 directives were never documented, we ought to be able to remove support
130670 macro, while the goal of the PR gas/16908 workaround is to keep the
130672 as enough state was overridden _inside_ the macro to cause as_where() to
130678 the initializer to "expanding_none", which would have been "0" in the
130679 original code. Originally the initializer value itself wasn't ever used
130681 input_scrub_include_sb() alongside setting sb_index to other than -1.
130696 iteration, thus potentially getting far off. Furthermore it left it to
130697 the user to actually insert .file/.line inside such constructs. Note
130713 x86: make {disp16} work similarly to {disp32}
130775 Remove all macros related to getting and setting some symbol value:
130802 I added two sections 'Fortran intrinsics' and 'Fortran types' to
130822 This patch adds overloads for all above mentioned functions to the
130825 It re-writes the intrinsic function handling section to use the helper
130830 to the existing wrap and wrap2 methods.
130832 After adding more overloads to the intrinsics handling, some of the
130834 has been renamed to FORTRAN_CEILING as it is no longer a purely unary
130836 one, two, or three arguments to the Fortran parser and the
130841 gdb/fortran: rename f77_keywords to f_keywords
130842 Rename f77_keywords to f_keywords since some of the introduced keywords
130848 Currently, when asking GDB to print the type of a Fortran default type
130849 such as INTEGER or REAL, GDB will return the default name of that type,
130885 This indicates to a user that the type of "integer" is Fortran's default
130887 any variable declared integer in the actual code would also fit into a
130888 GDB integer. But, since we cannot adapt out internal types to the
130890 wrong. Consider debugging Fortran code compiled with GNU and e.g. the
130899 makes this clearer. I would still be tempted to fit a variable declared
130900 integer in the code into a GDB integer - but at least ptype would
130903 underlying type of any variable declared "integer" in the Fortran code.
130904 So having the code
130923 This patch changes the outputs for the REAL and INTEGER default types to
130924 actually print the internally used type over the default type name.
130933 Existing testcases have been adapted to reflect the new behavior.
130946 Similar problems applied to LOGICAL, REAL, and COMPLEX. This patch adds
130948 type handling was touched, it also was reordered to be in a more easy to
130951 easy to spot.
130953 Before this change GDB would print the following when tyring to use the
130998 The described changes have been applied to INTEGER, REAL, COMPLEX,
130999 and LOGICAL. Existing testcases have been adapted to reflect the
131004 gdb/fortran: change default logical type to builtin_logical
131005 According to the Fortran standard, logical is of the size of a
131011 adapted GDB's behavior to be in line with
131034 two REALs used to form the COMPLEX. Thus, a COMPLEX*4 will usually
131038 builting_complex_s8 became builtin_complex_s4 according to its most
131039 common useage) and their printed names to their language equivalent.
131055 gdb/f-lang: add Integer*1 to Fortran builtin types
131056 Add builtin_integer_s1 of size TARGET_CHAR_BIT to Fortran builtin types.
131093 continue to breakpoint: foo \(1\)
131099 next to foo (2)
131106 port prologue skipper to get past the prologue
131134 (BFD_FAKE_SECTION): Adjust to suit.
131144 * testsuite/gas/elf/pr27228.d: Change xfail to notarget for hppa.
131158 gas: Port "copy st_size only if unset" to aarch64 and riscv
131192 …/trace-condition.exp: trace: 0x00abababcdcdcdcd << 46 == 0x7373400000000000: advance to trace begin
131208 For the latter, GDB shifts using (U)LONGEST internally, so you have to
131209 shift by >= 64 bits to see it:
131220 (before C++20, after which it is defined). For this, I chose to
131222 whether we need to do anything. AFAIK, most implementations do an
131232 - Adjust scalar_binop to avoid the undefined paths, either by adding
131233 explicit result paths, or by casting the lhs of the left shift to
131259 instructions to make it so that you get 0 or -1 if you have a
131262 undefined, GDB warns in addition to performing the shift.
131266 too. The semantics I chose (we're free to pick them since this is
131267 undefined behavior) is as-if you had shifted by the count cast to
131311 This commit ports these two fixes to the C parser:
131323 ... to the Fortran, Go, and Fortran number parsers, fixing the same
131330 I moved get_set_option_choices out of all-architectures.exp.tcl to
131331 common code to be able to extract all the supported languages. I did
131332 a tweak to it to generalize it a bit -- you now have to pass down the
131348 [Sending to binutils, gdb-patches and gcc-patches, since it touches the
131352 (/opt/debuginfod), which requires me to set
131372 Change the top-level configure/Makefile system to capture the value
131373 passed when configuring the top-level and pass it down to
131374 subdirectories (similar to CFLAGS, LDFLAGS, etc).
131383 to @PKG_CONFIG_PATH@
131384 - Add PKG_CONFIG_PATH to HOST_EXPORTS in Makefile.tpl, which are the
131387 I initially added PKG_CONFIG_PATH to flags_to_pass, in Makefile.def, but
131388 I don't think it's needed. AFAIU, this defines the flags to pass down
131389 when calling "make" in subdirectories. We only need PKG_CONFIG_PATH to
131416 (gdb) FAIL: gdb.dwarf2/dw2-inline-param.exp: runto: run to *0x113b
131419 the binary, reloads it in GDB, runs the program, and then tries to place
131422 isn't where the code ends up after running.
131425 alternative would be to compute the relocated address where to place the
131428 I was confused for a while, I was trying to load the binary in GDB
131429 manually to get the symbol address, but GDB was telling me the symbol
131431 is that GDB strips the binary in-place, so we don't have access to the
131432 intermediary binary with symbols. Change the test to output the
131433 stripped binary to a separate file instead.
131440 Formalise what ought to be obvious. The top level of the binutils-gdb
131449 Add the print of the base-class of an extended type to the output of
131450 ptype. This requires the Fortran compiler to emit DW_AT_inheritance
131458 to inherited members by using their fully qualified name as described
131461 In doing so the patch also fixes a bug in GDB when trying to access the
131505 $2 = 1 # this line requires DW_TAG_inheritance to work
131511 In the above example "p bar%my_int" requires the compiler to emit
131521 gdb: add Nils-Christian Kempke to gdb/MAINTAINERS
131525 gdb: change file_file_name to return an std::string
131566 value passed to the DWARF expression evaluator should be a 0 based
131570 we were passing the 1 based rank number to the expression evaluator,
131575 In this commit I have extended the test case to cover checking the
131582 gdb/testsuite: add "macros" option to gdb_compile
131584 appropriate flag to make the compiler include macro information in the
131586 redundant code, and make it easier to add support for a new compiler.
131589 falls back to -g3 otherwise (which works for gcc). Other compilers can
131593 gcc nor clang. After this patch, the tests will attempt to run (the -g3
131594 fall back will be used). That gives a chance to people using other
131595 compilers to notice something is wrong and maybe add support for their
131596 compiler. If it is needed to support a compiler that doesn't have a way
131597 to include macro information, then we can always introduce a
131598 "skip_macro_tests" that can be used to skip over them.
131645 directive. That seems like a nice small improvement to me.
131652 These variables seem to be unused, remove them.
131668 common to all symtabs of a given compunit. Otherwise, you could think
131678 blockvector. Remove it, change all users to fetch the blockvector
131688 used to find that symtab's file during compilation (i.e. the directory
131689 the file refers to in the DWARF line header file table), or the
131693 relative, it will be relative to that directory. But if the symtab's
131695 nothing to do with the symtab's filename.
131697 Remove symtab::dirname to avoid this confusion, change all users to
131706 Change gdb_breakpoint to accept a linespec, not just a function. In
131708 name and documentation. Change runto as well, since the two are so
131709 close (runto forwards all its arguments to gdb_breakpoint).
131723 update the .c to reference the .h.
131732 name/type member functions within 'struct reggroup', update all uses
131739 gdb: convert reggroup to a C++ class with constructor, etc
131756 Convert the reggroup_new and reggroup_gdbarch_new functions to return
131764 Add a new function gdbarch_reggroups that returns a reference to a
131776 In gdb/python/py-registers.c, the register group iterator needed to
131777 change slightly. As the iterator is tightly coupled to the gdbarch, I
131779 use an index counter to find the next item from the vector when
131792 gdb: convert reggroups to use a std::vector
131797 This commit is focused on the minimal changes needed to manage the
131813 initialisation, then these groups will be used in preference to the
131818 description(s) (i.e. those internal to GDB that are used when the user
131837 All the remaining changes are me updating the various architectures to
131840 So, where will this change be visible to the user? I think the
131845 The user can provide a register group to these commands. For example,
131849 thing, there's something to be said for having some consistent
131887 At this point you can continue to use 'tui reg next' and/or 'tui reg
131909 The 'tui reg' command takes the name of a register group, but also
131910 handles partial register group matches, though the partial match has to
131913 With the code as currently written, if a target description named a
131915 ambiguous register name, and refuse to switch groups.
131921 be able to select the group directly, the 'prev' and 'next' names will
131929 Update reggroup_find to return a const reggroup *.
131939 Convert uses of 'struct reggroup *' in python/py-registers.c to be
131946 gdb: switch to using 'const reggroup *' in tui-regs.{c,h}
131954 Change gdbarch_register_reggroup_p to take a 'const struct reggroup *'
131955 argument. This requires a change to the gdb/gdbarch-components.py
131956 script, regeneration of gdbarch.{c,h}, and then updates to all the
131979 gdb: don't try to use readline before it's initialized
131981 initialize_current_architecture code, specifically from one of
131985 This is easy enough to reproduce by adding 'gdb_assert (false)' into a
131994 A problem internal to GDB has been detected,
132000 A problem internal to GDB has been detected,
132004 Something goes wrong when we try to query the user. Note, I
132015 …al-error: i386_gdbarch_init: Assertion `false' failed.\nA problem internal to GDB has been detecte…
132034 If we look at gdb_init (in gdb/top.c) we can indeed see the call to
132035 gdb_init_signals is after the call to initialize_current_architecture.
132044 callback is invoked to process the reply I entered.
132051 I wondered how to solve this problem for a while, however, I don't
132053 Looking through captured_main_1 there seems to be a bunch of
132056 in there somewhere.... I'm just not sure I want to spend any longer
132066 My proposal is to add a new readline_initialized function, which
132068 not the case then we should not attempt to query the user.
132073 doesn't make much sense to allow the user to say "no, I don't want to
132079 Update binutils to recognize the NT_ARM_SYSTEM_CALL set that is dumped by
132080 Linux to core files.
132124 there's no ELF symbol table to fall back to, emit minimalistic
132128 Notes regarding the restriction to (pure) ELF:
132129 - I realize this is a layering violation; I don't see how to deal with
132137 The new testcases are limited to x86 because I wanted to include the
132140 be added here then (with, as necessary, expecations suitably relaxed to
132153 RISC-V: add testcase to check line number emission for .insn
132154 Since no such test looks to exist, derive one from insn.s.
132158 IBM zSystems: Add support for z16 as CPU name.
132160 announced we can now add the real name.
132165 name.
132166 * doc/as.texi: Add z16 and arch14 to CPU string list.
132167 * doc/c-s390.texi: Add z16 to CPU string list.
132221 This changes jit.c to use new and delete, rather than XCNEW. This
132222 simplifies the code a little. This was useful for another patch I'm
132223 working on, and I thought it would make sense to send it separately.
132230 Bug 28980 shows that trying to value_copy an entirely optimized out
132232 some Python pretty printer, and is quite difficult to reproduce, but
132233 another easy way to reproduce (that is believed to be equivalent) was
132261 value_contents_all_raw on the input value, which caused contents to be
132262 allocated before doing the copy. This means that the input value to
132273 2. extend the cases where contents can be nullptr to also include
132279 Choice #1 is safe, but less efficient: it's not very useful to allocate
132286 optimized out value without allocated contents to value_copy would
132289 it's more risky, since it's difficult to ensure that all users of the
132298 Add a selftest to test this. I initially started to write it as a
132313 both operands are 32 bit types. Yet in the simulator code we convert them
132314 from unsigned int to signed long by assignment. So 0xfffffffb (aka -5)
132317 The fix is simple, insert a cast to int32_t to force interpretation as a
132327 failing due to a bug in the handling of the v850e3v5 instruction "bins".
132330 exhibits undefined behavior by trying to shift a 32 bit quantity by 32 bits.
132335 long might still just be 32 bits) or needlessly forcing everything to
132348 Implement the "init" method of struct tramp_frame to prepend tramp
132367 but with a call to interp_factory_register. I've checked the insight
132368 source, and it too has moved over to using interp_factory_register.
132376 Add code to display the contents of .debug_loclists sections which contain offset entry tables.
132378 * dwarf.c (fetch_indexed_value): Rename to fecth_indexed_addr and
132404 The goal of the PACBTI extensions is similar in scope to that of a-profile
132407 One important difference is that the pointer authentication code is stored
132408 in a separate register, thus we don't need to mask/unmask the return address
132409 from a function in order to produce a correct backtrace.
132413 - Extend the prologue analyser for 32-bit ARM to handle some instructions
132417 - Adds code to identify object file attributes that indicate the presence of
132424 - Extends the dwarf unwinder to track the value of RA_AUTH_CODE.
132442 time I touched disasm.h it seemed like every file in GDB would need to
132471 Simon pointed out that timestamped_file probably needed to implement a
132473 forwards most of its calls, making it simpler to implement new such
132474 files. It also converts timestamped_file and pager_file to use it.
132481 I don't think there's any need to call init_thread_list in
132497 …(gdb) FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to end…
132499 …[Switching to inferior 1 [process 14961] (/home/vries/gdb_versions/devel/build/gdb/testsuite/outpu…
132500 [Switching to thread 1.1 (process 14961)]
132507 …(gdb) FAIL: gdb.base/vfork-follow-parent.exp: resolution_method=schedule-multiple: continue to bre…
132511 and makes an exit event available to GDB. We expect GDB to consume this
132512 exit event and present it to the user. Here, we see that GDB shows the
132517 scheduling being what it is, it is possible for the parent to un-freeze
132520 at random to return the one for the parent first. This is what I
132523 We could change the test to expect both possible outcomes, but I wanted
132524 to avoid complicating the .exp file that way. Instead, add a variable
132528 Note that I wasn't able to reproduce the failure, so I can't tell if
132560 get either output. Adjust the regexps to not expect an hexadecimal
132561 prefix (0x) but a function name instead (either child_sub_function or
132566 system), so the function name is internal to pthread, not something we
132569 fine to expect the hex prefix.
132571 And for test "frame 6", it's ok to _not_ expect a hex prefix (what the
132575 When testing this, Tom de Vries pointed out that the current test code
132578 child threads to be still in the pthread_barrier_wait or child_function
132580 waiting to happen.
132582 The only way I can think of to ensure the child threads are in the
132583 child_sub_function function when they get stopped is to synchronize the
132586 child thread flips its flag in child_sub_function to allow the main
132587 thread to make progress and eventually hit the breakpoint.
132589 I copied user-selected-context-sync.c to a new mi-cmd-user-context.c and
132590 made modifications to that, to avoid interfering with
132598 Fix qRcmd error code parsing
132602 The code in gdb/remote.c:remote_target::rcmd uses isdigit instead of
132606 Update the function to use isxdigit instead and also update the documentation.
132618 … fork_func=fork: target-non-stop=auto: non-stop=off: displaced-stepping=auto: i=2: next to for loop
132651 of confined to the addresses of the stepped line. Note that since this
132653 step-resume breakpoint, and it's ok to continue freely the stepping
132655 next to each other in the logs.
132661 external child process to exec or exit, we only resume the thread that
132708 Indeed, the code accesses target_waitstatus::child_ptid when the kind
132712 intent is to remove from the thread list the thread that has exited.
132723 … fork_func=vfork: target-non-stop=on: non-stop=off: displaced-stepping=auto: i=14: next to for loop
132734 target to stop a thread and wait() reports that this thread stopped with
132735 a fork or vfork event, instead of the SIGSTOP we sent to try to stop it.
132737 While running this test, I attached to GDBserver and stopped at
132760 let's attach to it!", when in fact that vfork child's destiny was to be
132763 My reverse-engineered understanding of the code around there is that the
132764 if/else between lines 3562 and 3583 (in the original code) makes sure
132767 example), in which case we just copy event_child->waitstatus to
132769 syscall event, OURSTATUS is set to "stopped", but without a signal
132770 number. Lines 3601 to 3629 (in the original code) serve to fill in that
132773 The problem is that when `w` holds the vfork status, the code wrongfully
132779 The intent of this branch is, for example, when we sent SIGSTOP to try
132780 to stop a thread, but wait() reports that it stopped with another signal
132782 SIGWINCH. In that case, we want to report the SIGWINCH. But in our
132783 fork/vfork case, we don't want to take this branch, as the thread didn't
132788 The fix I propose is to move this snipppet of the else branch of the
132789 if/else above. In addition to moving the code, the last two "else if"
132795 /* A thread that has been requested to stop by GDB with vCont;t,
132810 - W does not represent a SIGSTOP that have sent to stop the thread and
132811 therefore want to suppress it
132819 multi-threaded program. This problem was reported to me by somebody not
132824 detach-on-fork=on case, because it would be too much to chew at once to
132836 Let's suppose GDB is handling a vfork and the user's desire is to detach
132839 there's a breakpoint in the path the child is going to take before
132850 program_space::breakpoints_not_allowed to avoid re-inserting them
132858 Resuming the parent at step 4 is necessary in order for the kernel to
132863 waiting for the child to exec or exit. So it doesn't matter for that
132881 There many combinations of settings to consider (all-stop/non-stop,
132884 scope to follow-fork-mode=parent, detach-on-fork=on. That's the
132886 parent. I tried to fix them all, but it's just too much to do at once.
132887 The code paths and behaviors for when we don't detach the child are
132892 similar to handling in-line step-overs, in a way.
132897 - In follow_fork, we call stop_all_threads to stop all threads of the
132905 function to restart the previously stopped threads.
132909 - In follow_fork, no need to stop all threads of the inferior, the
132915 only want to resume the event thread here, not all inferior threads.
132917 whether one of the inferiors we are about to resume has
132925 - When we get the vfork-done event, the existing call to keep_going
132928 Testing-wise, add a test that tries to make the main thread hit a
132937 gdb/infrun: add logging statement to do_target_resume
132944 gdb/infrun: add inferior parameters to stop_all_threads and restart_threads
132945 A following patch will want to stop all threads of a given inferior (as
132946 opposed to all threads of all inferiors) while handling a vfork, and
132947 restart them after. To help with this, add inferior parameters to
132949 to make sure this doesn't cause regressions on its own, and to keep the
132962 will need to know which thread precisely is waiting for that event.
132970 the parent process is waiting for its vfork child to exec or exit, we
132975 Since the new field points to a thread_info object, and those are
132976 destroyed on exec or exit, it could be worse now since we could try to
132977 access freed memory, if thread_waiting_for_vfork_done were to point to a
132986 Trying to use "set debug linux-nat 1", I get an internal error:
133019 to svr4_fetch_objfile_link_map. However, a separate debug file can
133021 frv_fetch_objfile_link_map also expects to be passed the original
133022 objfile rather than a separate debug file, so pull the code to resolve
133023 a separate debug file to the main objfile up into
133030 table. This flag can be used by DWARF producers to indicate where to
133032 precedence over prologue analyzers. So if we have to debug a program
133036 This commit proposes to add a maintenance command to instruct GDB to
133047 attribute can be set by the compiler to indicate that an instruction is
133048 an adequate place to set a breakpoint just after the prologue of a
133052 current skip_prologue_using_sal works, this commit modifies it to accept
133053 the first instruction with this marker (if any) to be the place where a
133054 breakpoint should be placed to be at the end of the prologue.
133058 (lets call it foo) which covers PC from 0xa800 to 0xa950. The body of
133059 foo begins with a call to an inlined function, covering from 0xa800 to
133066 expects to stop in FOO.
133101 output tells us that 0xa800 is an adequate place to place a breakpoint
133102 past a function prologue. Since we know that foo covers from 0xa800 to
133104 if the user wants to break in foo.
133106 This commit proposes to add support for the prologue_end flag in the
133112 this information and not try to rely on architecture dependent logic to
133131 buildsym_compunit::record_line), a boolean argument argument is used to
133134 parameter to record_line for each possible flag, transform the current
133154 logging statements in auto-load.c to output style filenames. You can
133156 program. We can incrementally add styling to other debug statements
133188 Parent name: .ctf
133189 Compilation unit name: /home/simark/src/babeltrace/src/lib/graph/component-descriptor-set.c
133213 Change psymbol_functions::expand_symtabs_matching to expect that
133216 Another possibility would be to make the CTF symbol reader always create
133230 objdump/opcodes: add syntax highlighting to disassembler output
133232 I broke several sim/ targets by forgetting to update their uses of the
133233 libopcodes disassembler to take account of the new styled printing.
133237 I've not tried to add actual styled output to the simulator traces,
133244 nat/windows-nat.c has a number of globals that it uses to communicate
133246 Windows ports to be multi-inferior, globals won't work.
133250 converted to be methods on this object.
133252 A couple of globals remain, as they are needed to truly be global due
133253 to the way that the Windows debugging APIs work.
133263 doesn't need to be explicit.
133267 thread_list global. Changing this to use unique_ptr simplifies the
133268 code, in particular windows_init_thread_list. (Note that, while I
133269 think the the call to init_thread_list in there is wrong, I haven't
133279 Currently windows-nat.c uses struct so_list to record its local idea
133285 This patch simplifies this code by changing it to use a std::vector
133286 and a new type that holds exactly what's needed for the Windows code.
133300 Fix this by parsing the user/guile input as plain int, and cast to
133307 Add context-sensitive field name completion to Ada parser
133308 This updates the Ada expression parser to implement context-sensitive
133309 field name completion. This is PR ada/28727.
133311 This is somewhat complicated due to some choices in the Ada lexer --
133312 it chooses to represent a sequence of "."-separated identifiers as a
133314 logic to find the completion word boundaries.
133335 The Ada parser has a DOT_ALL token to represent ".all", and another
133336 token to represent other ".<identifier>" forms. However, for
133337 completion it is a bit more convenient to unify these cases, so this
133343 it to use a boolean flag and a simpler "if".
133347 required in order to match end-of-input correctly, as flex does not
133354 This refactors the gdb expression completion code to make it easier to
133368 objects are defined for use by the completion code. This moves much
133390 easy to avoid.
133395 handy to be able to inspect them. This patch allows this by removing
133400 gdb: rename start_symtab/end_symtab to start_compunit_symtab/end_compunit_symtab
133407 Rename everything I found containing start_symtab or end_symtab to use
133461 code blocks which will result in the bar3 situation, glibc compiles errlist.c
133485 objdump/opcodes: add syntax highlighting to disassembler output
133501 Obviously this can be fixed, but I'd like to not do that as part of
133502 this commit, rather, I'd prefer to keep this commit as small as
133503 possible to get the basic infrastructure in place, then we can improve
133504 on this, to add additional styling, in later commits.
133519 * i386-dis.c: Changed throughout to use fprintf_styled_func
133525 Update the RISC-V disassembler to supply style information. This
133526 allows objdump to apply syntax highlighting to the disassembler
133536 * riscv-dis.c: Changed throughout to use fprintf_styled_func
133541 objdump/opcodes: add syntax highlighting to disassembler output
133557 applied to the text.
133569 In this initial series I intend to convert the RISC-V disassembler
133572 allow more people to try this out easily and provide feedback.
133574 In this commit I have focused on objdump. The changes to GDB at this
133575 point are the bare minimum required to get things compiling, GDB makes
133576 no use of the styling information to provide any colors, that will
133584 name, these are now printed with styling information, and so will have
133587 Finally, my ability to pick "good" colors is ... well, terrible. I'm
133588 in no way committed to the colors I've picked here, so I encourage
133589 people to suggest new colors, or wait for this commit to land, and
133592 I do have an idea about using possibly an environment variable to
133593 allow the objdump colors to be customised, but I haven't done anything
133594 like that in this commit, the color choices are just fixed in the code
133640 Remove more Python 2 code
133661 backported to system compiler 7.5.0, hence the KPASS.
133665 - matching the specific gdb output that corresponds to the XFAILs
133682 DW_TAG_generic_subrange to represent all ranks of the array, support
133683 for this tag has been added to dwarf2/read.c.
133685 The final piece of this puzzle is to add support in gdbtypes.c so that
133695 on to the dwarf expression evaluator. This rank will only be used in
133701 us to pass a rank value. But what rank value to use? In the end I
133703 we are in resolve_dynamic_type_internal to resolve a range, then the
133707 An alternative approach would be to make the rank value a
133708 gdb::optional, however, this ends up adding a bunch of complexity to
133709 the code (e.g. having to conditionally build the array to pass to
133715 in gcc, so you'll need the latest gcc in order to run the tests for
133751 'a' has unknown type; cast it to its declared type
133774 gdb/dwarf: pass an array of values to the dwarf evaluator
133775 When we need to evaluate a DWARF expression in order to resolve some
133786 So far this has worked fine, as the only two cases we needed to handle
133791 In the next commit this is going to change. As we add support for
133792 Fortran assumed rank arrays, we need to start resolving the dynamic
133793 properties of arrays. To do this, we need to push the array rank onto
133797 This commit is a refactoring commit aimed at making it easier to
133799 and using this to decide if we should push the object address or not,
133800 we instead pass an array (view) of values that should be pushed to the
133804 as true (mostly this was defaulting to false), we now have to pass the
133807 In the next commit, when we want to handle passing the array rank,
133832 The duplicate names all come from a second call to
133851 gdb/testsuite: resolve a duplicate test name in a gdb.mi test
133856 by moving the call to restart_for_test inside the with_test_prefix
133885 undefined, and so expands to the empty string. As a result TAGS does
133889 As a result, all the files in ALLDEPFILES are passed to the etags
133902 In this commit I make two changes, first, I move ALLDEPFILES to be
133905 rule now breaks complaining that there's no rule to build the 3 files
133908 Next, I have added all *.c files in gdb/arch/ to ALLDEPFILES,
133918 The gdb_select.h file was moved to the gdbsupport directory long ago,
133925 make: *** No rule to make target 'gdb_select.h', needed by 'TAGS'. Stop.
133940 The SOURCES variable was added to gdb/Makefile.in as part of commit:
133956 screen delta is mostly just added to the next available window. We
133957 do take care to respect the min/max size, but in most cases, these
133982 lines were given to the asm window.
133996 out the delta in increments of 1 to each window (except for the window
133998 continue to respect the min/max window sizes.
134021 window, to 4 less than the terminal height.
134023 By removing this restriction gdb is able to size the windows to the
134045 This commit just adds an extra check of the src window size prior to
134046 sending all the commands to gdb. We also set the cmd window height to
134057 This commit allows the user to place the cmd window within horizontal
134075 the src window. If we trigger the src window to redraw is content,
134081 The problem is some code in tui_layout_split::apply, in tui-layout.c.
134086 This special case is trying to have the cmd window retain its current
134088 makes sense, consider moving from the 'src' layout to the 'asm'
134097 If the user has gone to the effort of adjusting the cmd window size,
134111 by height, we're now sizing by width. The existing code doesn't
134112 understand this though, and tried to retain the full width for the cmd
134116 "fingerprint". The fingerprint tries to capture, in an abstract way,
134119 Only when two layouts have the same fingerprint will we attempt to
134125 vertical or horizontal layouts that must be passed through to find the
134130 # This layout is equivalent to the builtin 'src' layout.
134134 # This layout is equivalent to the builtin 'split' layout.
134146 In contrast, when switching to the hsrc layout, gdb understands that
134147 the position of the cmd window is different, and does not try to
134152 gdb/tui: allow cmd window to change size in tui_layout_split::apply
134154 function to reapply the layout, and recalculate all the window sizes.
134156 One special case is the cmd window, which we try to keep at its
134159 However, in some cases it is not appropriate to keep the cmd window at
134161 want the cmd window to reduce in size, and in the other, we want the
134162 cmd window to grow in size.
134187 cmd window to retain its 20 line height. Really, we want the cmd
134188 window to reduce in height so that the src and asm windows can occupy
134216 This layout only contains a cmd window, which we would expect to
134243 is possible that we might try to use more space than is available,
134244 this was our first example above. The same code that added extra
134245 space to the windows, can also be used to reclaim space (in the over
134246 allocation case) to allow all windows to fit.
134248 The problem then is the cmd window, which we often force to a fixed
134251 left to give, or we need to claim back more space, then, if the cmd
134252 window was changed to a fixed size, we can change the cmd window back
134253 to a non-fixed-size window, and proceed to either give, or take space
134264 Currently, this space is just assigned to an arbitrary sub-layout.
134281 initially sized to 7, the extra 2 lines are then arbitrarily added to
134284 In this commit, rather than add all the extra space to one single
134286 over all the sub-layouts. We take care to respect the min/max sizes,
134298 This looks more natural to me.
134301 tests need to be updated to take this into account. None of the
134319 'src' to 'conly', we will try to retain the cmd window height. As
134324 and, when we move into step 2, where we attempt to size the windows,
134339 This commit changes the gdb.tui/new-layout.exp test to make use of a
134340 list of test descriptions, and a loop to check each description in
134341 turn. There's no change to what is actually tested after this commit.
134343 In future commits I plan to add additional tests to this file, and
134344 this will be easier now that all I have to do is add a new test
134345 description to the list.
134350 When I initially saw this code in tui_layout_split::apply, I assumed
134363 Well, it turns on, that due to the implementations of these things,
134364 bottom_boxed_p is equivalent to an imagined right_boxed_p, and
134365 top_boxed_p is equivalent to an imagined left_boxed_p.
134367 In this commit I've renamed both top_boxed_p and bottom_boxed_p to
134369 extended the comments in tui_layout_base to mention that these methods
134372 Now, hopefully, the code shouldn't look like it only applies for
134393 One thing to note is that, due to the way that the tui terminal is
134397 (gdb) set logging file /path/to/file
134401 Additionally, gdb has some quirks when it comes to setting up logging
134408 has nothing directly to do with tui debug, but it is worth mentioning
134417 'winwidth'. This command is equivalent to the old 'winheight'
134421 namespace, and I would strongly encourage all new tui commands to be
134427 just didn't seem right to no have the matching 'winwidth'.
134431 windows. At the end of the test the windows should be back to their
134435 is a little ... temperamental, and is prone to getting things slightly
134445 completeness, I've added the same paragraph to the winheight
134452 height adjustment code, changed the name to make it generic 'size'
134453 adjustment, and added a boolean flag to indicate if we are adjusting
134459 In a following commit I'm going to add the ability to change the width
134461 the places where we currently hard-code references to height need to
134462 be changed to handle either height, or width, based on whether we are
134465 This commit renames set_weights_from_heights to
134470 tui_layout_split::set_height function, in a part of the code we will
134471 only reach for vertical layouts, so the new code is not actually being
134479 gdb/tui: rename tui_layout_base::adjust_size to ::set_height
134480 Rename tui_layout_base::adjust_size to tui_layout_base::set_height,
134481 the new name more accurately reflects what this member function does,
134482 and makes it easier for a later commit to add a new
134491 command name space, e.g. layout, focus, refresh, winheight.
134523 I've added a NEWS entry and updated the docs to mention the new and
134524 old command names, with the new name being mentioned first.
134535 Move microblaze relax info to target specific data
134539 (BFD_FAKE_SECTION): Adjust to suit.
134540 (struct relax_table): Move to..
134546 (calc_fixup): Return a size_t. Adjust to suit new location of
134548 (microblaze_elf_relax_section): Adjust to suit new location of
134562 (_bfd_dwarf2_find_nearest_line): Revert range handling code.
134564 Regen bfd po/SRC-POTFILES.in
134572 gdb: rename floatformats_ia64_quad to floatformats_ieee_quad
134573 It is better to rename floatformats_ia64_quad to floatformats_ieee_quad
134574 to reflect the reality, and then we can clean up the related code.
134579 binutils-gdb repository, so any changes to them will have to
134583 to do it for gdb.
134600 are not displayed if debuginfod verbosity is set to 0 (via
134611 32-bit x86 arches always the I386_*BASE_REGNUM values. Only code that
134612 needs to support both 64-bit and 32-bit arches needs to use
134613 tdep->fsbase_regnum to compute a segment base register number.
134617 the base addresses of the %fs and %gs segments (corresponding to the
134618 %fsbase and %gsbase registers). Parse this note to permit inspecting
134656 This function is only called if the note name is "FreeBSD", so
134657 checking the name size is unnecessary.
134728 gdb/ctf: pass partial symtab's filename to buildsym_compunit
134729 I noticed that the CTF symbol reader passes the objfile's name to all
134731 compunit_symtabs created have the same name, that of the objfile:
134737 name libbabeltrace2.so.0.0.0
134749 name libbabeltrace2.so.0.0.0
134759 Notice the two "name libbabeltrace2.so.0.0.0".
134761 Change it to pass the partial_symtab's filename instead. The output
134768 name libbabeltrace2.so.0.0.0
134780 name current-thread.c
134791 its name. This is because the CTF symbol reader really creates a
134792 partial symtab named like this. It appears to be because the debug info
134801 gdb: print compunit_symtab name in "maint info symtabs"
134802 I think it would make sense to print a compunit_symtab's name in "maint
134805 compunit_symtab::name says, it is not meant to be a reliable file name,
134816 name test.c
134836 name foo.c
134856 I am trying to do some changes to buildsym_compunit, so I am auditing
134870 ctf_start_symtab to verify that we are not overwriting an existing
134885 them to be styled. Originally I thought I'd introduce a new "url"
134886 style, but there aren't many places to use this, so I just reused
134888 list to be printed one URL per line. I think this is probably a bit
134889 easier to read.
134898 I built a random project with -gctf, in order to test the CTF support in
134909 the field happens to be zero-initialized, because ctf_start_archive
134910 contains this code:
134920 and we'll continue with ccx->builder equal to 0xbebebebebebebebe.
134923 ctf_context fields are initialized (yeah, this code could be made nicer
134947 2. Enable PKU for x32 to fix:
134951 .../gdbserver/regcache.cc:255: A problem internal to GDBserver has been detected
134968 because the Linux native target decided to ignore the event, it resumed
134971 The proposed fix is to remove this check. Always report vfork-done
134982 gdbserver/linux: set lwp !stopped when failing to resume
134999 - We resume inferior 2, the leader thread is expected to exit, making
135016 [infrun] context_switch: Switching context from 0.0.0 to 713933.713933.0
135019 [infrun] start_step_over: stealing global queue of threads to step, length = 0
135049name="multi-re-run-1" handle="40c7c6f7ff7f0000"/>\n<thread id="pae4cb.ae4cc" core="2" name="multi-…
135052name="multi-re-run-1" handle="40c7c6f7ff7f0000"/>\n<thread id="pae4cb.ae4cc" core="2" name="multi-…
135061 When the test passes, we get an EXITED status to indicate the process
135119 - We try to find a resumed (non-stopped) LWP to get an event from,
135122 wait_for_event_filtered returns -1, causing wait_1 to return
135126 availability of the process' exit notification and the call to wait_1
135129 I think what we want from this wait_1 invocation is to keep waiting, as
135133 The fix I came up with is to mark the secondary thread as !stopped (or
135134 resumed) when we fail to resume it. This makes wait_1 see that there is
135136 makes sense to consider it resumed, because we are going to receive an
135183 Since commit 3cd522938792 ("Change the pager to a ui_file"), I see these
135186 ERROR: invalid command name "_csi_P"
135229 to earlier architectures as well. GAS previously made the RNG registers
135233 This seems to be the only feature that was handled like this.
135250 gdb/infrun: add reason parameter to stop_all_threads
135251 Add a "reason" parameter, only used to show in debug messages what is
135254 proposing to merge it.
135261 I forgot to do this before pushing the previous commit.
135303 While trying to review Andrew's patch here [1], I thought I spotted a
135304 bug in the handling of a CSI, but I had no way to know for sure. So I
135305 thought it would be useful to have unit tests for the handling of
135310 Add the gdb.tui/tuiterm.exp file to do that. All currently supported
135317 - backspace: according to [3] (table 4-1), a backspace when the cursor
135319 implementation did wrap to the end of the previous line. Change our
135320 implementation to match the doc (and the test).
135321 - insert character: this control sequence is supposed to insert blank
135330 the display, when it should clamp it to the display size.
135345 Pedro pointed out that gdb worker threads should not react to quits.
135347 worker thread (and I don't think the existing minsym threading code
135348 can either), it seems safest to address this before checking in the
135349 new code. This patch arranges for the QUIT macro to only work on the
135362 However, as it is referenced by gdbsupport, it seemed better to define
135363 it there as well. This patch also moves the declaration to
135370 superclass, then the "offset to top" -- the offset that says how to
135371 turn a pointer to the interface into a pointer to the whole object --
135372 is stored in the object itself. This patch changes GDB to understand
135375 Because this only touches Ada code, and because Joel already reviewed
135381 * sim/v850/simops.c (Multiply64): Properly test if we need to
135400 Remove unnecessary calls to wrap_here and gdb_flush
135402 careful to call wrap_here to be certain that all output has been
135406 a simple call to gdb_flush is enough.
135408 Similarly, there are places where gdb prints to gdb_stderr, but first
135415 This patch updates some comments in utils.h to more closely reflect
135423 nothing ever sets this flag. This used to be needed to make the
135426 and the dead code.
135430 is now up to the stream. This renames it to fprintf_symbol, which
135431 isn't a great name (the first "f" doesn't mean much and the second one
135436 happens is now up to the stream. So, rename it. (This function is
135437 pretty weird, and should probably be rewritten to avoid using the
135443 happens is up to the stream. So, rename it.
135447 can unify the printf family of functions. This is done under the name
135452 can unify the putc family of functions. This is done under the name
135457 can unify the puts family of functions. This is done under the name
135466 renames the remaining two to "gdb_vprintf". All callers are updated.
135475 Change the pager to a ui_file
135478 A new header is introduced to declare the pager class. The
135480 are some static globals there that must be used by this code. (This
135483 I went through all the text output in gdb to ensure that this change
135486 * Any existing call to printf_unfiltered is required to be avoid the
135489 * All remaining calls to the f*_unfiltered functions -- the ones that
135490 take an explicit ui_file -- either send to an unfiltered stream
135491 (e.g., gdb_stderr), which is obviously ok; or conditionally send to
135498 This yields a number of candidates to check.
135504 * Things printing to a temporary stream. Obviously ok.
135513 * The code in compile/. This is all printing to a file.
135517 * Calls to the _filtered form -- these are all clearly ok, because if
135528 part of the change, the "unfiltered_output" flag is never passe to
135535 delegated to the particular ui_file implementation.
135538 to it.
135550 Add style-escape methods to ui_file
135551 This adds emit_style_escape and reset_style methods to ui_file. These
135552 aren't used yet, but they will be once the pager is converted to be a
135555 Add puts_unfiltered method to ui_file
135556 When the pager is rewritten as a ui_file, gdb will still need a way to
135558 patch, which adds a puts_unfiltered method to ui_file. For most
135559 implementations of ui_file, this will just delegate to puts. This
135560 patch also switches printf_unfiltered to use the new method.
135565 this end, I thought it would be good to reduce the number of
135573 A number of spots call printf_unfiltered only because they are in code
135576 converted to the default (_filtered) API.
135579 that really ought to be. A few -- namely in complete_command -- could
135580 be replaced by a scoped assignment to pagination_enabled, but for the
135581 remainder, the code seems simple enough like this.
135586 It seems to me that annotations should not be filtered. While it
135587 might be weird for an annotation-based UI to use the pager, it's not,
135598 due to a prior context switch via switch_to_inferior_no_thread.
135606 $ # First, spawn a process with PID 26253 to attach to later.
135617 [Switching to inferior 2 [<null>] (<noexec>)]
135622 Attaching to Remote target
135631 >>> GDB seems to hang here.
135633 After attaching to a process and reading some library files, GDB
135634 seems to hang. One interesting thing to note is that
135647 Attaching to Remote target
135666 [infrun] start_step_over: stealing global queue of threads to step, length = 0
135669 [infrun] context_switch: Switching context from 0.0.0 to 26253.26253.0
135676 …warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally…
135690 GDB tried to stop Thread 42000.26253.0, which does not exist, and we
135695 /* Since the stub is not sending a process id, then default to
135697 then since there's no way to know the pid of the reported
135718 Attaching to Remote target
135747 readline 7 and 8 the escape sequence used to disable bracketed paste
135748 mode changed, an additional '\r' character was added to the end. In
135752 Anyway, the test tries to spot the case where the output from GDB is
135766 My preference then is that initially we patch the test to get it
135784 changes its name, that's the only difference), two inferiors are
135787 We then take the address of the name changing function in both
135811 The first part of the fix is to use the correct address variable in
135815 A second part of this fix is to pass the 'nopie' option when we
135830 Changes were made to GDB to address some inconsistencies in when
135831 notifications are sent from a MI terminal to a CLI terminal (when
135834 Unfortunately, in order to track when the currently selected frame has
135836 command has executed, and compares the pointers to see if the frame
135845 This was leading to random test failures for some folk, see:
135860 bfd/Dwarf2: make find-nearest-line returned function name consistent
135861 Prior to entering the enclosing "else if()" the earlier associated if()
135862 checks function->is_linkage and, if set, uses function->name. The
135865 the function name, just like said earlier if() would do when we came
135868 instance, but not for the 1st (if this code path is taken). (This,
135874 Restrict the PR gas/16908 workaround to just macros, matching the
135877 "invocation" point which may be of interest to record (for, as said
135884 with the D extension ought to extend to the ignoring of a meaningless
135886 unaffected by rounding mode." Hence the chosen encodings also ought to
135889 Note that to avoid breaking existing code the forms with a 3rd operand
135890 are not removed, which means there continues to be a difference to
135896 Make it easy to load the common gdbinit script even when running in
135923 Switch gdb_stdlog to use timestamped_file
135930 It seems better, instead, for timestamps to be a property of the
135933 This patch changes gdb to use the new timestamped_file for gdb_stdlog
135940 functions, but it wasn't clear to me whether this is really desirable.
135942 Note also that this changes the TUI to send gdb_stdlog to gdb_stderr.
135950 timestamp to its output when appropriate. That is, it follows the
135958 Use unique_ptr in CLI logging code
135959 This changes the CLI logging code to avoid manual memory management
135960 (to the extent possible) by using unique_ptr in a couple of spots.
135966 The CLI's set_logging logic seemed unnecessarily complicated to me.
135967 This patch simplifies it, with an eye toward changing it to use RAII
135970 I did not touch the corresponding MI code. That code seems incorrect
135972 saved_raw_stdlog). I didn't attempt to fix this, because I question
135980 using DW_OP_GNU_entry_value, but gdb gets confused when trying to find
135981 the caller. I tracked this down to dwarf2_get_pc_bounds interpreting
135994 Change call_site_target to iterate over addresses
135995 In order to handle the case where a call site target might refer to
135996 multiple addresses, we change the code to use a callback style. Any
136002 Change call_site_find_chain_1 to work recursively
136006 both to understand and to modify. This patch changes this code to use
136008 code without undue trauma.
136011 code. (It's hard for me to be completely certain.) The bug is that
136012 when a new target_call_site is entered, the code does:
136026 elements in this call site are not visited. However, if this code
136027 does happen to enter a call site, then the tail_call_next elements
136033 it can be added to the new implementation.
136039 update 'chain'. I changed it to accept a const reference, making it
136040 clear that it cannot. This simplifies the code a tiny bit as well.
136045 to be a method of this type. This is a preparatory refactoring for
136048 Change call_site_target to use custom type and enum
136051 subsequent patch, I plan to add a new 'kind' here, so it seemed best
136052 to avoid this reuse and instead introduce new types here.
136078 the environment to a path which contained an option, libtool's nm
136079 detection tries to run nm against a copy of nm with the options in it:
136080 e.g. if NM was set to "nm --blargle", and nm was found in /usr/bin, the
136081 test would try to run "/usr/bin/nm --blargle /usr/bin/nm --blargle".
136082 This is unlikely to be desirable: in this case we should run
136085 Furthermore, as part of this nm has to detect when the passed-in $NM
136088 like a path, e.g. NM="nm -B../prev-gcc"; libtool then tries to run
136090 to see whether that nm exists, finds it doesn't, and wrongly concludes
136097 looking to see whether that nm existed.
136111 This seems to be all combinations, including those used by GCC bootstrap
136112 (which, before this commit, fails to bootstrap when configured
136114 --export-symbols-regex, which requires libtool to find a working nm,
136115 while also using -B../prev-gcc to point at the lto plugin associated
136143 transfer. However this header is not guaranteed to be present for
136157 Fix a typo where the documentation refers to a function parameter by the
136158 wrong name.
136184 Remove the test from the tree, I'll attach it to the Bugzilla bug
136204 I much appreciate Nick offering this role to me. Nevertheless there's
136205 still a lot for me to learn here.
136231 The second of these commits was intended to address periodic test
136235 The problem is that the test relies on sending two commands to GDB in
136237 they are echoed to GDB's console. However, there is a race between
136238 how quickly the characters are echoed and how quickly GDB decides to
136243 first command before both commands are fully echoed to the console.
136251 was still susceptible to failures, so this commit further relaxes the
136254 Now, we look for the first command output with no regard to what is
136255 before, or after the command. Then we look for the first mi prompt to
136267 very low overhead, but it means that the foreign-endian code paths
136271 endian code paths when you run make check on a big-endian machine.
136272 (And the fix is surely not to add more .s-based tests like that, because
136273 they are a nightmare to maintain compared to the C-code-based ones.)
136276 LIBCTF_WRITE_FOREIGN_ENDIAN, which causes libctf to unconditionally
136281 Make this easier by restructuring the writeout code in ctf-serialize.c,
136282 which duplicates the maybe-gzip-and-write-out code three times (once
136288 The endian-flipping code itself gains a bit of complexity, because
136289 one single endian-flipper (flip_types) was assuming the input to be
136292 cost of a few lines of duplicated initializations, teach it to
136293 read before flipping if we're flipping to foreign-endianness instead
136299 * ctf-open.c (flip_header): Rename to...
136300 (ctf_flip_header): ... this, now it is not private to one file.
136325 a dict, which can't be done to dicts read off disk since they're
136328 However, when opening an uncompressed foreign-endian dict we have to
136336 This came to light because various corrupted-CTF raw-asm tests had an
136358 include, libctf, ld: extend variable section to contain functions too
136360 the CTF dict which contains name -> type mappings corresponding to data
136363 resolution mechanisms can use this section to look up the types of
136367 all have names that are unlikely to appear in the ELF symtab and because
136369 linker flag (--ctf-variables) is needed to emit this section.
136372 section. This seemed to make sense at the time, but in hindsight it
136384 symtab and add them to the variable section ourselves. While we're at
136400 to...
136409 The test for -gctf support in the compiler is used to determine when to
136415 So, instead, ask the compiler to emit assembler output and grep it for
136416 references to ".ctf": this is highly unlikely to be present if the
136425 most like to.
136438 python-internal.h contains a number of macros that helped make the code
136439 work with both Python 2 and 3. Remove them and adjust the code to use
136456 thinking to get something that behaves correctly on both. And that's if
136457 the author and reviewer of the patch even remember to test with Python
136464 So, remove Python 2 support. Update the documentation to state that GDB
136465 can be built against Python 3 (as opposed to Python 2 or 3).
136474 ... to only keep the Python 3 portions and drop the use of some
136478 explicit references to Python 2. We could maybe do more there, like
136481 compile time, so it won't really be clear to the user that they are
136482 trying to use an unsupported Python version. But I'm a bit lost in the
136483 configure code that checks for Python, so I kept that for later.
136490 To prevent fatal or even internal errors, add a simple check to
136492 an equate of a register (or resolved to reg_section for any other
136496 Allow transitive (or recursive) equates to work in addition to direct
136509 x86: don't attempt to resolve equates and alike from i386_parse_name()
136513 i386_parse_name() to call parse_register(). This being a hook from the
136519 introduced. This is necessary in particular to force EVEX encoding when
136520 VRex registers are used (but of course also to reject bad uses of
136535 No need to emit the same string a 2nd time for file 1 in this case.
136542 (indicating that part of the comment was wrong). Finally for there to be
136543 a usable name in slot 1, files_in_use needs to be larger than 1 and slot
136544 1's (rather than slot 0's) name needs to be non-NULL.
136548 gas/Dwarf5: drop dead code
136551 check to out_dir_and_file_list(). This rendered dead that branch of the
136552 construct, due to the enclosing if()'s "DWARF2_LINE_VERSION >= 5".
136553 Delete that code as well as the corresponding part of the comment.
136561 Tying the bumping of the logical line number to reading from the
136565 intended effect: Such uses may be necessary to ensure proper debug info
136578 thus be wrong due to the truncation.
136580 With the code change in place, one x32 testcase actually triggers the
136582 adjusted alongside the addition of a new testcase to actually trigger
136583 the new error. (Note that due to internal BFD behavior the relocation in
136586 Note that in principle it is possible to express 64-bit relocations in
136589 lot of effort for little gain to actually support this.
136600 transformed to a single quote in the course of quote removal. The other
136603 former mechanism is suitable when the value to be used by the macro body
136604 is to contain a quote. Yet this results in ambiguity of what "a""b" is
136605 intended to mean; elsewhere (e.g. for .ascii) it represents two
136610 Change the scrubber to retain such whitespace, by making the processing
136611 of strings more similar to that of symbols. And indeed this appears to
136618 section. I'm afraid the only way that I see to deal with this would be
136619 to significantly simplify the scrubber, such that it wouldn't do much
136634 gdb: testsuite: use gdb_attach to fix jit-elf.exp
136643 …Attaching to program: /home/yangtiezhu/build/gdb/testsuite/outputs/gdb.base/jit-elf/jit-elf-main, …
136647 use gdb_attach to fix the above issue, at the same time, the clean_reattach
136648 proc should return a value to indicate whether it worked, and the callers
136653 gdb: testsuite: use gdb_attach to fix attach-pie-noexec.exp
136662 Attaching to process 6500
136670 and then we can do the following processes to test:
136679 gdb: testsuite: add new gdb_attach to check "attach" command
136680 This commit adds new gdb_attach to centralize the failure checking of
136688 same time, use "verbose -log" instead of "unsupported" to get a
136702 ptrace op, use an unordered_set<> to track the "dirty" state for
136706 This method can be overridden by architecture-specific targets to
136712 This method can be overridden by architecture-specific targets to
136721 fbsd-nat: Add helper routine to fetch siginfo_t for a ptid.
136744 nat/aarch64-linux-hw-point.c to nat/aarch64-hw-point.c. Changes
136745 beyond a simple split of the code are:
136748 aarch64_linux_any_set_debug_regs_state renamed to drop linux_ as
136752 function which is invoked from the platform-independent code when a
136757 pristine. For non-Linux it is simply defined to true. Some uses of
136763 is only defined on Linux. In addition, pass the ptid on to
136770 Use the FreeBSD native target low_new_fork hook to copy the
136771 per-process debug state from the parent to the child on fork.
136774 This method can be overridden by architecture-specific targets to
136784 code. The ptrace request has been present on FreeBSD x86
136794 x86-nat: Use an unordered_map to store per-pid debug reg state.
136810 Fix return code in _bfd_dwarf2_find_nearest_line().
136811 * dwarf2.c (_bfd_dwarf2_find_nearest_line): if a function name is
136826 the offset from SYMBOL to ADDRESS in decimal.
136828 If there's no SYMBOL suitably close to ADDRESS then the
136831 This is useful if a user wants to write a Python script that
136832 pretty-prints addresses, the user no longer needs to do manual symbol
136836 SYMBOL, and whether the file name and line number should be included
136837 with the SYMBOL name, the gdb.format_address function ensures that the
136847 In order to format an address for a different inferior.
136851 In py-arch.c I extended arch_object_to_gdbarch to add an assertion for
136852 the type of the PyObject being worked on. Prior to this commit all
136853 uses of arch_object_to_gdbarch were guaranteed to pass this function a
136865 gdb.Progspace to the associated program_space pointer, and
136871 Some of these references were not updated when they were moved to a separate
136881 * gprofng/libcollector/Makefile.am: Rename lib_LTLIBRARIES to
136908 Add debuginfod support to core_target::build_file_mappings and
136909 locate_exec_from_corefile_build_id to enable the downloading of
136912 Also add debuginfod support to solib_map_sections so that previously
136918 If there is a mismatch, attempt to query debuginfod for the correct
136929 gdb: Add soname to build-id mapping for core files
136930 Since commit aa2d5a422 gdb has been able to read executable and shared
136934 soname to build-id for each shared library referenced in the core file.
136936 This feature may be used to verify that gdb has found the correct shared
136937 libraries for core files and to facilitate downloading shared libaries via
136974 watchpoint's watchpoint_triggered field was still set to
136983 replaces most calls to bpstat_stop_status with calls to
137010 Fix it by tweaking the assertion to always look at the beginning of
137056 Unfortunately, if I try to use this probe within GDB, then I can't
137115 Which is where we cast the xmm1 register to uint64_t. And the final
137130 So, we are attempting to cast a union type to a scalar type, which is
137132 evaluator throws an error when we attempt to do this.
137134 The first approach I considered for solving this problem was to try
137136 gdbarch method (gdbarch_stap_adjust_register) that allows us to tweak
137137 the name of the register that we access. Currently only x86
137138 architectures use this to transform things like ax to eax in some
137141 I wondered, what if we change gdbarch_stap_adjust_register to do more
137144 operation_up, and would take the register name, and the type we are
137145 trying to read from the register, and return the operation that
137152 name, then do the default action to read the register. Finally, for
137159 approach would not be very generic. We'd need code to handle each
137162 have to create their own gdbarch_stap_read_register method. And
137172 My second plan involves adding a new expression type to GDB called
137176 to the following C expression:
137182 what I'm trying to do.
137184 The benefit of the new expression approach is that this code can be
137191 gdbarch_stap_read_register approach to allow architectures to control
137195 to include a function that tries to force an argument into an xmm
137198 script we use readelf to check if the probe exists, and is using the
137211 was able to run this test and have the probe argument be placed in an
137219 Finally, as this patch adds a new operation type, then I need to
137220 consider how to generate an agent expression for the new operation
137226 most cases I don't need to worry about generating an agent expression
137231 handled, however, this code is currently not reached. When we try to
137232 generate the agent expression to place the xmm register on the stack,
137245 related to the original problem, but feels a bit like a second
137246 problem. I'd like to get feedback on whether my approach to solving
137248 how to handle xmm registers within agent expressions.
137255 check to see if the function or variable being processed is the
137264 going to be used.
137269 little sense in general. Perhaps this should even be extended to non-
137284 mechanisms to trigger this crash in the current test, using the commands
137288 to fail all of the time.
137291 mentioned functions save a pointer to the current frame's information,
137294 call_function_by_hand needs to reset the obstack to get the current
137310 to /usr/bin/gdb, like e.g.:
137336 RUNTESTFLAGS="GDB=/path/to/other/build/gdb \
137337 GDB_DATA_DIRECTORY=/path/to/other/build/gdb/data-directory"
137364 In readline 8.2 the type of rl_completer_word_break_characters changed to
137384 I've also changed my previous patch to ignore_rest_of_line to allow
137385 that function to increment input_line_pointer past buffer_limit, like
137386 demand_empty_rest_of_line: The two functions ought to behave the
137388 little hardening to prevent accesses past buffer_limit plus one.
137395 (ignore_rest_of_line): Allow input_line_pointer to increment to
137406 Bump version to 13.0.50.DATE-git.
137408 this commit bumps the version number in gdb/version.in to
137417 * gdb.base/default.exp: Change $_gdb_major to 13.
137421 ld:LoongArch: Add test cases to adapt to LoongArch32 and LoongArch64
137437 * tc-loongarch.c: Add function to select target mach.
137476 * tc-loongarch.c Write eflag to elf header.
137493 gas:LoongArch: Fix segment error in compilation due to too long symbol name.
137541 with Python 2, due to PyDict_GetItemWithError being a Python 3-only
137551 A first solution to fix this would be to try to replace
137552 PyDict_GetItemWithError equivalent Python 2 code. But I looked at why
137553 we are doing this in the first place: it is to maintain the
137554 `gdb._mi_commands` Python dictionary that we use as a `name ->
137556 never actually used in Python, it seems like a lot of trouble to use a
137559 My first idea was to replace it with a C++ map
137564 C++ code). To know whether an mi_command is an mi_command_py, we can
137565 use a dynamic cast. Since there's one less data structure to maintain,
137568 - Change mi_command_py::m_pyobj to a gdbpy_ref, the mi_command_py is
137574 - Move a bunch of checks from micmdpy_install_command to
137577 needed to know whether there's a Python MI command already registered
137578 with that name. But we can already tell if there's a non-Python
137579 command registered with that name. Return an error if that happens,
137580 rather than waiting for insert_mi_cmd_entry to fail. Change the
137581 error message to "name is already in use" rather than "may already be
137585 object to hold the command objects. The reason was to make sure the
137595 commands. I think it makes sense to do it this way: if it was somehow
137596 possible to unload Python support from GDB in the middle of a session
137597 we'd want to unregister any Python MI command. Otherwise, these MI
137600 Delete tests that were related to `gdb._mi_commands`.
137614 debug print statements), due to a reference to
137620 …p_frame_id = {stack=0x7fffffffd980,code=0x0000000000456c30,!special}, step_stack_frame_id = {stack…
137652 picks up whatever memory is pointed to in the callee frame.
137658 I don't have a good way to try it with dejagnu. So, I don't know
137661 configurations -- I don't know what causes one to fail and another to
137666 Fix Build issues due to patch "gprofng: a new GNU profiler"
137671 gdb: run black to format some Python files
137678 Fix ld-arm bug in encoding of blx calls jumping from thumb to arm instructions
137688 strictly speaking an overlap in just one size (see the code comment) is
137695 related information to be passed into the function.
137701 no pairs of operands to check for consistent size.
137705 more flexible to allow reducing the number of templates we have.
137778 To avoid a completely useless fuzzing ubsan "bug" report, I decided to
137784 (as_where): Adjust to suit.
137799 Set GPROFNG_BROKEN_JAVAC to "yes" only with a broken javac and skip the
137804 (check-DEJAGNU): Pass GPROFNG_BROKEN_JAVAC to runtest.
137805 * configure.ac (GPROFNG_BROKEN_JAVAC): New AC_SUBST. Set to yes
137816 can try to fetch different data objects (such as
137837 In an earlier patch, I had written that I wanted to add this test:
137842 showed that it could be made to work by adding a function using
137843 Wide_Wide_String to the program -- this caused the type to end up in
137858 With "name" a char*, the length at name[0] might be negative, escaping
137861 * vms-alpha.c (evax_bfd_print_dst): Make name an unsigned char*.
137900 I managed to introduce a fairly obvious NULL pointer dereference..
137920 * po/SRC-POTFILES.in: Regenerate.
137928 the two (or more) items specified simply would not take effect, due to
137951 recording whether to set individual fields to 1 or 0.
137955 no reason to have the stray flag set even if no insn actually is keyed
137956 to it.
137973 however, has always been to prevent bad uses of .arch (turning off the
137974 base CPU "feature" flag) while at the same time permitting extensions to
137975 be enabled / disabled. In order to achieve this (and to prevent
137979 broken checks aren't adjusted as they're slated to be removed anyway),
138001 sending EOF (usually bound to Ctrl+d), the last prompt would become
138010 ... gdb terminates, and we return to the shell ...
138025 for GDB is that the escape sequence to disable bracketed paste mode
138031 The change to add the '\r' character to the escape sequence used to
138034 versions of readline (note: I don't know if its even possible to build
138038 So, the escape sequence to disable bracketed paste mode is emitted
138045 will have moved to the next, empty, line, before readline emits the
138046 escape sequence to leave bracketed paste mode. The final '\r'
138047 character moves the cursor back to the beginning of this empty line,
138051 escape sequence to leave bracketed paste mode is emitted on the same
138052 line as the prompt. The final '\r' moves the cursor back to the start
138053 of the prompt line. This leaves us ready to override the prompt.
138057 when EOF is seen. However, due to a bug in readline this does not
138062 event-top.c), this function is called (indirectly) from readline to
138064 case the command line is set to nullptr). As this is part of the
138065 callback to process a complete command, this is called after readline
138072 The solution to this problem is to print the 'quit' message earlier,
138073 before rl_deprep_terminal is called. This is easy to do by using the
138077 ourselves. This allows the 'quit' to be printed before
138080 The problem here is that there is no way in rl_deprep_terminal to know
138089 The result of that thread was that readline was patched to address
138092 Now it should be easy to backport the readline fix to GDB's in tree
138093 copy of readline, and then change GDB to make use of these fixes to
138096 However, we are just about to branch GDB 12, and there is concern from
138097 some that changing readline this close to a new release is a risky
138103 is the smallest possible GDB change in order to avoid the prompt
138106 In this commit I change GDB to print the 'quit' string on the line
138112 ... gdb terminates, and returns to the shell ...
138116 real fix to GDB.
138122 objcopy --weaken-symbol: apply to STB_GNU_UNIQUE symbols
138124 * objcopy.c (filter_symbols): Apply weaken to STB_GNU_UNIQUE symbols
138132 This started as a patch to implement string concatenation for Ada.
138133 However, while working on this, I looked at how this code could
138135 concat_operation: Ada and D. So, in addition to implementing this for
138138 seem to represent strings using TYPE_CODE_ARRAY, this removes the
138139 TYPE_CODE_STRING code from there as well.
138142 eval_op_concat has code to search for an operator overload of
138143 BINOP_CONCAT. However, the operator overloading code is specific to
138146 value_x_binop does not handle this case. I think this code has been
138154 This adds some basic support for Wide_String and Wide_Wide_String to
138156 converted to a wide or wide-wide string depending on context.
138163 ... would be nice to add, but when tested against a distro GNAT, this
138164 did not work (probably due to lack of debuginfo); so, I haven't
138172 string_operation::evaluate method, removing a bit of extraneous code.
138179 case, gdb is not able to determine where execution stopped. This behavior
138182 The next to the last test does a next command when the program is stopped
138187 which fails to match any of the test_multiple options.
138197 I checked the behavior on Powerpc to see if this is typical.
138211 Type "apropos word" to search for commands related to "word"...
138235 to the gdb_test_multiple statement, identifying the output as the expected
138244 dlltool: Use the output name as basis for deterministic temp prefixes
138247 generating a temporary file name.
138259 interfaces connected to separate terminals.
138270 [Switching to thread 2 (Thread 0x7ffff7daa640 (LWP 389659))]
138286 then thread is switched to thread 1 before mi_cmd_thread_select () is
138290 To address this problem, we have to move notification logic up to
138295 notification to be sent on MI channel. This is because by the time
138297 mi_command::invoke(). Therefore we had to lift notification suppression
138298 logic also up to mi_cmd_execute (). This change in made distinction
138300 as all mi_command::invoke() did (after the change) was to call
138302 execution logic directly to invoke().
138311 Use symver attribute if available, instead of asm statement, to support
138401 Define ATTRIBUTE_FALLTHROUGH to __attribute__ ((fallthrough)) only for
138446 The AMDGPU HSA OS ABI (code object v3 and above) defines the
138448 describing, among other things, the kernels present in the code object
138449 and how to call them.
138451 I think it would be useful for readelf to be able to display the content
138453 not text-based. It is therefore possible to dump the contents in
138457 Add configury to binutils to optionally check for the msgpack C library
138464 $ readelf --notes amdgpu-code-object
138467 AMDGPU 0x0000040d NT_AMDGPU_METADATA (code object metadata)
138474 ".name": "out.coerce",
138482 with notes that are not handled in a special way. This allows one to
138486 [1] https://llvm.org/docs/AMDGPUUsage.html#code-object-metadata
138511 binutils/readelf: handle NT_AMDGPU_METADATA note name
138514 https://llvm.org/docs/AMDGPUUsage.html#code-object-v3-note-records
138516 As of this patch, just print out the name, not the contents, which is in
138550 nor versioned. Taking a peek at the LLVM source code, we see that they
138598 this is just the bare minimum to get
138615 Add support for the AMDGCN architecture to BFD.
138617 This is the bare minimum to get
138625 what we intend to initially support in GDB. This list will need to be
138626 updated in the future anyway. The complete up-to-date list of existing
138633 https://llvm.org/docs/AMDGPUUsage.html#elf-code-object
138637 nor versioned. Taking a peek at the LLVM source code, we see that they
138685 access to inferior I/O.
138687 The right way to check whether the board can do I/O, is via checking
138688 the gdb,noinferiorio board variable. Switch to using that.
138690 And then, tweak the testcases to expect output to appear in
138693 testing against gdbserver, it maps to gdbserver_spawn_id.
138697 "Expected GDB Output" text, leading to a test timeout. All other
138711 those that removed use of powerpc_macros just in case it needs to be
138732 (powerpc_opcodes): ..to here.
138735 (spe2_opcodes): ..to here.
138755 As for PowerPC64, move instructions to the main opcode table.
138782 Note that some of the instructions moved out of the macro table to the
138787 occurrences in the case of clrlsldi if n <= b was added to the extract
138808 to operand->insert for PPC_OPERAND_PLUS1 when calculating mask.
138827 the new closure captures 'pc' by reference, but later code updates
138828 this variable -- but the earlier code did not update the callback
138831 This patch restores the old behavior by using a new varible name in an
138837 gprofng didn't build with gcc 6.3 due to the usage of __attribute__
138850 to reliably reproduce this today and learned that a process sentinel
138851 is not guaranteed to be run with the current buffer set to the process
138854 I've bumped the version number of dwarf-mode.el to make it easier to
138862 (dwarf--sentinel): Switch to the process buffer.
138868 old name was most likely a typo. The old name
138869 match_re_or_ensure_not_output seems (to me) to imply we're in some way
138872 the new name match_re_or_ensure_no_output.
138877 I also updated some test names. These tests (probably due to copy &
138878 paste errors) has 'on MI' on their name, when they were actually
138879 checking CLI output. For these test I changed the name to use 'on
138891 Add info-in-builddir to AUTOMAKE_OPTIONS.
138912 According to LoongArch ELF ABI specification [1], set the target data types
138913 of floating-point to fix the above failed testcases.
138924 This commit allows a user to create custom MI commands using Python
138925 similarly to what is possible for Python CLI commands.
138935 Which has also been previously posted to the mailing list here:
138943 The version in this patch takes some core code from the previously
138957 The 'args' parameter (to the invoke method) is a list
138958 containing (almost) all command line arguments passed to the MI
138959 command (--thread and --frame are handled before the Python code is
138975 lists, iterators, or an object that can be converted to a string.
138976 These are processed recursively to create the mi output. And so, this
138995 sensible to me, and we can always loosen this rule later if it proves
138996 to be a problem. Much harder to try and add a restriction later, once
139000 from the original patch that was posted to the mailing list.
139011 already been shutdown. Attempting to delete the mi_command_py object
139012 at this point was causing GDB to try and invoke Python code after
139015 To work around this problem, the original patch added code in
139019 In contrast, in this patch, I have added a new global dictionary to
139021 data stores related to pretty printers, and frame unwinders.
139028 This change avoids having to make the mi_cmd_table global, and walk
139029 over it from within GDB's python related code.
139032 code, though this does impose one small restriction which is not
139033 present in the original code (detailed below), I don't think this is a
139034 big issue. However, the original patch relied on being able to
139036 mi_command object had been deleted. Though continuing to execute a
139038 also (IMHO) risky, its too easy for someone to later add a use of the
139042 The one restriction that is added to avoid this, is that an MICommand
139043 object can't be reinitialised with a different command name, so:
139047 can't reinitialize object with a different command name
139049 This feels like a pretty weird edge case, and I'm happy to live with
139052 I have also changed how the memory is managed for the command name.
139053 In the most recently posted patch series, the command name is moved
139055 inherits from mi_command is then free to use a smart pointer to manage
139056 the memory for the name.
139059 hold the memory for the name within the Python object, as the lifetime
139065 MICommand.name read-only attribute containing the name of the command,
139066 and a read-write MICommand.installed attribute that can be used to
139089 being checked looks (to me), like this field is somehow slipping
139092 The comment at the top of gdbarch-components.py tries to explain how
139101 not set by the tdep code). However, this is clearly not being done.
139103 Looking in gdbarch.py at the code to generate verify_gdbarch we do
139109 1. Handle the case where the 'invalid' field of a property is set to
139111 being set to 0, and
139130 believe the only one of these that is required to be set for all
139134 definition on gdbarch-components.py, setting the 'invalid' field to
139140 validation, in which case, it is find for an architecture to not set
139145 really done is cause some extra comments to be generated, so I think
139179 Rather than trying to mend it, this patch replaces the hook by two
139186 passed to target_wait. Upon exit, target_post_wait is notified with
139190 This change benefits to Insight (out-of-tree): there's no real use of the
139201 This code isn't often exercised, I think, because languages with real
139202 subrange types tend to implement their own printers. However, it
139222 fetch a pointer to the memory location from X8 for aarch64 and r0 for armhf.
139230 This is also related to PR gdb/28681
139234 A new testcase is provided, and it exercises GDB's ability to "finish" a
139246 Without a -M cpu option given, powerpc objdump defaults currently to
139268 rustc changed to emit a bit more debug info for unsized types.
139269 Because the original test is just to make sure that ptype of an
139291 | A problem internal to GDB has been detected,
139301 But, because gdb isn't configured to handle these libraries, it
139304 It seems to me that it's better to avoid the crash by having
139321 done by actually passing a unique test name in a couple of
139322 places (rather than using the command as the test name), and in
139323 another couple of places, a test has a duplicate name due to a cut &
139341 * README-how-to-make-a-release: Add gprofng.
139355 Remove "auto-load:" from a format string passed to auto_load_debug_printf.
139363 casting it to an integer type. This yields weird results like:
139380 regressed, as there don't seem to be any tests).
139384 There was a previous discussion where we agreed to preserve the old
139389 However, I think it makes more sense to follow the manual.
139396 I noticed that 'progress' is a method on ui-out, but it seems to me
139398 class. This patch makes this change, changing progress to be a method
139412 process exit with a different exit code, and ensures that GDB reports
139415 exit code of some other thread, and thus fail.
139427 In summary, the current zombie leader detection code in linux-low.cc
139434 our list exit, we report that LWP's exit status as exit code, even
139435 though for the (real) parent process, the exit code that counts is the
139436 child's leader thread's exit code.
139438 Like for GDB, the solution here is to:
139441 - re-add the leader back to the LWP list when we finally see it
139449 The current zombie leader detection code in linux-nat.c has a race --
139458 the last lwp in our list exit, we return _that_ lwp's exit code as
139459 whole-process exit code to infrun, instead of the leader's exit
139460 code.
139466 the false-positive case, linux-nat.c will only return one event to
139472 exiting, as opposed to just the leader (with pthread_exit(), for
139478 I tried a number of approaches to fix this:
139480 #1 - My first thought to address the race was to make GDB always
139486 #2 - My second thought was to try to plug the race in the first place.
139490 would be an exit event pending for each of them waiting to be
139499 #3 - My next attempt, which seemed promising, was to synchronously
139508 working and polished, and it was only after staring at the kernel code
139509 to convince myself that this would really work (and it would, for the
139510 scenario I considered), that I realized I had failed to account for
139515 PTRACE_EVENT_EXIT, see if it would help in any way to plug the race,
139517 difference compared to looking at /proc/PID/status, with respect to
139520 So I concluded that there's no way to plug the race, we just have to
139521 deal with it. Which means, going back to approach #1. That is the
139541 messages have also been tweaked to have them synchronized with the GDB
139552 have also been tweaked - the end goal is to have them synchronized
139570 …(gdb) FAIL: gdb.threads/current-lwp-dead.exp: continue to breakpoint: fn_return (the program exite…
139573 indeed exited, and that's the thread that has the right exit code to
139574 report to the user, as that's the exit code that is reported to the
139575 program's parent. In this case, GDB managed to collect the exit code
139581 exercising plays out. Also, run the program to completion for
139584 The original program really wanted the leader thread to exit before
139587 the breakpoint event. I've tweaked the testcase to ensure that that
139611 spawned clone "thread" to finish before exiting, so the main program
139613 SIGUSR1. With the change to make GDB report the EXIT for the leader,
139638 indeed exited, and that's the thread that has the right exit code to
139639 report to the user, as that's the exit code that is reported to the
139640 program's parent. In this case, GDB managed to collect the exit code
139645 Fix it by making the main thread wait for the child to exit. Also,
139646 run the program to completion for completeness.
139653 Turning on debug output in gdbserver leads to an assertion failure if
139658 …../../src/gdbserver/../gdb/target/waitstatus.h:365: A problem internal to GDBserver has been detec…
139670 Add option to objdump/readelf to disable access to debuginfod servers.
139671 * dwarf.c (use_debuginfod): New variable. Set to 1.
139695 Add a before_plugin_all_symbols_read hook to load symbol references from
139697 plugin symbols to properly resolve plugin symbol references.
139772 look confusing to the reader.
139781 The idea here is to replace expressions like v + 1 + 1 + 1 with v + 3.
139799 debuginfo whose filename does not match the name found in the parent
139802 .gnu_debuglink name.
139805 name in its .gnu_debuglink section is "libxyz.so.debug", then
139823 MI consumers such as VSCode will fail to open debuginfod-downloaded
139824 source files due to this. Also 'info source' will fail to include the
139880 This caused problems for frontends that provide access to CLI because UI
139886 This allows us to remove all and rather complicated logic of notifying
139888 to these two commands themselves to notify.
139900 This commit places an entry in the NEWS file to inform users of this
139917 This commit adds a test to ensure that this edge case is visible to a
139922 or unsigned; it has to be one or the other, and a user can access this
139927 There's no change to GDB with this commit, this is just adding a new
139928 test to guard some existing functionality.
139937 true, attempting to read this property for non-scalar types will raise
139940 I chose 'is_signed' rather than 'is_unsigned' in order to match the
139943 signed/unsigned selector in the Python API, so it seemed reasonable to
139954 gdb/mi: add --no-connection to MI -add-inferior command
139957 a --no-connection option to -add-inferior.
139959 This new option matches the existing option of the same name for the
139963 I've added a new 'connection' field to the MI output of -add-inferior,
139964 which includes the connection number and short name. I haven't
139966 expectation would be that if the frontend wanted to display all the
139975 Prior to the multi-target support commit:
140005 besides. I suspect it is rarely used, and I would like to propose
140012 already have a thread pointer handy, and the thread has a pointer to
140020 ada_print_floating rewrites a floating-point string representation to
140021 conform to Ada syntax. However, if you managed to get a floating
140028 this error case, and proceeds to modify the error text.
140035 Sometimes it is convenient to be able to specify the exact bits of a
140036 floating-point literal. For example, you may want to set a
140037 floating-point register to a denormalized value, or to a particular
140046 This patch adds a somewhat similar idea to Ada. It extends the lexer
140047 to allow "l" and "f" suffixes in a based literal. The "f" indicates a
140052 those can also be used to control the bits of a floating-point value,
140053 but they are a bit more cumbersome to use (simplest is binary but
140056 I chose not to allow this extension to work with based integer
140082 This patch updates the test to try to report the results correctly. I
140092 encodings. This patch adds the corresponding support to gdb.
140111 converted to lower case, but all others are converted to upper case.
140115 check exhaustively) can be used in one program. I chose to omit
140116 handling this case from gdb, on the theory that it is hard to figure
140121 to Latin-1, as that is GNAT's default. This setting controls how "U"
140126 encoding failure on PPC when running a test that tries to read
140131 program to generate the case-folding table is included. It simply
140136 exercises most of the new code paths, aside from Y WITH DIAERESIS as
140142 rust-parse.c has a #define for the host-specific UTF-32 charset name.
140144 to charset.h for easier reuse.
140150 this case fall through to the default case. However, a subsequent
140151 patch in this series needs this case to work correctly.
140153 I looked at all calls to these functions that pass a 1 for the
140154 sizeof_l parameter. The only such case seems to be correct with this
140161 characters. However, it's a bit simpler and more flexible to let
140162 std::string do the work here, and simply append characters to the
140163 string as we go. This turns out to be useful for a subsequent patch.
140167 regular expressions to match upper case.
140179 BEQ/L and BNE/L respectively with the `rs' operand equal to $0,
140182 BEQ and BNE respectively with the `rt' operand equal to $0,
140185 levels of up to the MIPSr5 ISA and a machine instruction on its own
140188 Add missing annotation to BEQZ/L and BNEZ/L accordingly then and add a
140239 iterate_over_block_arg_vars to take a gdb::function_view rather than a
140240 function pointer and a user-data. In one spot, this allows us to
140242 looked more complicated, so I changed the helper function to be an
140248 I happened to notice a couple of unnecessary casts in hppa-tdep.c, and
140250 some code and using the default deleter rather than noop_deleter.
140257 In a following patch, I have a const value I want to copy using a
140259 moment. Change the paramter to be const,
140262 value_contents_all_raw, which calls allocate_value_contents, to get a
140264 problem. My first attempt at solving it was to add a const version of
140284 No kind of internal var uses it remove it. This makes the transition to
140285 using a variant easier, since we don't need to think about where this
140327 gdb: Use a typedef's scoped type name to identify local typedefs
140331 type of a typedef and not its scoped name.
140415 Presently in this case, due to an undefined behavior shift, at least
140426 to this one, and is run uniformly for all ELF targets anyway.
140439 On some systems, the gnulib configuration will decide to define open
140440 and/or close as macros to replace the POSIX C functions. This
140444 * event-pipe.cc (event_pipe::open): Renamed to ...
140446 (event_pipe::close): Renamed to ...
140495 can_spawn_for_attach to fix the failed testcases.
140505 ppc64_elf_build_stubs due to .eh_frame editing. The idea of stashing
140507 ppc64_elf_build_stubs was never a good idea. Instead, we need to keep
140514 (ppc64_elf_size_stubs): Adjust to suit new relative reloc stash.
140548 This silences warnings on recent FreeBSD/amd64 kernels due to not
140558 when generating code. 'sh' is unavoidable for build-time generation,
140562 closely to the original code in this rewrite, so it may look slightly
140566 generated, using the code introduced in the previous patch.
140568 make-target-delegates.py is simpler to invoke, as it knows the correct
140569 input file to scan and it creates the output file itself.
140573 Move copyright code from gdbarch.py to new file
140574 This moves the copyright code from gdbarch.py to a new Python source
140579 This involved minor changes to the output of gdbarch.py. Also, I've
140580 updated copyright.py to remove the reference to gdbarch.sh. We don't
140581 need to mention gdbarch.py there, either.
140596 user builds in-tree, we would not want to remove them.
140598 While that seems a bit obscure, it seems to me that "distclean" is
140615 Fix a typo in the previous delta to bfdio.c.
140630 Fix linker tests to compile with gcc-12.
140643 input bfd has a Tag_ABI_HardFP_use set to 3 but does not also have
140654 Attaching to process 6500
140661 It is better to make can_spawn_for_attach to return false for this case.
140662 It would have to setup a small test program, compile it to exec, spawn it
140663 and try to attach to it.
140666 and then we can do the following processes to test:
140679 In the current code, there is no test result when execute the following
140685 It is better to print explicit test result in can_spawn_for_attach.
140701 causes several Tcl errors to appear. For example,
140727 -re "\\^error,msg=\"During startup program exited with code 127" {
140738 again. The first branch now refers to a non-existent spawn_id, leading to the error.
140740 This can be fixed by using exp_continue to loop in expect instead of looping around
140741 expect, which is the approach I have used[1]. Note I've had to update the expected
140744 One other small change I've made is to add a log entry which spills the values of
140749 FAILs (which I have not attempted to fix).
140752 assume that it was intentionally written this way, and I've modified the code with
140754 to work fine, too, if that is preferred. [It still employs exp_continue to fix the
140760 I found a few spots where filename styling ought to be applied, but is
140770 I think this happens because GDB_PY_HANDLE_EXCEPTION expands to an
140779 literals. gdb does not generally seem to handle the Ada wide string
140780 types, so for the time being these continue to be excluded -- but an
140781 explicit error is added to make this more clear.
140794 gdb handles this reasonably well, but failed to handle the 'QWW'
140807 However, gdb did not do this when it decided to print the constant
140813 This patch changes gdb to print the decimal value here as well, and to
140826 While I think this is a bug, I plan to fix it separately.
140839 this attribute is only really useful for echoing straight through to
140840 the user, but, if a user wants to write a command that displays the
140841 same, or a similar 'Thread Id' to the one seen in 'info threads', then
140842 they need access to this string.
140853 patch, which attempted to use gdb_is_target_native. This proc and
140857 This patch adds appropriate warning comments to these procs and
140858 causes gdb_is_target_1 to issue a Tcl error if it is called without a
140864 Fix gdb.fortran "failed to extract expected results" errors
140871 ERROR: failed to extract expected results
140872 ERROR: failed to extract expected results
140874 ERROR: failed to extract expected results for lbound
140877 access to while using these targets.
140908 A problem internal to GDB has been detected,
140912 Resyncing due to internal error.
140938 A problem internal to GDB has been detected,
140942 Resyncing due to internal error.
140960 is misleading in this case. It instructs the user to modify .gdbinit
140961 in order to permanently enable/disable debuginfod but gdb-add-index
140974 gdb::unique_xmalloc_ptr<char> to a std::string. I could only find 3
141009 That prompt comes from this questionable code in
141012 /* This is what gdb used to do historically -- printing prompt
141018 ... which seems like something to remove. But maybe the intent here
141019 is that this prompt is sufficient, and MI clients must be ready to
141020 handle output coming after a prompt. On the other hand, if this code
141027 This patch adds the missing observer and arranges to show the MI
141031 start_event_loop call the prompt-displaying code directly, rather than
141040 PR testsuite/7142 -- old enough to have been converted from Gnats --
141051 to parse the multi-letter prefix in the architecture string.") changed
141075 to how ABI tags or function overloads are now handled.
141077 With this patch, users will be able to "gloss over" the details of matching
141079 to strncmp_iw_with_mode to skip parameter lists if none is explicitly given
141124 Similar to how scope lookups work, passing "-qualified" to the break command
141126 this will cause GDB to only find the three non-template functions.
141131 This patch attempts to make a start at adding unit tests for
141133 of this function in other tests, these are currently end-to-end
141136 This patch attempts to cover the basics of string matching, white
141139 This is otherwise tested as part of our end-to-end DejaGNU-based
141144 Move find_toplevel_char to cp-support.[ch]
141155 Fix crash in Fortran code
141157 certain Fortran code. The bug is that f77_get_upperbound assumes the
141165 Thanks to Andrew for writing the test case.
141183 3. In do_target_wait, we randomly choose an inferior to call target_wait
141184 on first, it happens to be the remote inferior.
141221 Make use of a range based for loop to iterate over a static global
141222 array, removing the need to have a null entry at the end of the
141232 On modern Darwin's, there appears to be a new circumstance in which a
141234 previously accounted for: to signal the WIFSTOPPED condition in the
141237 state reparents to PID 1, but cannot be killed).
141240 to let us know of the inferior's new state again)
141241 - Refactor logging so as to clearly distinguish between the
141250 Commit 29ef4c0699e1 ("gdb/linux-tdep.c: Add Perms to the 'info proc
141269 I suggest fixing it on Linux by moving the flags column to the same
141271 between OSes, and we don't have to touch the test.
141274 string to specify the number of characters to print.
141291 Change read_mapping to return a structure instead of taking many output
141293 and device) to be gdb::string_view, since that's what string_view is
141320 gdb/linux-tdep.c: Add Perms to the 'info proc mappings' output
141321 Fixes #28914 and so it adds a 'Perms' (permissions) column to the
141322 'info proc mappings' command output. This will allow users to know
141324 to fetch them from the /proc/$pid/maps file (which is also what GDB
141398 RISC-V: PR28733, add missing extension info to 'unrecognized opcode' error
141401 This patch expands that error message to include the missing extension
141405 to "unrecognized opcode `<op statement>'".
141411 used to return the extension string for each INSN_CLASS_*.
141417 (riscv_ip): Use struct riscv_ip_error to report more detailed errors.
141423 RISC-V: PR28733, add missing extension info to 'invalid CSR' error
141427 This patch expands that error message to include the missing extension
141447 keeping sticky options to work around gcc bugs.
141451 RISC-V: Updated CSRs to privileged spec v1.12 and debug spec v1.0.
141458 * Changed debug CSR address of scontext from 0x7aa to 0x5a8. We cannot support
141460 the only way to move forward.
141468 * opcode/riscv-opc.h: Updated CSRs to privileged spec v1.12 and
141471 * testsuite/gas/riscv/csr.s: Updated CSRs to privileged spec v1.12
141535 This commit reorganizes and adds some CSRs to csr-dw-regnums.[sd] to
141554 inf-ptrace: Add an event_pipe to be used for async mode in subclasses.
141555 Subclasses of inf_ptrace_target have to opt-in to using the event_pipe
141577 return nullptr as no thread name is better than causing info threads to
141582 fbsd-nat: Various cleanups to the ::resume entry debug message.
141583 Move the message from 'show debug fbsd-lwp' to 'show debug fbsd-nat'
141587 Use target_pid_to_str to format the ptid and log the step and signo
141604 handle and writes to the pipe when SIGCHLD is raised. TARGET_WNOHANG
141610 - Handle TARGET_WNOHANG by passing WNOHANG to waitpid and returning
141611 TARGET_WAITKIND_IGNORE if there are no events to report.
141641 target before the resume method is invoked due to the following:
141644 ::wait returns TARGET_WAITKIND_NO_RESUMED to indicate that there are
141652 target supports async mode, then an earlier call to do_target_resume
141653 to resume the child reporting an event in the loop in
141655 ::wait was invoked. In addition, nothing in the code executed in
141661 INF_EXEC_COMPLETE event passed to inferior_event_handle, but all of
141665 Note that there is an earlier call to enable async mode in
141667 to report an existing event after enabling async mode, so it needs to
141673 Enabling async mode above the target layer removes duplicate code in
141682 gdbserver linux-low: Convert linux_event_pipe to the event_pipe class.
141686 gdb linux-nat: Convert linux_nat_event_pipe to the event_pipe class.
141693 This pulls out the implementation of an event pipe used to implement
141697 This will be used to replace the existing event pipe in linux-low.cc
141708 1. The LDFLAGS variable is used to pass the 'pkg-config --libs' output
141709 to AC_LINK_IFELSE, which results in the "-L/some/path
141711 failure to find symbols referenced in conftest.cpp, if the linker is
141714 2. The CFLAGS variable is used to pass the 'pkg-config --cflags'
141715 output to AC_LINK_IFELSE. However, as the current language is C++,
141719 This patch fixes both of these mistakes, allowing GDB to correctly
141726 gdb/testsuite/README: point to default value of INTERNAL_GDBFLAGS
141728 ([gdb/testsuite] Prevent pagination in GDB_INTERNALFLAGS, 2020-10-26) to
141730 to point to the data directory, but its default value mentioned in the
141731 testsuite's README was not kept up to date.
141733 To avoid it getting out of sync even more, point the reader to the
141742 RISC-V: Maintain a string to hold the canonical order
141751 than riscv_supported_std_ext to compute canonical order.
141775 sim: gdbinit: hoist setup to common code
141777 we can move this breakpoint call to runtime and let gdb detect whether
141794 In this test I send multiple commands from dejagnu to gdb with a
141795 single send_gdb call. In a well behaving world what I want to happen
141802 sending the two commands, only the first command was echoed to gdb's
141804 to write the output. Now, mixed in with the first command output, the
141805 second command was echoed to gdb's terminal. Finally, gdb would
141810 causing the test matching patterns to fail.
141813 command to an MI command, this reduces the number of lines of output
141830 Less output makes for simpler patterns to match against.
141832 Next, when sending two command to gdb I was previously trying to spot
141838 So long as the second pattern matches up to the gdb prompt, then I can
141839 be sure than nothing is left over in the expect buffer to muck up
141842 As to see the second command output gdb must have read in the second
141851 This fixes a GDB crash reported in bug pr/28900, related to reading in
141854 In this commit my goal is to stop GDB crashing. I am not trying to
141859 So, the problem appears to be that, when reading in the stabs data, we
141860 need to find a N_SO entry, this is the entry that defines the start of
141864 It is while handling an N_SO that GDB creates a psymtab to hold the
141883 nullptr check, and issue a suitable complaint if pst is found to be
141887 see a debug symbol outside of an N_SO entry, and if anyone wanted to
141891 I don't have any tests for this change, I have no idea how to generate
141904 During review Simon pointed out that the same code exists in
141922 …gdb_readline_wrapper (prompt=0x7ffd907712d0 "--Type <RET> for more, q to quit, c to continue witho…
141928 This comes from what appears to be a oversight in fputs_maybe_filtered. This
141932 The filter parameter is correctly used to guard the first place where
141947 gdb/darwin: remove not-so-harmless spurious call to `wait4`
141949 code will typically wait4() a second time on the same process that was
141950 already wait4()'d a few lines above. While this used to be
141954 The early (~2019) history of bug #24069 cautiously suggests to use
141957 without a redundant call to wait4(), as would be expected.
141960 what that double-wait4() was supposed to achieve in the first place - A
141962 and a80b95ba67e2 from the 2008-2009 era, but fails to answer the
141974 Add constructor to bound_minimal_symbol
141975 This adds a constructor to bound_minimal_symbol, to avoid a build
141978 I also took the opportunity to remove some redundant initializations,
141979 and to change one use of push_back to emplace_back, as suggested by
141986 * ld.texi (Output Section Type): Fix typo in @code syntax.
142021 * ldlang.h: Add type_section to list of section types.
142033 gdb: convert callback_handler_installed from int to bool
142034 Simple int to bool conversion on callback_handler_installed in
142045 all that is required. Due to allowing longs, it was possible for
142046 fb_label_name and dollar_label_name to overflow their buffers.
142061 * read.c (read_a_source_file): Limit numeric label range to int.
142067 a code tidy.
142069 * read.c (s_app_line): Rename 'l' to 'linenum'. Avoid ubsan
142082 What to do when sh_addralign isn't a power of two
142084 alignment, and ELF sh_addralign is required to be an integral power of
142089 where we want to convert from alignment_power back to an alignment.
142091 sh_addralign, but I think it's also reasonable to use the greatest
142137 Update I386_NEED_DYNAMIC_RELOC_TYPE_P to allow R_386_TLS_IE for relocation
142162 both variables at the top to default values, rather than
142163 adding another single 'set global_cc_os ""', to reduce the
142173 x86: Add has_sib to struct instr_info
142174 Add has_sib to struct instr_info and use SIB info only if ins->has_sib
142186 It is possible for a compiler to optimize a function in a such ways that
142189 attribute with the value DW_CC_nocall to tell the debugger that it is
142190 unsafe to call the function. The DWARF5 standard states, in 3.3.1.1:
142194 > conventions, and it may not be safe for the debugger to call this
142198 ways, including how arguments are passed to the function, how values are
142199 returned, and so on. For this reason, it is unsafe for GDB to try to do
142202 - call / print an expression requiring the function to be evaluated,
142208 prints an appropriate message to the user and does not proceed with the
142211 Note that it is still possible for someone to use a vendor specific
142212 value for the DW_AT_calling_convention attribute for example to indicate
142214 prevent this, and target dependent code can be adjusted if one wanted to
142224 gdb: add a symbol* argument to get_return_value
142225 Add an argument to the get_return_value function to indicate the symbol
142249 to use MAXPAGESIZE for the end of the relro segment alignment, like other
142290 Calls to basename were added here as part of commit
142294 error in the change to openpf1.c; the non-/-prefixed
142295 code-path was changed instead of the "/"-prefixed code-path,
142304 in contrast to C and assembler tests run by calling
142312 (related to the naked argument to the simulator before
142313 passing on to the simulated program) to remove a leading
142324 Intended to be called from the debugger tool.
142333 toolchain settings", trying to use out-of-tree ld and as at test-time
142336 Subsequent to that commit, all assembler tests without in-tree-built
142337 tools FAIL, getting errors when trying to call
142341 build", which hardcodes in-tree-paths to those tools instead of
142345 This commit calls GCC_TARGET_TOOL (a deceptive name; gcc-specific
142348 step, for each X to find a value for $(<X>_FOR_TARGET). N.B.: in-tree
142353 Makefile to the same value or better, but has to be set here too, as
142354 automake "wants" Makefiles to be self-contained (you get an error
142363 that appears to be a deliberate special-case.
142365 Note that all tools still have to be installed and present in
142366 $PATH at configure-time to be properly used at test-time.
142380 whose default was changed to --enable-sim-hardware(=yes) in
142385 (or the default after to the mentioned commit) runs about
142390 supported. The best action here is to remove it completely,
142392 avoiding littering the code with "#if WITH_HW".
142415 sim/testsuite: Support "requires: simoption <--name-of-option>"
142423 The immediate need was to check for presence of a simulator
142427 predicate to use together with it; checking whether a
142433 predicates (with parameters), to be used as a conjunction.
142441 sim/testsuite/cris/hw/rv-n-cris/irq1.ms: Disable due to randomness
142442 For reasons that remain largely to be investigated (besides
142458 targets" caused " -sim" to be appended to CFLAGS_FOR_TARGET for
142461 check-sim", adding the right options. While "-sim" happens to work,
142466 checks" caused " -sim" to be appended for *all* targets, which just
142472 in the test-suite have caused "linux"-specific tests to break, so that
142473 part will be tended to separately.
142476 use where needed, to not have the CRIS-specific modification affect a
142498 untested $subdir/$name
142509 Allowing it to be used for assembler tests makes it usable
142513 With this patch, global_cc_os is set to "", just as for "unknown OS".
142529 sim cris: Correct PRIu32 to PRIx32
142544 attempt to allocate memory using the brk syscall such that
142545 the room up to the next 8192-byte "page boundary" wasn't
142547 on a consistency error when trying to allocate a memory
142548 block to raise the "end of the data segment": there was
142556 * sim-if.c (sim_open): Correct PRIu32 to PRIx32.
142560 microblaze: fix fsqrt collicion to build on glibc-2.35
142561 * microblaze-opcm.h: Renamed 'fsqrt' to 'microblaze_fsqrt'.
142580 gdb/python: move styling support to gdb.styling
142585 The motivation for this change is purely to try and reduce the clutter
142595 API, it is possible that a user out there has overridden these to, in
142599 documented, I don't think we should be obliged to not break user code
142604 gdb: use python to colorize disassembler output
142605 This commit adds styling support to the disassembler output, as such
142606 two new commands are added to GDB:
142611 In this commit I make use of the Python Pygments package to provide
142613 however, I found the highlighting results to be inferior to those of
142619 hook is very similar to the existing hook for source code
142622 One possibly odd choice I made with the new hook is to pass a
142627 However, even though the Python function used to perform styling of
142629 to close the door on a user overriding this function to provide
142631 require access to the gdb.Architecture, and so I decided to add this
142634 The styling is applied within gdb_disassembler::print_insn, to achieve
142636 styling is then applied to the contents of this buffer. Finally the
142637 gdb_disassembler buffer is copied out to its final destination stream.
142639 There's a new test to check that the disassembler output includes some
142647 Currently, when the disassembler wants to print an address, we call
142649 styling, and the symbol name using `function` styling. After this
142651 through pygments, and this include the address and symbol name parts
142658 or pygments gets to decide how the function name should be styled.
142661 to behave as it always has, the disassembler output is mostly
142673 Don't change indirect symbol defined in IR to undefined if it is
142680 symbol defined in IR to undefined if it is referenced from
142696 PR28882, build failure with gcc-4.2 due to use of 0b literals
142703 The better to see any code that accesses expld.dataseg.
142713 Now that ld properly aligns the end of the relro segment, the hack to
142736 size from 322208 to 2099872 bytes. Fixing this on x86 will require
142737 introducing a gap after the end of the relro segment (of up to
142754 There are constraints on layout of binaries to meet demand paging and
142756 offset mod pagesize equal to vma mod pagesize. Memory protection
142762 data (RW), the data segment must start on a different page to the
142766 pages. Demand paging would require the image on disk to be 64k+1k
142773 example to one with 64k-1 text size, following that heuristic would
142790 segment to COMMONPAGESIZE. That results in only partial relro
142803 of the data segment, is sized according to how those sections are laid
142804 out. That means the start of the relro segment is fixed relative to
142807 games with the start of the data segment to save disk space. At
142818 (fold_segment_relro_end): Align to relropagesize.
142819 * ldexp.h (seg_align_type): Rename pagesize to commonpagesize.
142821 * ldlang.c (lang_size_segment): Adjust to suit field renaming.
142835 I am checking this into master and will backport it to 2.38 branch.
142839 On x86, GCC 12 supports -mno-direct-extern-access to enable canonical
142840 reference to protected function and disable copy relocation. With
142844 reference to the canonical protected function will get the run-time error:
142846 ./y: internal_f: ./libfoo.so: non-canonical reference to canonical protected function
142853 Update x86 linker to disallow non-canonical reference to the canonical
142856 ld: plt.o: non-canonical reference to canonical protected function `internal_f' in libfoo.so
142857 ld: failed to set dynamic section sizes: bad value
142871 reference to canonical protected function.
142879 * testsuite/ld-i386/i386.exp: Check non-canonical reference to
142891 to canonical protected function and check copy relocation against
142896 Add initializers to bound_minimal_symbol
142897 This adds initializers to bound_minimal_symbol, allowing for the
142898 removal of some calls to memset.
142908 An attempt to print namelist variables results in gdb bailing out with
142914 This commit is to make the print and ptype commands work for namelist
142930 loop if the current instruction is the last one related to that loop.
142933 code, but might happen with gcc-compiled as well. PR gdb/17315 relates
142934 to this problem, as running gdb.base/watchpoint.exp with clang
142937 To better understand this issue, consider the following source code,
142944 If we transform this to pseudo-assembler, and generate a line table,
142959 hoping to leave the loop, GDB sets up a stepping range that runs from
142960 the start of the function (0x100 in our example) to the end of the
142967 range. GDB then sets up a new stepping range that runs from 0x10c to
142971 loops back to address 0x104.
142976 control to the user. This is not what the user was expecting, they
142977 expected GDB to exit the loop.
142981 check subsequent SALs (symtab_and_lines) to see if they are
142983 the end of the initial stepping range is extended to the end of the
142987 sets up a stepping range from the start of the function 0x100 to
142994 This patch also adds a test case that can be run with gcc to test that
143006 This commit updates the output of 'maint info jit' to print not just
143012 within gdb at the time the jit object is loaded, it is now possible to
143019 One test that relies on the output of 'maint info jit' was updated to
143054 I think it's safe to remove checking support for these ptrace features,
143060 Linux: linux_check_ptrace_features forks a child process to test if some
143062 to test whether ptrace reports an event for the fork by the child. This
143087 While reviewing a different patch I wanted to know more about what was
143089 calls, and I thought these might be useful to others.
143097 Update the obsolete list and how-to-make-a-release documentation now that the 2.38 release is out.
143115 wrote "isym != NULL && isym++" rather than the simpler "isym++" to
143117 is of course unused in any code path where it might start off as
143118 NULL. Sometimes you can't win. So don't try to be clever in reading
143142 The extension version checking logic is really just too complicated to
143143 encode into the linker, trying to do so causes more harm than good.
143144 This removes the checks and the associated tests, leaving the logic to
143149 * elfnn-riscv.c (riscv_version_mismatch): Rename to
143152 (riscv_merge_std_ext): Adjust calls to riscv_version_mismatch.
143177 relying on the previous code being correct in parsing these stabs.
143192 I noticed that most of the calls to index_cache_debug include a
143232 gdb/python: allow Value.format_string to return styled output
143233 Add a new argument to the gdb.Value.format_string method, 'styling'.
143242 If the returned string is going to be printed to the user, then it is
143243 often nice to retain the GDB styling.
143245 For the testing, we need to adjust the TERM environment variable, as
143250 cause format_string to always produce styled output.
143256 of struct thread_info is a raw pointer to a resource it owns. This
143257 commit changes the type of the thread_fsm member to a std::unique_ptr in
143258 order to signify this ownership relationship and slightly ease resource
143259 management (no need to manually call delete).
143263 that it is incorrect to associate a FSM to a thread_info object if
143266 The function run_inferior_call takes an argument as a pointer to a
143268 change this function's signature to accept a unique_ptr in order to
143285 to be needed.
143287 The original bug report involves using eclipse to drive gdb using mi
143288 commands. A separate tty is spun off in which to send gdb the mi
143292 being sent to gdb, we sometimes see an ESPIPE error from a lseek
143296 gdb/event-top.c, where we can (sometimes) perform calls to fgetc, and
143297 allow glibc to perform buffering on the FILE object being used.
143300 includes a call to disable the glibc buffering, but this is only done
143304 The first step to understanding why this problem occurs is to
143305 understand that eclipse sends multiple commands to gdb very quickly
143306 without waiting for and answer to each command, eclipse plans to
143307 collect all of the command results after sending all the commands to
143308 gdb. In fact, eclipse sends the commands to gdb that they appear to
143310 this issue within the testsuite I find it necessary to send multiple
143316 little strange, is consistent. In order to fully understand what's
143317 going on I think I would likely need to dive into kernel code, which
143321 The following description all relates to input from a tty in which I'm
143325 Here's what I observe happening when I send multiple commands to gdb
143343 return to gdb_readline_no_editing_callback, which in turn returns to
143356 command. After handling the command we go to the event loop, enter,
143357 and then exit the select, and call back to the function
143365 like before, we copy this to gdb's buffer and handle the command, then
143366 we return to the event loop. At this point the select blocks while we
143367 wait for more input to arrive.
143370 taking care to split the incoming write into lines.
143372 My next experiment is to try something like:
143377 in many hundreds of characters long. One way to do this is:
143382 aiming for is to have the first command be longer than glibc's
143394 character buffer. Once gdb has copied these to its buffer we call
143398 we go (via the event loop) back to gdb_readline_no_editing_callback.
143423 handled. We then return to the event loop and enter the select.
143430 If I send another command to gdb, or even just send an empty
143439 case will _only_ show up when using new-ui to create the separate tty
143447 Prior to this commit, the new-ui command would open the tty three
143453 command we usually end up having to write something to the mi output
143457 and output streams, so, when gdb tries to write to the FILE object,
143460 file. To correct for this glibc tries to do an lseek call to
143461 reposition the file offset of the output stream prior to writing to
143464 which ultimately causes gdb to terminate.
143469 fashion (if the first command is just the wrong length). So, what to
143476 try to lseek, and so we'd never get the ESPIPE error.
143482 The only solution I can see to this problem is to unbuffer the input
143487 buffered input it will not be tempted to lseek, so no ESPIPE error.
143488 When we go have to the event loop there will be more data pending in
143492 I'm tempted to suggest that we should move the unbuffering of the
143500 that 's felt to be important,
143502 2. I don't think making repeated calls to unbuffer the input will
143504 once per call to gdb_readline_no_editing_callback, and, if the input
143509 I want to minimise the chances we'll conflict.
143511 So, this commit just changes gdb_readline_no_editing_callback to
143516 first command bigger by just adding whitespace to the front, as gdb
143517 still has to read the complete command (including whitespace) via
143518 glibc, so this is enough to trigger the bug.
143527 kernel on the virtual machine is delivering the input to glibc slower
143534 would not be truncated at 64 bytes, instead, I'd expect to see the
143539 characters (starting at 8 character), all the way up to 2048
143543 The only last question relates to commit afe09f0b6311a4d that I
143544 mentioned earlier. That commit was intended to provide support for
143549 I know next to nothing about this topic beyond a brief scan of the
143551 behaviour to unix sockets than to unix named fifos.
143557 Still, I'm reluctant to revert the above commit (and provide the same
143558 functionality a different way) without a specific bug to point at,
143560 and write calls are going straight to the kernel with minimal glibc
143562 touched the above patch, but it is something to keep in mind when
143569 gdb/disasm: combine the no printing disassembler setup code
143574 Each of these places has its own stub function to act as a print like
143578 In this commit I create a new function to initialise a disassembler
143587 GDB already has a flag to suppress printing notification events, such
143589 internally when executing commands. Make the flag available to the
143590 user via a new command. This is expected to be useful in scripts.
143592 For instance, suppose that when Inferior 1 gets to a certain state,
143593 you want to add and set up a new inferior using the commands below,
143594 but you also want to have a reduced/clean output.
143612 [Switching to inferior 2 [<null>] (/tmp/a.out)]
143617 [Switching to inferior 1 [process 7670] (/tmp/test)]
143618 [Switching to thread 1.1 (process 7670)]
143623 GDB's Python API make it possible to capture and return GDB's output,
143628 [Switching to inferior 2 [<null>] (/tmp/a.out)]
143632 [Switching to inferior 1 [process 8263] (/tmp/test)]
143633 [Switching to thread 1.1 (process 8263)]
143637 You can use the new "set suppress-cli-notifications" command to
143650 gdb/cli: add a 'normal_stop' option to 'cli_suppress_notification'
143656 command to turn the flag off/on.
143660 gdb/cli: convert cli_suppress_notification from int to bool
143661 Convert the suppress_notification flag for the CLI from int to bool.
143796 function of the same name with the same arguments.
143850 For brevity, I chose the name "compunit" instead of "compunit_symtab"
143923 I think that most remaining uses of COMPUNIT_FILETABS intend to get the
143924 primary filetab of the compunit_symtab specifically (and not to iterate
143926 which has been converted to compunit_symtab::filetabs), so replace mosts
143936 gdb: move compunit_filetabs to compunit_symtab::filetabs
143937 Make compunit_filetabs, used to iterate a compunit_symtab's filetabs, a
143938 method of compunit_symtab. The name filetabs conflicts with the current
143939 name of the field. Rename the field to m_filetabs, since at this point
143942 last_filetab field to m_last_filetab as well (it's only used on
143945 Adjust the COMPUNIT_FILETABS macro to keep its current behavior of
143953 Add a method to set the primary filetab of the CU. This is currently
143961 Add a method to append a filetab/symtab to a compunit_symtab. There is
143968 gdb: rename compunit_primary_filetab to compunit_symtab::primary_filetab
143976 Remove the macro, update all users to use the getter directly.
143983 Rename the field to m_objfile, and add a getter and a setter. Update
143994 This patch fixes the problem by allowing non-ASCII characters to be
143995 considered as identifier components. It seemed simplest to just pass
144011 The expression and Rust parser rewrites made this simple to fix --
144013 it. This patch has a slight hack because I didn't want to introduce a
144023 Add emultempl/emulation.em to define ld_${EMULATION_NAME}_emulation so
144040 Renamed to ...
144042 (gld_${EMULATION_NAME}_set_symbols): Renamed to ...
144044 (gld_${EMULATION_NAME}_after_open): Renamed to ...
144046 (gld_${EMULATION_NAME}_before_allocation): Renamed to ...
144048 (gld_${EMULATION_NAME}_get_script): Renamed to ...
144085 to ...
144087 (gld_${EMULATION_NAME}_list_options): Renamed to ...
144089 (gld_${EMULATION_NAME}_set_symbols): Renamed to ...
144091 (gld_${EMULATION_NAME}_after_parse): Renamed to ...
144093 (gld_${EMULATION_NAME}_after_open): Renamed to ...
144095 (gld_${EMULATION_NAME}_before_allocation): Renamed to ...
144097 (gld_${EMULATION_NAME}_unrecognized_file): Renamed to ...
144099 (gld_${EMULATION_NAME}_recognized_file): Renamed to ...
144101 (gld_${EMULATION_NAME}_finish): Renamed to ...
144103 (gld_${EMULATION_NAME}_place_orphan): Renamed to ...
144105 (gld_${EMULATION_NAME}_open_dynamic_archive): Renamed to ...
144107 (gld_${EMULATION_NAME}_find_potential_libraries): Renamed to ...
144109 (gld_${EMULATION_NAME}_get_script): Renamed to ...
144127 to ...
144129 (gld_${EMULATION_NAME}_list_options): Renamed to ...
144131 (gld_${EMULATION_NAME}_set_symbols): Renamed to ...
144133 (gld_${EMULATION_NAME}_after_parse): Renamed to ...
144135 (gld_${EMULATION_NAME}_after_open): Renamed to ...
144137 (gld_${EMULATION_NAME}_before_allocation): Renamed to ...
144139 (gld_${EMULATION_NAME}_unrecognized_file): Renamed to ...
144141 (gld_${EMULATION_NAME}_recognized_file): Renamed to ...
144143 (gld_${EMULATION_NAME}_finish): Renamed to ...
144145 (gld_${EMULATION_NAME}_place_orphan): Renamed to ...
144147 (gld_${EMULATION_NAME}_open_dynamic_archive): Renamed to ...
144149 (gld_${EMULATION_NAME}_find_potential_libraries): Renamed to ...
144151 (gld_${EMULATION_NAME}_get_script): Renamed to ...
144169 Renamed to ...
144171 (gld_${EMULATION_NAME}_before_parse): Renamed to ...
144172 (gld_${EMULATION_NAME}_get_script): Renamed to ...
144193 not possible to list all possible names.
144195 I now link the user to a mechanism by which they can discover the
144197 and the fact that gdb provides tab-completion of the name at the
144201 that the name of the window is given in the output. This could
144202 probably have been inferred, but given I'm now linking to this as a
144203 mechanism to find the window name, I'd prefer to mention that the name
144208 gdb/tui: add window width information to 'info win' output
144210 sense to have 'info win' include the width, as well as the height, of
144224 windows, so I don't think anything needs to be added there.
144246 * testsuite/ld-powerpc/pr28827-1.d: Pass -a64 to gas.
144271 Current code detects the need for PT_GNU_EH_FRAME using a field set by
144312 * micromips.igen (sc, scd): Adapt to new do_sc* helper signature.
144317 (sc, scd): Adapt to previous change.
144404 a call to sim_fpu_op_nan.
144417 This used to be controlled by a macro that was only defined for MIPS.
144418 This patch replaces the macro with a variable to track the current
144454 all aout, and it doesn't make all that much sense to remove arm-aout
144463 objfiles created by JIT reader API (e.g., << JIT compiled code at
144464 0x7ffd8a0c77a0 >>). This allows one to at least differentiate one from
144471 JIT-ed code is. But it is a value chosen by the author of the JIT
144472 engine and the JIT reader, so including this value in the objfile name
144476 To access this field, we need to pass down a reference to the
144478 alias for a CORE_ADDR) that includes the address of the code entry in
144480 jit_dbg_reader_data) plus a reference to the jit_code_entry as read into
144482 don't have to call target_gdbarch.
144492 Ada-like to elide this structure, which is what this patch implements.
144493 It turned out to be simplest to reuse a part of print_variant_clauses
144497 going to check it in.
144510 The Linux kernel usually ouputs symbol+offset instead of plain code
144511 addresses these days, to avoid leaking ASLR secrets and to handle
144516 offset, and then pass it to addr2line.
144532 Rename EM_56800V4 to EM_56800EF.
144534 * common.h: Rename EM_56800V4 to EM_56800EF.
144538 x86: Update X86_64_GOT_TYPE_P to cover more GOT relocations
144540 R_X86_64_GOTPLT64 to X86_64_GOT_TYPE_P to cover more GOT relocations.
144576 This is not a regression but a failure due to a change in GDB's
144577 output. Prior to the aforementioned commit, GDB has been printing the
144625 Commit 1da5d0e664 eliminated the call to 'get_current_arch'
144634 Supporting -static-pie on PowerPC64 requires the linker to properly
144636 absolute symbol. I've been slow to fix the linker on powerpc because
144642 handling code. Don't count dyn relocs against non-dynamic
144644 (dec_dynrel_count): Adjust to suit.
144655 absolute symbols. Don't optimise got and toc code sequences
144690 Substitutions are applied to VALUE to compute the real prompt.
144700 Turns out this is due to how we build this help text, something which
144710 Substitutions are applied to VALUE to compute the real prompt.
144719 Fix the formatting issue by moving the """ to the end of the previous
144727 gdb: test to check one aspect of the linespec parsing code
144730 code. Specifically, I was thinking about whether the spec_string for
144733 I made a change to prevent the spec_string from ever being nullptr,
144736 However, as part of this work I was reviewing how the breakpoint code
144743 a new test to gdb.base/break.exp that ensures a change in this area
144751 gdb: handle calls to edit command passing only a linespec condition
144752 While working on the previous commit to fix PR cli/28665, I noticed
144758 would cause GDB to break. For a full explanation of what's going on
144772 gdb: handle calls to list command passing only a linespec condition
144779 'task 123' is passed to string_to_event_location in find a location
144786 has no actual location specification attached to it. The actual call
144801 spec_string we found earlier, and tries to converts this into a list
144804 However, parse_linespec is not intended to be passed a nullptr, for
144805 example, calling is_ada_operator will try to access through the
144807 within parse_linespec which don't expect to see a nullptr.
144809 When looking at how to fix this issue, I first considered having
144813 condition keyword", however, this is not going to work, at least, not
144814 without additional changes to GDB, it is valid to place a breakpoint
144823 So, next, I considered what would happen if I added a condition to an
144835 It is simpler, I think, to add a separate check into the list_command
144844 consistency, and added a few tests to cover this issue.
144854 missing. So we end up trying to parse the second command "," as a
144863 check for junk at the end of the line - after parsing (or failing to
144879 As we already have gdb.linespec/linespec.exp, I've renamed the test to
144885 script is in gdb.linespec/, I've updated the test to use a different
144893 will return a pointer to the '\0' at the end of
144899 the call to strchr.
144906 parse_linespec, to where TOKEN is defined.
144913 hit, but just makes the code a little safer.
144948 relocation value in order to avoid overflow complaints when acceptable.
144953 complain_on_overflow set to complain_overflow_dont. This is used in
144961 (or1k_elf_relocate_section): Use new howto instead of trying to
144973 deletion of the .c file in order to recreate the problem.
144975 It's better for the rule to fail such that the .c file is not updated.
144979 This fix just updates the Makefile rule to follow the way that the
144985 When trying to use 'record btrace' on a system that does not support it,
144995 gdb/python: fix gdb.Objfile.__repr__ () for dynamically compiled code
145000 returned NULL, causing PyString_FromFormat () to crash.
145009 const as appropriate. We thus have to update the protypes in gdb too.
145016 The RPC stub code expects to be calling a C function, not a C++
145030 definition with no symbols associated with it. It is used to verify
145032 to the weak symbol version.
145062 There is still one warning, in utils.c, but that's because some code
145071 Info symbol is expected to print the symbol table name of a symbol, since
145072 symbol lookup happens via the minimal symbol table. This name
145073 corresponds to the linkage name in the full symbol table.
145076 XXXX.NUMBER where XXXX is the symbol name and NUMBER a compiler
145087 This mangled name gets recognized by the Ada demangler/decoder and decoded as
145088 Ada to XXXX (setting the symbol language to Ada). This leads to output
145120 behavior as is and modify the test to reflect ifx and ifort mangled
145125 Import patch from mainline GCC to fix an infinite recusion in the Rust demangler.
145139 In trying to find a testcase for PR28827, I managed to hit a linker
145145 * elf64-ppc.c (ppc64_elf_size_stubs): Set section size to
145157 i386-fbsd-tdep.c and amd64-fbsd-tdep.c failed to build on my x86-64
145162 I'm checking in this patch to remove the unused variables.
145182 (ppc_size_one_stub): Set up stub_offset to value used in this
145196 section type back to ISEC's section type, effectively undoing
145209 The previous code triggered the following error on an i386 host:
145211 …ression cannot be narrowed from type 'ULONGEST' (aka 'unsigned long long') to 'size_t' (aka 'unsig…
145216 /git/gdb/gdb/ppc-sysv-tdep.c:1764:34: note: insert an explicit cast to silence this issue
145230 register maps to describe the layout of the general purpose registers
145243 cache the result for the future similar to the way the status of XSAVE
145251 Change these helper functions to return true if they did any work.
145256 Use a register map to describe the registers in mcontext_t as part of
145263 these unwinders do not attempt to supply those registers. The
145284 regcache_collect_regset is careful to zero-extend slots larger than a
145299 code in core dumps. As a workaround, a sysctl was used to fetch the
145300 default location of the signal code instead. The youngest affected
145303 require a separate unwinder once the FreeBSD arches are converted to
145316 Add Bruno Larsen to gdb/MAINTAINERS
145345 since I need to juggle with different whitespace settings for different
145350 require a plug-in [2]. And if you don't want to use it, then this file
145351 doesn't change anything to your life.
145356 .editorconfig files in project subdirectories to override settings.
145386 Using a symbol other than .TOC. with @tocbase is an extension to the
145387 ABI. It is never valid to use a symbol without a definition in the
145415 that stub sizing is only affected by addresses external to the stub
145436 * coffgen.c (coff_write_alien_symbol): Init dummy to zeros.
145475 This leads to a GDB crash (when built with ASan, otherwise probably
145476 garbage results), since it tries to read just before (to the left, in
145529 0x6020000c52af is located 1 bytes to the left of 8-byte region [0x6020000c52b0,0x6020000c52b8)
145563 useful for GDB to work around this. I did the obvious simple thing, if
145565 added a producer check to only apply this fixup for GCC 11. The idea is
145568 they did mean 0 or some other value. So I wouldn't want to apply the
145577 Fedora Rawhide is now using gcc-12.0. As part of updating to the
145579 which lacks a .data section. This causes gdb to fail in the following
145586 A problem internal to GDB has been detected,
145592 (Obviously, in order to obtain it, I used a GDB which has been patched
145619 The function 'relocate_address' in gdb/stap-probe.c attempts to do
145637 relocate_address() is obtaining the section offset in order to compute
145642 those ABIs, it is vital that this and other relocation code use the
145645 In stap_probe::get_relocated_address, the address to which to add the
145650 /* The address where the probe is inserted, relative to
145654 (Thanks to Tom Tromey for this observation.)
145657 SECT_OFF_DATA is wrong. This relocation code should have been using
145659 case, I've adjusted the stap-probe.c relocation code accordingly.
145662 in gdb/dtrace-probe.c, so I've updated that code as well. The same
145663 reasoning presented above applies to this case too.
145674 In remote_target::remote_btrace_maybe_reopen, we switch to the currently
145675 iterated thread in order to set inferior_ptid for a subsequent xfer.
145678 call to clarify why we need to switch threads.
145683 The enable_btrace target method takes a ptid_t to identify the thread on
145686 Change this to thread_info * to avoid translating back and forth between
145693 set_general_thread() to set the thread from which to transfer the btrace
145698 remote general thread to inferior_ptid, overwriting what
145701 In one case, this led to inferior_ptid being null_ptid when we tried to
145705 This, in turn, led to find_inferior_pid() asserting when we iterated over
145708 of the new thread to check whether it was already being recorded.
145726 Rename it to record_btrace_on_new_thread() to make its role more clear.
145749 utf-8 characters would cause GDB to print a Python exception, and then
145753 /* Source code here, without styling... */
145765 then everything is fine. So why is there an error when we try to
145772 call, but for Python 3 the input is assumed to be a uft-8 encoding
145778 My first thought when looking at this was to spot when the
145784 around the Python pygments module, which I use to apply syntax
145786 is quite happy to syntax highlight my source file that contains non
145794 We could try and make GDB smarter when it comes to converting C
145795 strings into Python Unicode objects; this would probably require us to
145817 This temporarily moves the implementation of this method to utils.c.
145818 This will change once the remaining patches to untangle the pager have
145824 This changes all existing calls to wrap_here to call the method on the
145832 output streams to be relatively self-contained objects, and having a
145833 global function like this is counter to that goal. Also, existing
145834 code freely mixes writes to some parameterized stream with calls to
145839 wrap_here method to ui_file and changes ui_out implementations to use
145844 Convert wrap_here to use integer parameter
145845 I think it only really makes sense to call wrap_here with an argument
145846 consisting solely of spaces. Given this, it seemed better to me that
145853 This commit attempts to improve the help text that is generated for
145854 gdb.Parameter objects when the user fails to provide their own
145872 return "Test Parameter has been set to " + val
145874 def __init__ (self, name):
145875 super (Param_All, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
145895 return "Test Parameter has been set to " + val
145897 def __init__ (self, name):
145898 super (Param_None, self).__init__ (name, gdb.COMMAND_DATA, gdb.PARAM_BOOLEAN)
145917 That kind of sucks, we say it's undocumented, then proceed to print
145988 Back when gdb.Parameter was first added to GDB, we didn't provide a
145991 show_doc string to create a sentence that would display the current
145994 However, when we added support for the get_show_string method to
145995 gdb.Parameter, there was an attempt to maintain backward compatibility
145998 close to what deprecated_show_value_hack does, and the results are
146019 I've updated the existing gdb.python/py-parameter.exp test to cover
146022 Finally, I've updated the documentation to (I hope) make it clearer
146028 Add a new function gdb.history_count to the Python api, this function
146031 This is useful if you want to pull items from the history by their
146032 absolute number, for example, if you wanted to show a complete history
146034 history list by trying to fetch the items, and then catching the
146046 gdb: convert maintenance target-async and target-non-stop settings to callbacks
146087 The simple fix is to reference the array, `MEMS' as the destination of the copy.
146093 # with '#' will be kept; you may remove them yourself if you want to.
146100 # (use "git push" to publish your local commits)
146102 # Changes to be committed:
146109 A common pattern for string_file is to want to move out the internal
146111 to return. It is the reason why string_file::string returns a non-const
146112 reference, as explained in the comment. I think it would make sense to
146118 resulting string was copied. With the new version, it's not possible to
146119 forget to move.
146125 Add a way to temporarily set a gdb parameter from Python
146126 It's sometimes useful to temporarily set some gdb parameter from
146129 reasonable to add a helper function for this situation.
146132 manager which temporarily sets some parameter to a specified value.
146139 This also adds a simple function to set a parameter,
146150 to crash gdb using parameters from Python:
146154 (This is related to PR python/12188, though this patch isn't going to
146158 "endian" parameter is initialized to NULL. However, that's not a
146162 variable must have a value that is "==" (not just strcmp-equal) to one
146167 added some assertions to add_setshow_enum_cmd to try to catch other
146171 the calls to add_setshow_enum_cmd to ensure that they were all
146182 language when "entering" Python code. This has some undesirable
146185 First, there is code like this:
146190 assigned. This can cause crashes in some cases -- I've added one to
146195 Python code cannot affect the current language for its own purposes.
146196 It's reasonable to want to write code like this:
146203 entry. I've added a test to show this as well.
146205 This patch changes gdb to try to avoid capturing the current values.
146214 Make bfd.stamp depend on source bfd.texi to avoid regenerating
146241 gdb/testsuite: Ensure constant test name in gdb.base/break-interp.exp
146242 When running the testsuite, I have lines similar to the following in the
146253 test, which adds noise to a diff between two .sum files.
146255 This patch changes to test name to "p /x $pc" in order to have constant
146256 test name.
146268 Always print the "host libthread-db" message to stdout
146269 linux-thread-db.c has a bit of unusual code that unconditionally
146270 prints a message, but decides whether to print to gdb_stdout or
146271 gdb_stdlog based on a debug flag. It seems better to me to simply
146273 conditionally pass gdb_stdout to one of the f*_unfiltered functions.
146278 In an earlier version of the pager rewrite series, it was important to
146279 audit unfiltered output calls to see which were truly necessary.
146282 to change calls to avoid explicitly passing gdb_stdout. That is,
146284 the code ought to use plain printf_unfiltered instead.
146291 Sent timing stats to gdb_stdlog
146292 This changes the time / space / symtab per-command statistics code to
146293 send its output to gdb_stdlog rather than gdb_stdout. This seems
146294 slightly more correct to me.
146296 Send some error output to gdb_stderr
146297 This changes some code to send some error messages to gdb_stderr
146316 by Simon in d0ac1c44885daf68f631befa37e ("Bump to autoconf 2.69 and
146322 ("Bump to autoconf 2.69 and automake 1.15.1"). So delete it here.
146370 Simplify some Rust expression-evaluation code
146373 patch simplifies this code by removing the extra layer.
146396 Rename bfdlib_LTLIBRARIES and bfdinclude_HEADERS to lib_LTLIBRARIES and
146397 include_HEADERS to fix the missing installed library and header files in
146407 * Makefile.am (bfdlib_LTLIBRARIES): Renamed to ...
146409 (bfdinclude_HEADERS): Renamed to ...
146417 Regenerate Makefile.in files with the unmodified automake 1.15.1 to
146454 Regenerate configure files with the unmodified autoconf 2.69 to remove
146496 bfd: rename core.texi to corefile.texi
146497 This is a generated file name from a correspondingly named C file.
146498 Rename it to avoid unique build rules since there's no difference
146499 to the generated manual.
146506 Allow inferring tmp_prefix from the dll name from a def file.
146519 Change version number to 2.38.50 and regenerate files
146528 The alignment may be removed in linker. We need to create new frag after
146529 alignment to prevent the assembler from computing static offsets.
146546 870 | gdb_argv argv (name);
146559 I noticed two places in the docs where we appear to be missing @r.
146560 makeinfo seems to do the correct things despite these being
146562 output), but it doesn't hurt to have the @r in place.
146573 This was forgotten when gdb_regex was moved from gdb to gdbsupport.
146584 We found a case where --gc-sections can cause gdb to set an invalid
146588 The code in lnp_state_machine::check_line_address is intended to
146592 It seems to me that if a CU is empty like this, then it is ok to
146644 is a proper C++ class. Rather than trying to mimic the old walker then,
146654 a parameter to the walker so that it does not have to be passed across
146657 Use per-dimension element count tracking, needed to terminate processing
146661 to terminate processing or lone `(...)' would be printed. Additionally
146663 to print `...' by hand, because `continue_walking' won't print it at the
146714 Similarly to the local GOT case.
146737 test in the wrong place. check_relocs is too early to know whether a
146750 My earlier patch to move gdb_argv broke the remote-sim.c build. This
146759 Change remote_debug to be a bool, which is trivial in this case.
146789 Remove this concept of level. If we ever want to re-introduce it, I
146792 Change debug_threads to bool and adjust some users that were treating it
146802 code by removing the redundant ops structures.
146804 Move "catch exec" to a new file
146805 The "catch exec" code is reasonably self-contained, and so this patch
146809 Move "catch fork" to a new file
146810 The "catch fork" code is reasonably self-contained, and so this patch
146816 This patch simplifies the code by unifying these two cases.
146818 Move gdb_regex to gdbsupport
146819 This moves the gdb_regex convenience class to gdbsupport.
146823 hash table. This patch consolidates these and moves them to
146826 Move gdb obstack code to gdbsupport
146827 This moves the gdb-specific obstack code -- both extensions like
146828 obconcat and obstack_strdup, and things like auto_obstack -- to
146831 Move gdb_argv to gdbsupport
146832 This moves the gdb_argv class to a new header in gdbsupport.
146840 This changes event_location to use std::string, removing some manual
146845 However, it's better to use subclassing, as this makes the code
146847 cleanups to avoid manual memory management and copies.
146851 cleans up the code by itself, IMO, but also enables further cleanups
146855 This changes explicit_to_string_internal to use 'bool' rather than
146860 switching to unique_xmalloc_ptr. One function is only used in
146861 location.c, so it is made static. And, another function is changed to
146894 to correctly show the user how the connection was established. And in
146901 removed in gdb/serial.c. The string passed to the pipe_ops
146907 store the full string (including the `|`) in the serial::name member
146910 For pipe based serial connections, this name is only used for
146912 gdb/ser-pipe.c), and in pipe_open, we now know to skip over the `|`.
146915 accurately reflects the commands used to start a target, thus making
146916 it easier for a user to understand what is going on.
146921 In the current code, if decimal floating point is not supported for
146962 function has side-effects and we want to make sure both calls are made,
146963 assign to temporary variables before evaluating the `&&`.
146977 that appears to be the case for readelf. This does the same for
146983 (dump_dwarf): Add is_mainfile parameter and pass to
146991 Makes it a little less likely for someone to break their thin archives.
147007 PowerPC64 takes a more traditional approach to DT_RELR than x86. Count
147024 (dec_dynrel_count): Change r_info param to reloc pointer. Update
147077 gdb/infrun: rename variable and move to more specific scope
147078 Move the "started" variable to the scope it's needed, and rename it to
147087 wasteful in terms of space. Switch boolean fields to "bool" (also when
147090 well to limit the number of padding holes.
147093 There's a single use on a generally infrequently taken code path. Put
147096 x86: drop most Intel syntax register name arrays
147103 set that uniformly to AT&T names, compensating by emitting the register
147104 name via oappend_maybe_intel().
147107 Now that the code is intended to be largely thread-safe, we'd better not
147118 we make is going to be undone at the next re-generation anyway).
147140 an update to libiberty/testsuite/d-demangle-expected, which updates a
147141 test for the exact same mangled name:
147152 Note: it's not really useful to have all these D demangling tests in the
147154 consider removing them, but we first need to make sure that everything
147184 other value to make it sane.
147195 meantime. Note that this also happens to address the prior lack of
147201 still relevant to note that OP_XMM() has special treatment of e.g.
147207 for modes which occur for insns allowing for EVEX.W to be set (noticed
147219 and %XD more to eliminate a fair number of table entries.
147227 EXq; switch to EXq there for consistency (the two differ only for
147239 While there also switch to using oappend() in 'XH' macro processing.
147251 * testsuite/ld-i386/pr20830.d: Pass $NO_DT_RELR_LDFLAGS to ld.
147264 Reapply libiberty: Pass --plugin to AR and RANLIB
147265 Reapply the patch to detect GCC LTO plugin used for libiberty build to
147280 and align the end of the RELRO segment to the page size:
147299 Because the end of the RELRO segment is always aligned to the page size
147352 + with digits in name.
147382 + * configure.ac: Allow ETAGS variable to be overridden.
147386 + * make-temp-file.c (try_dir): Check to see if the dir
147393 + to be installed.
147400 + * testsuite/d-demangle-expected: New tests to cover anonymous
147449 + (dlang_template_args): Pass 'info' to dlang_value.
147461 + Cast the first argument to set_32 as needed.
147467 + Arrange to swap the LTO index tables where needed.
147473 This commit aims to not make use of -Wmissing-prototypes when
147491 ccache, this check doesn't work due to a long standing ccache issue:
147501 There have been two previous attempts to fix this that I'm aware of.
147506 In this attempt, instead of just relying on a compile to check if a
147507 flag is valid, the proposal was to both compile and link. As linking
147513 This approach was rejected, and the suggestion was to only add the
147523 strict, is gcc check. As such, GCC is set to 'yes' for clang, which
147525 point of the original commit was to add this flag for clang, so
147530 GDB_COMPILER_TYPE to either 'gcc', 'clang', or 'unknown'. In future
147531 the list of values might be extended to cover other compilers, if this
147534 I've then modified gdbsupport/warning.m4 to only add the problematic
147538 gcc no longer attempts to use the -Wmissing-prototypes flag, while
147539 clang continues to use it.
147545 gdb: add some extra debug information to attach_command
147546 While working on another patch I wanted to add some extra debug
147547 information to the attach_command function. This required me to add a
147548 new function to convert the thread_info::state variable to a string.
147550 The new debug might be useful to others, and the state to string
147612 It might seem to work, but only if '/' is a start of comment char.
147620 Move DT_RELR tag setting to elflink.c
147621 This makes the code setting DT_RELR tags generally available. Many
147622 targets will be able to use the defaults. Those that can't should set
147624 tag code in bfd_elf_final_link.
147634 This is mainly to squash reports of "my fuzzed object made ld hang".
147642 The original test code has no problem. On an architecture where
147693 to a HW bug. The support is fixed in Power 9 processor revision 2.3. This
147694 patch add a test to lib/gdb.exp for Power to determine if the processor
147696 watchpoints the proceedure skip_hw_watchpoint_tests will return 1 to
147715 ERROR: tcl error sourcing /path/to/gdb/testsuite/gdb.python/py-events.exp.
147719 (file "/path/to/gdb/testsuite/gdb.python/py-events.exp" line 103)
147721 "source /path/to/gdb/testsuite/gdb.python/py-events.exp"
147724 "uplevel #0 source /path/to/gdb/testsuite/gdb.python/py-events.exp"
147730 1. The process_id variable is not initialized to a default value.
147732 2. The test attempts to find the PID of the current thread, but the
147736 3. The test uses "info threads" to find the current thread PID.
147752 It seems to me that this text could be a bit clearer; and furthermore
147764 When DT_RELR is enabled, to avoid random run-time crash with older glibc
147821 logic in relocate_section to determine if a relative relocation should
147828 backend function to size the DT_RELR section which will compute the
147829 DT_RELR section size and tell ldelf_map_segments to layout sections
147832 a backend function to finish the DT_RELR section.
147857 tags to DT_RELR, DT_RELRSZ and for compact relative relocation.
147909 * testsuite/ld-elf/shared.exp: Pass $NO_DT_RELR_LDFLAGS to
147913 * testsuite/ld-i386/ibt-plt-2a.d: Pass $NO_DT_RELR_LDFLAGS to
147950 Pass $NO_DT_RELR_LDFLAGS to linker.
147951 * testsuite/ld-x86-64/x86-64.exp: Pass $NO_DT_RELR_LDFLAGS to
147959 size before mapping sections to segments and set the final DT_RELR section
147976 Add a -z pack-relative-relocs option to enable DT_RELR and create a
147983 --pack-dyn-relocs=relr, to implement a glibc binary lockout mechanism
147984 with a special glibc version symbol, to avoid random crashes of DT_RELR
148016 elf: Pass need_layout to _bfd_elf_map_sections_to_segments
148018 symbols addresses can be determined. Update ldelf_map_segments to pass
148019 need_layout to _bfd_elf_map_sections_to_segments which will size DT_RELR
148020 section and set need_layout to true if the DT_RELR section size is changed.
148027 argument to indicate if section layout needs update.
148028 (assign_file_positions_for_load_sections): Pass NULL to
148031 NULL to _bfd_elf_map_sections_to_segments.
148035 * ldelfgen.c (ldelf_map_segments): Pass &need_layout to
148040 elf: Add .relr.dyn to special_sections_r
148046 In a later commit I want to address an issue with the Python pygments
148047 based code styling solution. As this approach is only used when the
148049 area can be annoying, as it requires GDB to be rebuilt with use of GNU
148057 these commands can be used to disable use of the GNU Source Highlight
148058 library, allowing me, in a later commit, to easily test bugs that
148063 would need to adjust. We can always convert the maintenance command
148064 to a general command later if needed.
148085 source_cache::get_plain_source_lines to open the file and read its
148100 Now, the offsets data is going to be smaller than the cached file
148106 So, given the current code does the work of reloading the offset data
148107 anyway, we may as well save memory by capping m_offset_cache to
148121 After flushing GDB is forced to reread source files the next time any
148122 source lines are to be displayed.
148137 gdb: rename lin-lwp to linux-nat in set/show debug
148138 Rename 'set debug lin-lwp' to 'set debug linux-nat' and 'show debug
148139 lin-lwp' to 'show debug linux-nat'.
148141 I've updated the documentation and help text to match, as well as
148142 making it clear that the debug that is coming out relates to all
148150 just for lwp related debug, so the new name seems to make more sense.
148183 ld/testsuite: prepare ld-elfvsb to support XCOFF
148185 ld-elfvsb is renamed ld-vsb and a suffix is added to files targeting only
148191 * testsuite/ld-elfvsb/hidden0.d: move to ld-vsb and rename with
148203 In order to ease port of GNU assembly code and especially ld testsuite,
148204 this patch allows XCOFF to accept the usual GNU syntax for visibility.
148222 usual GNU syntax. But we want to provide compatibility with AIX
148231 vstamp field to 2.
148241 * testsuite/gas/all/cofftag.d: Adjust to new n_type size
148258 * testsuite/ld-pe/pr19803.d: Adjust to new n_type size
148269 testsuites for "CU:" to catch target-specific occurrences, but I
148270 noticed none. I chose to remove "CU:" on the objdump tests instead of
148271 changing options to get the wide format, so as to keep the name of the
148272 test consistent with actual options; but added it to the readelf
148279 string length of the directory, instead emit the "CU: dir/name"
148285 * testsuite/gas/elf/dwarf-5-loc0.d: Add -W to readelf options.
148294 here. Move sanity checks to reverse copying code.
148303 to fix the wrong comment.
148310 char, this will change the value due to sign extension.
148315 Make the type of string[] as unsigned char to fix the following six failed
148347 ld * pe-dll.c (make_head): Prefix the symbol name with the dll name.
148355 * dlltool.c (main): If a prefix has not been provided, attempt to
148356 use a deterministic one based upon the dll name.
148365 I had cause to regenerate gdbsupport/Makefile.in, and noticed some
148371 The Makefile.in contains two date ranges. The first range appears to
148373 range runs up to 2017 only, when automake 1.15.1 was released.
148376 generated file, and so, now runs up to 2022.
148391 In ld, it simply ensures that internal TLS symbols are added to the
148398 * coff-rs6000.c (xcoff_howto_table): Fix name of R_TLSML.
148402 * coff64-rs6000.c (xcoff64_howto_table): Fix name of R_TLSML.
148405 (xcoff_link_add_symbols): Add C_HIDEXT TLS symbols to the linker
148433 gdb: add Tiezhu Yang to MAINTAINERS
148437 Reduce use of unfiltered output in Darwin code
148438 The Darwin code uses unfiltered output liberally. This patch changes
148439 this code to send some output to gdb_stdlog (in some cases via the use
148440 of debug_prefixed_printf_cond_nofunc), or to gdb_stderr, or to simply
148441 switch to filtered output.
148443 Note that I didn't switch inferior_debug to use
148448 v2 of this patch uses warning rather than prints to gdb_stderr, and
148469 The problem appears to be in gnu_nat_target::wait.
148471 We always set inferior_ptid to null_ptid before calling target_wait,
148472 this has been the case since the multi-target changes were made to GDB
148497 I've not run the full testsuite on GNU/Hurd as there appear to be lots
148503 Add explicit check for nullptr to target_announce_attach
148509 Add _sigsys info to siginfo struct
148512 _sigsys, making it easier for developers to debug seccomp failures.
148521 to off or on.
148525 PASS: gdb.base/arrayidx.exp: set print array-indexes to off
148527 PASS: gdb.base/arrayidx.exp: set print array-indexes to on
148532 PASS: gdb.base/arrayidx.exp: set print array-indexes to off
148535 PASS: gdb.base/arrayidx.exp: set print array-indexes to on
148556 For x86 targets, the old check_relocs is renamed to scan_relocs and a
148557 new check_relocs is added to chek input sections and create dynamic
148558 relocation sections so that they will be mapped to output sections.
148571 (elf_i386_check_relocs): Renamed to ...
148579 (elf_x86_64_check_relocs): Renamed to ...
148638 Testeed on x86_64-linux both in a setup where the test fails to prepare
148639 and in a setup where the test fails to setup.
148649 This is due to an erroneous explicit test name. This explicit test name
148650 also happens to be useless (at least it would have been if it was
148652 test name and let the command be used as default test name. Also remove
148653 explicit test name at another location in the file since it also just
148667 This test runs the same sequence of operations twice. Refactor the code
148668 by running both of those sequences within a foreach_with_prefix block to
148694 Fix by adjusting the duplicated test name.
148716 DUPLICATE: gdb.base/nested-subp2.exp: continue to the STOP marker
148720 Fix by using with_test_prefix to differentiate the test that are
148735 This is due to the fact that a pattern was probably copy/pasted to
148736 re-use the logic while not adjusting the test names to avoid the
148739 Fix by removing the redundant tests ('set confirm off' only needs to be
148764 DUPLICATE: gdb.base/unload.exp: continuing to unloaded libfile
148766 Fix by adjusting the test name.
148788 DUPLICATE: gdb.base/funcargs.exp: run to call2a
148790 Fix by using proc_with_prefix instead on plain proc to create logical
148811 - Replace an explicit GDB restart sequence with a call to clean_restart.
148823 DUPLICATE: gdb.base/set-cwd.exp: test_cwd_reset: continue to breakpoint: break-here
148852 Fix by adjusting the prefix given to the second 'simple' call to
148866 Fix by giving a name to the test cases.
148878 Fix by moving the first 'set logging redirect off' to the end of the
148879 previous [with_test_prefix] test block. The statement's purpose is to
148888 There is a expect support library in the source tree designed to help
148892 (usually indirectly via test_gdb_complete_unique) to test that a given
148894 ways to do the completion: using tab-completion, or using the
148895 'complete' command. To do this, calls to two dedicated functions are
148896 performed. If we omit few details, we can consider that a call to
148900 is equivalent to the two following calls:
148918 is almost equivalent to (again, omitting few details and arguments):
148934 which, if we do the substitution introduced above is equivalent to:
148965 Fix by adjusting the problematic test name.
148978 various decimal floating point types with a loop to programmatically
148979 generate all the combinations. This removes the need to eyeball for all
148980 suffixes, which lead to the original duplication.
149028 Refactor slightly this test to run the various configurations under
149030 that the forgotten custom test name cannot happen.
149050 Fix the 'continue' DUPLICATE by giving a phony name to the second
149065 Fix by giving explicit names to the two tests that use the same command.
149105 Fix by giving explicit names to the 'continue' commands that cause the
149118 This is due to the fact that the test restarts GDB twice and each time
149119 sets the basenames-may-differ setting. This patch proposes to fix this
149124 This patch also perform some minor refactorings to improve visibility.
149136 This is due to the fact that multiple successive instances of
149137 gdb_test_multiple use 'pass $cmd', but one of them forgets to reset $cmd
149138 to a new test name.
149174 This is due to an explicit test name repeated across multiple tests.
149199 RISC-V: update docs to reflect privileged spec v1.9 has been dropped
149209 * configure.ac: Remove reference to priv spec 1.9.
149210 * po/fr.po: Same.
149211 * po/ru.po: Same.
149212 * po/uk.po: Same.
149219 documentation has not been updated. Add 1.12 to the relevant
149226 * config/tc-riscv.c: Add 1.12 to the usage message.
149228 * configure.ac: Add 1.12 to the help/usage message.
149229 * po/fr.po: Same.
149230 * po/ru.po: Same.
149231 * po/uk.po: Same.
149248 Building on the previous commit, this makes use of a trailing @ to
149252 I have also wrapped keyword and argument name pairs in @w{...} to
149255 possible. This makes the @deffn lines much nicer to read in the
149263 @deffn {Scheme Procedure} name arg1 arg2 arg3
149267 @deffn {Scheme Procedure} (name arg1 arg2 arg3)
149271 manual. I also checked the 'info guile' info page to see how they
149275 '(name', and so they are grouped in the '(' section of the index,
149279 make-parameter to use the first style.
149283 in this commit. I have made use of a trailing '@' to split the deffn
149285 makes no difference to how the final document looks.
149287 Finally, our current style for keyword arguments, appears to be:
149289 [#:keyword-name argument-name]
149292 to use:
149294 [#:keyword-name]
149296 which seems just as good to me. But I don't propose to change
149298 will place a line break between the keyword-name and the
149299 argument-name, for example, the pdf of make-command is:
149301 make-command name [#:invoke invoke] [#:command-class
149307 changing in this commit, I have made use of @w{...} to prevent line
149308 breaks between the keyword-name and the argument-name. Now the pdf
149311 make-command name [#:invoke invoke]
149320 …Revert previous delta to debug.c. Replace with patch to reject indirect types that point to indir…
149323 (debug_get_real_type): Reject indirect types that point to
149330 RISC-V: Updated the default ISA spec to 20191213.
149331 Update the default ISA spec from 2.2 to 20191213 will change the default
149332 version of i from 2.0 to 2.1. Since zicsr and zifencei are separated
149333 from i 2.1, users need to add them in the architecture string if they need
149342 * config/tc-riscv.c (DEFAULT_RISCV_ISA_SPEC): Updated to 20191213.
149343 * testsuite/gas/riscv/csr-version-1p10.d: Added zicsr to -march since
149348 * testsuite/gas/riscv/option-arch-03.d: Updated i's version to 2.1.
149351 * testsuite/ld-riscv-elf/call-relax.d: Added zicsr to -march since
149353 * testsuite/ld-riscv-elf/attr-merge-arch-01.d: Updated i's version to 2.1.
149380 * ldelfgen.c (ldelf_map_segments): Add the missing newline to
149413 did that, and those targets want to continue printing differently,
149414 this new function could be converted to a target method.)
149416 It seems to me that the differences aren't very big, and in some cases
149423 then changes the remaining ports to use this function.
149429 target_announce_detach. Then it converts existing targets to use
149437 function to each prefix command.
149442 If we instead switch to using add_setshow_prefix_cmd then we can
149466 A warning in windows-nat.c can be converted to use the warning
149467 function. As a side effect, this arranges for the output to be sent
149468 to gdb_stderr.
149472 Clean up some dead code in windows-tdep.c
149475 modified the code so that some "goto"s and explicit memory management
149480 code allocates a buffer that is 1 byte too long -- but then it fails
149481 to set this byte to 0.
149492 ("Consistently Use ui_file parameter to show callbacks").
149494 This patch changes language_info to pass a ui_file.
149496 It took a while to write the test -- this function is only called when
149504 includes full paths to the source files.
149506 FAIL: gdb.base/langs.exp: up to foo in langs.exp
149507 FAIL: gdb.base/langs.exp: up to cppsub_ in langs.exp
149508 FAIL: gdb.base/langs.exp: up to fsub in langs.exp
149516 check to PCLMULQDQ, AES, and GFNI insns"), base the check on opcode
149526 it is possible to shorten a number of templates by specifying C directly
149535 Neither non-64-bit code nor uses with a non-zero offset from a symbol
149536 should be converted to PLT32, as an eventual PLT entry would not express
149542 I just realized that I forgot to update the year before pushing the
149553 sim: ppc: migrate to standard uintXX_t types
149554 Drop the sim-specific unsignedXX types and move to the standard uintXX_t
149557 sim: common: migrate to standard uintXX_t types
149558 Drop the sim-specific unsignedXX types and move to the standard uintXX_t
149561 sim: igen: migrate to standard uintXX_t types
149562 Move off the custom local 64-bit types and to the standard uintXX_t
149565 sim: mips: migrate to standard uintXX_t types
149566 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149569 sim: cris: migrate to standard uintXX_t types
149570 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149573 sim: iq2000: migrate to standard uintXX_t types
149574 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149577 sim: synacor: migrate to standard uintXX_t types
149578 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149581 sim: msp430: migrate to standard uintXX_t types
149582 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149585 sim: riscv: migrate to standard uintXX_t types
149586 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149589 sim: bfin: migrate to standard uintXX_t types
149590 Move off the sim-specific unsignedXX types and to the standard uintXX_t
149593 sim: testsuite: migrate to standard uintXX_t types
149594 This old code setup its own uintXX types, but since we require C11
149597 sim: erc32: migrate to standard uintXX_t types
149601 sim: mn10300: migrate to standard uintXX_t types
149605 sim: v850: migrate to standard uintXX_t types
149611 sim: m68hc11: migrate to standard uintXX_t types
149619 sim: d10v: migrate to standard uintXX_t types
149627 sim: cr16: migrate to standard uintXX_t types
149640 Add elf_x86_allocate_local_got_info to allocate x86 GOT info for local
149664 The actual objdump and readelf option name is =frames-interp, not
149673 Change riscv_return_value to use RETURN_VALUE_ABI_PRESERVES_ADDRESS
149674 Internally, AdaCore has a test that is equivalent to (really a direct
149678 Joel tracked this down to riscv_return_value returning
149690 Most of the expression-dumping code uses filtered output, but a few
149694 to dump_prefix_expression pass in gdb_stdlog. However, in the long
149695 run it's easier to audit the code if the number of uses of _unfiltered
149702 default_terminal_info, to use filtered output. Other implementations
149711 output. In a few cases, I changed the output to use gdb_stderr as
149717 unfiltered output. It's better to use filtered output by default, so
149721 This changes btrace.c and record-btrace.c to use filtered output in
149725 There are several commands that may optionally send their output to a
149727 patch changes these commands to use filtered output. The rationale
149728 here is that, when printing to gdb_stdout, filtering is appropriate --
149730 to a file, paging will not happen anyway (it only happens when the
149735 This changes the kill command to use filtered output. I split this
149737 changed the function to call bfd_cache_close_all a bit earlier, in
149743 Many otherwise ordinary commands choose to use unfiltered output
149745 this changes many such commands to use filtered output instead.
149747 Note that complete_command is not touched due to a comment there
149748 explaining why unfiltered output is believed to be used.
149753 Change language_info to use filtered output. This is ok because the
149758 This changes the implementations of the target files_info method to
149761 changes this command to use filtered output as well.
149765 to invoke this command interactively, it's probably better for it to
149769 This changes gdbarch dumping to use filtered output. This seems a bit
149770 better to me, both on the principle that this is an ordinary command,
149771 and because the output can be voluminous, so it may be nice to stop in
149779 unlikely to ever be used) and so can be removed. And, the interface
149781 implementation directly to ui_file.
149784 this code.
149791 A change to BFD caused a gdb regression when using the Ada "catch
149799 This patch implements Alan's proposed fix, namely to use VERSYM_HIDDEN
149800 rather than the name when deciding to install a version-less symbol.
149802 The internal test case is identical to the catch_ex_std.exp that is
149804 fail on x86-64 Linux, though. It's possible that maybe I'd have to
149805 update the system linker first, but I didn't want to try that.
149813 it changed the inferior_thread attribute to contain the inferior instead
149824 streams to redirect.
149840 to me to print nothing at all.
149843 small changes in this same module: it adds a header guard to
149850 The patch to fix paging with redirection caused a regression in the
149862 that it is ok to buffer the output. However, in this setup, it isn't
149872 on. However, in the meantime, adding the old gdb_stdout check back to
149879 elf: Set p_align to the minimum page size if possible
149886 does not have to be reflected in the p_align value. If running on a 64K
149890 The glibc loader has been fixed to honor p_align:
149894 similar to kernel:
149902 This means that on 4K kernels, we will start to do extra work for 64K
149907 due to this glibc bug:
149914 1. Set p_align to the minimum page size while laying out segments aligning
149915 to the maximum page size or section alignment. The run-time loader can
149916 align segments to the minimum page size or above, depending on system page
149918 2. If -z max-page-size=NNN is used, p_align will be set to the maximum
149921 don't set p_align to the minimum page size.
149923 set p_align to the section alignment.
149925 p_align may be set to the minimum page size while segments are aligned
149926 to the maximum page size. In this case, the input p_align will be
149927 ignored and the maximum page size will be used to align the ouput
149929 6. Update linker to disallow the common page size > the maximum page size.
149930 7. Update linker to avoid the common page size > the maximum page size.
149931 8. Adjust pru_irq_map-1.d to expect p_align == sh_addralign:
149956 to ELF_MINPAGESIZE.
149964 to the default p_align value while laying out segments aligning
149965 to maximum page size or section alignment.
149967 (copy_elf_program_header): Call elf_is_p_align_valid to determine
149969 * elfxx-target.h (ELF_P_ALIGN): New. Default to 0.
149971 * elfxx-x86.h (ELF_P_ALIGN): New. Set to ELF_MINPAGESIZE.
149987 * testsuite/ld-elf/elf.exp: Pass -z max-page-size=0x4000 to
149988 linker to build mbind2a and mbind2b.
149996 * testsuite/ld-pru/pru_irq_map-1.d: Append 1 to name. Adjust
149998 * testsuite/ld-pru/pru_irq_map-2.d: Append 2 to name.
150004 Some targets restrict symbol addresses in .text to instruction
150008 * testsuite/gas/all/quoted-sym-names.d: Adjust to suit.
150026 Use 0x%v, instead of bfd_sprintf_vma, to report relative relocations.
150031 to
150058 for struct bfd_link_info. Call linker callback when failing to
150060 (_bfd_generic_get_elt_at_index): Pass NULL to
150064 argument for struct bfd_link_info and pass it to
150066 (alpha_ecoff_openr_next_archived_file): Pass NULL to
150070 * ecoff.c (ecoff_link_add_archive_symbols): Pass info to
150072 * elflink.c (elf_link_is_defined_archive_symbol): info to
150078 struct bfd_link_info to get_elt_at_filepos.
150079 * linker.c (_bfd_generic_link_add_archive_symbols): Pass info to
150103 Fix by adjusting the testcase to a account for the possible trailing
150112 Add ATTRIBUTE_UNUSED to load_build_id_debug_file()'s main_filename parameter.
150116 gdb: don't pass nullptr to sigwait
150128 A call to sigwait was introduced that passes nullptr as the second
150137 HAVE_SIGTIMEDWAIT' introduced by the above patch to '#if 0', and
150140 I propose that we stop passing nullptr as the second argument to
150144 For testing, I (locally) made the change to the #ifdef I mentioned
150161 gdb/gdbsupport/gdb_locale.h:28:28: error: cannot convert ‘char*’ to ‘ui_file*’
150180 non-negative to avoid an internal error. This case wasn't covered by
150199 backslash in the resulting symbol name) and \" (meaning an embedded
150200 double quote in the resulting symbol name) for now, warning about any
150204 strings to form a symbol name. This may become useful if going forward
150205 we would want to support \<octal> or \x<hex> sequences, where closing
150206 and re-opening quotes can be useful to delimit such sequences.
150211 the .section directive additionally needs attributes specified, to avoid
150221 Before commit 3b6acaee895 "Update more calls to add_prefix_cmd" we had the
150231 Future logs will be written to gdb.txt.
150232 Logs will be appended to the log file.
150237 Currently logging to "gdb.txt".
150238 Logs will be appended to the log file.
150249 overwrite: Whether logging overwrites or appends to the log file is off.
150255 overwrite: Whether logging overwrites or appends to the log file is off.
150262 The new text seems to have been chosen to match the set/show help texts:
150272 Show whether logging overwrites or appends to the log file.
150281 Debug output will go to both the screen and the log file.
150284 logging overwrite: off: Logging appends to the log file.
150285 logging redirect: off: Output will go to both the screen and the log file.
150295 gdbtypes.c to use printf rather than printf_filtered. This patch
150300 machines. Tom tracked this down to the "width" setting. Since
150301 there's no need in the test to change the width, it seems simplest to
150304 purports to.
150337 updates copying.awk to backport the appropriate fix. This way, if
150355 out */po/*.pot which we don't update frequently.
150371 common sim code.
150379 it to think the files lack copyright. Trim them down so the script
150399 performed by running gdb/copyright.py again, to make sure
150408 copyright.py script to miss this file during its automated
150415 gdb/copyright.py: Add update-netbsd.sh to MULTIPLE_COPYRIGHT_HEADERS
150416 Add gdb/syscalls/update-netbsd.sh to the reminder printed
150419 scripts contains some inline code which includes a copyright
150480 The idea of this patch is to make it easy to see which targets (just
150491 ld-x86-64: Pass options to linker with "-Wl,"
150492 * testsuite/ld-x86-64/x86-64.exp: Pass options to linker with
150509 * elf32-i386.c (check_relocs_failed): Moved to ...
150517 (elf_i386_check_relocs): Pass false to NEED_DYNAMIC_RELOCATION_P.
150518 (elf_i386_relocate_section): Pass false to
150523 (elf_x86_64_check_relocs): Pass true to NEED_DYNAMIC_RELOCATION_P
150525 (elf_x86_64_relocate_section): Pass true to X86_PCREL_TYPE_P,
150535 (NEED_DYNAMIC_RELOCATION_P): Add IS_X86_64 and pass it to
150538 (GENERATE_DYNAMIC_RELOCATION_P): Add IS_X86_64, pass it to
150548 The testsuite doesn't catch this because the linker does the sorting and to link
150572 them to use the filtered form.
150576 Consistently Use ui_file parameter to show callbacks
150577 I happened to notice that one "show" callback was printing to
150578 gdb_stdout rather than to the passed-in ui_file parameter. I went
150579 through all such callbacks and fixed them to consistently use the
150587 When MI debugging is enabled, the logging output should be sent to
150595 This changes index-cache.c to use debug_prefixed_printf_cond_nofunc.
150596 As a side effect, logs are now written to gdb_stdlog. This is part of
150603 Send minsym logging to gdb_stdlog
150604 This changes minsyms.c to send logging output to gdb_stdlog. This is
150612 This changes the separate debug file logging code (spread across two
150613 files) to use gdb_stdlog for its output. This is part of PR gdb/7233.
150620 This changes machoread.c to use debug_prefixed_printf_cond_nofunc. As
150621 a side effect, the logs are now written to gdb_stdlog. This is part
150629 This changes microblaze.c to use the standard logging macro. As a
150630 side effect, logs will now go to gdb_stdlog. This is part of PR gdb/7233.
150636 Send debugging data to gdb_stdlog in mips-linux-nat.c
150637 This changes mips-linux-nat.c to send some logging output to
150644 Send arch-utils error messages to gdb_stderr
150645 This changes arch-utils.c to send some error messages to gdb_stderr.
150653 The process record code often emits unfiltered output. In some cases,
150654 this output ought to go to gdb_stderr (but see below). In other
150655 cases, the output is guarded by a logging variable and so ought to go
150656 to gdb_stdlog. This patch makes these changes.
150658 Note that in many cases, the output to stderr is followed by a
150660 to me that calling error here would be preferable, because, in many
150670 Send jit.c errors to gdb_stderr
150671 jit.c writes some error messages to gdb_stdout, but using gdb_stderr
150679 I noticed yesterday that if gdb output is redirected to a file, the
150684 This patch fixes the bug. It changes the pagination code to query the
150685 particular ui-file to see if paging is allowable. The ui-file
150697 the address of a member and then passing this (as a void*) to these
150700 It seems better to simply inline the ordinary code here. CORE_ADDR is
150702 function seems safe to assume as well.
150711 inferior to the new one when processing the clone-inferior command:
150717 Some of those parameters can be passed as command line arguments to GDB
150718 (-args and -tty), so one could expect the clone-inferior to respect
150730 Argument list to give program being debugged when it is started is "foo bar".
150734 [Switching to inferior 2 [<null>] (/bin/echo)]
150735 Argument list to give program being debugged when it is started is "".
150744 think that this change is mostly harmless. If users want to start a new
150746 settings to the new inferior in some way.
150767 There is no need to check member file size for thin archive member.
150778 GAS_SORT_RELOCS to handle unsorted relocs.
150796 ld: Fix testcase errors due to -shared not support.
150853 combination of %s and call to host_address_to_string. This also
150854 simplifies the code, so I think it's worthwhile to remove this
150861 Move gdb_bfd_errmsg to gdb_bfd.c
150863 However, gdb_bfd_errmsg is in utils.c. It seemed better to me to move
150873 more easily understand what these test cases are testing, and easier to
150874 maintain. Therefore, this patch rewrites all csr testcases, to make them
150890 * testsuite/gas/riscv/h-ext-32.d: Moved hypervisor csrs to csr.s.
150987 Set of fixes to resolve some duplicate test names in the gdb.mi/
150991 - Adding with_test_prefix type constructs to make test names unique,
150994 - Changing the test name to be more descriptive, or better reflect
151012 there is no thread-id and so has to "guess" which thread the stop
151013 should apply to.
151019 However, after the above commit, GDB now expects itself to be more
151023 It turns out that, when GDB attaches to a process through an
151027 And so, when GDB tries to figure out which thread the stop might apply
151032 to add_thread_silent, rather than remote_target::remote_add_thread,
151033 the reason is that calling the latter will result in a call to
151038 calls are what would serve to mark the new thread as resumed.
151040 In this commit I propose that we add an extra parameter to
151042 new thread to be added with a call to add_thread_silent. We can now
151048 triggers when 'set debug remote 1' is used before trying to reproduce
151062 the assert before the debug printing code.
151136 function amd64_return_value to figure out where the return value can
151144 Unfortunately, A is not trivially copyable (due to its copy
151148 passed to the callee as a hidden first argument. The callee should
151163 do (via a call to amd64_classify_aggregate_field).
151177 All we need then, is to add a check here to see if the struct is
151181 I originally structured the code like this:
151192 then I started adding some more extensive tests to the GDB testsuite,
151203 Inside the unaligned field check we try to get the bit position of
151243 I spent a little time trying to figure out how to convert the
151244 DWARF_BLOCK to a BITPOS, however, I realised that, in this case at
151251 lets just reorder the checks in amd64_classify_aggregate to:
151268 gdb: make use of SCOPE_EXIT to manage thread executing state
151269 While working on another patch relating to how GDB manages threads
151270 executing and resumed state, I spotted the following code in
151295 set_executing, and this is the same call to set_executing that we need
151296 to perform in the non-exception return path.
151298 This would be much cleaner if we could use SCOPE_EXIT to avoid the
151301 While cleaning this up, I also applied a similar patch to
151303 SCOPE_EXIT makes the code safe if, in the future, we do start throwing
151314 gdb/doc: add some index entries relating to mi-async setting
151316 in any way, this commit tries to rectify that a bit.
151329 using -gdb-set/-gdbshow, and so, I've tried to keep the index
151334 gdb: convert 'set debug lin-lwp' to a boolean command
151335 Convert the 'set debug lin-lwp' command to a boolean. Adds a new
151346 to talk about the 'GNU/Linux lwp module', but this debug flag is now
151349 changed from 'Enables printf debugging output.' to 'When on, print
151350 debug messages relating to the GNU/Linux native target.', the old
151351 value looks like a cut&paste error to me.
151361 Prints additional debug information relating to thread creation and
151366 debug message is the only mechanism to see the thread being added.
151372 cause the messages to be nested to an appropriate depth when other
151379 Add opcodes in testcases to make sure every instruction generate
151405 gdbarch-components.py: change empty "params" tuples to empty lists
151406 During review, it was suggested to change the "params" parameter from a
151407 tuple to a list, for esthetic reasons. The empty ones are still tuples
151408 though, they should probably be changed to be empty lists, for
151420 Fix mispelling of PROT_ME to PROT_MTE in the error messages.
151437 Rather than trying to fix this (which would require making an assumption
151439 it, since the generated code is in conflict with -momit-lock-prefix=yes,
151460 symmisc.c) is changed to use print_spaces_filtered, because the rest
151462 that the printf idiom is better -- this error is harder to make when
151479 ... and this commit mentions that the code being removed here probably
151480 hadn't worked for 6 years prior to that.
151489 these, it may give an incorrect result to a subsequent caller. So,
151490 make the return type const to help avoid this outcome.
151494 Add Enze Li to gdb/MAINTAINERS
151498 gdb/ada-exp.y: Reformat comment to follow GDB's coding standards
151499 This commit reformats a comment in gdb/ada-exp.y to avoid
151502 gdb/ada-lang.h: Reformat comment to follow coding standards
151503 This commit reformats a comment in gdb/ada-lang.h to avoid
151527 The documentation is also updated to mention this new command.
151535 gdb: add assert in remote_target::wait relating to async being off
151555 While working on another patch relating to remote targets, I wanted to
151557 into some problems. This commit is an attempt to fix one of the
151565 that is, we're telling GDB to force the targets to operate in
151574 Attaching to process 2365960
151579 problem. There's no reason why GDB should not be able to attach to
151588 2. In extended_remote_target::attach, we attach to the remote target
151591 inferior and thread to represent the process we attached to, and
151602 replies. However, this code is not what we use due to non-stop mode
151603 being disabled. So, we skip to the next step which is to call
151606 4. Calling validate_exec_file can cause packets to be sent to the
151608 call to target_pid_to_exec_file, which calls
151609 remote_target::pid_to_exec_file, which can then try to read the
151613 5. The attempt to attach continues, but the damage is already done...
151618 stop, which is sent when GDB first attaches to the target, is lost.
151624 this flag is just set back to 0, doing this immediately discards any
151632 needed to clear to the flag, maybe the clearing was added "just in
151636 So, my first step toward fixing this issue was to replace the two
151642 I did play with using some kind of scoped restore to backup, and
151647 case, by the time we get to the method the buffer has already been
151648 corrupted in many cases, so we end up needing to add the scoped
151655 buffer to be introduced, which could easily go unnoticed for a long
151658 So, I really wanted a solution that didn't require us to cache data in
151665 the stop_reply object is added to the queue. With the ::buf cache
151669 So, finally, in this commit, I propose to remove the
151670 remote_state::cached_wait_status flag and to stop using the ::buf to
151674 There are two places where we use the ::buf to hold a cached stop
151680 my plan is to switch both users over to using ::stop_reply_queue so
151695 Previously this code checked ::cached_wait_status, but didn't check
151700 Finally, in remote_target::wait_as, I've tried to merge the processing
151701 of the ::stop_reply_queue with how we used to handle the
151716 the end of ::wait_as, as well as there being calls to
151726 to be set. As a result, we don't need to worry about the first
151727 difference. I have however, added a gdb_assert to validate the
151728 assumption that the flag is never going to be set. If in future the
151733 value adjustment code at the end of ::wait_as.
151788 This adds a comment to document how to update gdbarch.
151801 code. It doesn't try very hard to be idiomatic Python or to be
151823 The new gdbarch.sh approach will be to edit a Python file, rather than
151824 adding a line to a certain part of gdbarch.sh. We use the existing sh
151825 code, though, to generate the first draft of this .py file.
151829 Note that some info (like "staticdefault") in the current code is
151841 code in gdbarch.sh, so remove it.
151852 makes it easier to re-run when rebasing. This code is removed in a
151857 Move ordinary gdbarch code to arch-utils
151858 While I think it makes sense to generate gdbarch.c, at the same time I
151859 think it is better for ordinary code to be editable in a C file -- not
151860 as a hunk of C code embedded in the generator.
151862 This patch moves this sort of code out of gdbarch.sh and gdbarch.c and
151871 while a smart compiler might be able to move it outside the loop it is
151882 gdb/tui: install SIGWINCH only when connected to a TTY
151883 PR26056 reports that when GDB is connected to non-TTY stdin/stdout, it
151893 When doing so, the process crashes in a call to rl_resize_terminal:
151904 The rl_instream variable is supposed to be initialized during a call to
151925 handler and in fine tries to access rl_instream leading to the crash.
151927 This patch proposes to fix this issue by installing the SIGWINCH signal
151928 handler only if GDB is connected to a TTY. Given that this
151930 tui_initialize_win just after the call to
151951 leads to confusing bugs.
151960 evil. Maintainers will break your code if you have hidden ways to
151964 attempt to bfd_release NULL.
151969 The bpf reloc howtos are a bit weird, using bitpos to specify an
151983 * mmo.c (mmo_get_symbols): Error on symbol name exceeding max length.
152024 When loading separate debug info files, also attempt to locate a file based upon the build-id.
152037 arm: Add support for Armv9.1-A to Armv9.3-A
152043 are technically redundant but it seemed less surprising to include
152075 it seemed less surprising to include them anyway.
152095 aarch64: Add support for Armv9.1-A to Armv9.3-A
152098 combination of existing feature flags, so we don't need to
152100 Hoewver, it was more convenient to separate out the |s of
152153 According to the privileged spec, there are five new instructions for
152154 svinval extension. Two of them (HINVAL.VVMA and HINVAL.GVMA) need to
152168 of hinval.vvma and hinval.gvma, from 0x0011011 and 0x0111011 to 0x0010011
152185 sim: mips/or1k: drop redundant arg to bitsize macro
152187 it to make it more clear. This also makes them match all other
152202 "open". Move it back before the sim-specific includes to fix. This
152204 this file tries to call that.
152213 C:\path\to\nios2-elf-ld.exe: looping in map_segments
152222 Using an unsigned int cast (to 32 bits) on a pointer difference (of
152227 * dwarf1.c (parse_die): Cast pointer difference to size_t.
152234 update the wiki [1] in parallel to bump the version of black to 21.12b0.
152264 runs and/or compiler, and we allow that address to appear in output.
152269 * dwarf2.c (is_str_attr): Rename to..
152278 New --enable-threading configure option to control use of threads in GDB/GDBserver
152283 If you try to run a statically-linked GDB built with threading, it will crash
152287 threads, where the thread discovery code in GDB will emit too many messages,
152322 One possible fix is to make offsetT a 64-bit type for loongarch32.
152332 …gas/config/tc-loongarch.c:661:13: error: cast from pointer to integer of different size [-Werror=p…
152333 -to-int-cast]
152337 Cast it to the correct size int, relying on normal integer promotions
152341 Cast return from str_hash_find to intptr_t, not offsetT.
152353 trimmed back to 32 bits when used. The following belt-and-braces
152357 when storing a host pointer to syment.n_value.
152358 * coffgen.c (coff_get_symbol_info): Cast syment.n_value to a
152365 If we modify tracepoint.cc to try to use a too long unix socket name,
152366 for example by modifying SOCK_DIR to be:
152370 ... trying to start an application with libinproctrace.so loaded
152374 …inutils-gdb/gdbserver/../gdbsupport/common-utils.cc:69: A problem internal to GDBserver in-process…
152377 Looking at the rest of the socket initialization code, the intent seems
152378 to be that if something goes wrong, we warn but let the program
152382 code to use xsnprintf instead of snprintf, introducing this assertion.
152386 Since LynxOS isn't supported anymore, we can simply revert to use
152424 I am pretty sure it's spurious and might be related to this GCC bug:
152429 (the global array agent_socket_name) to a 108 bytes long array,
152433 the code to check that the source string length is smaller than the
152436 For anybody who would like to try to reproduce, the full command line
152448 then used in a way to update its own value. For example, if `i` is only
152458 important for somebody who knows what they're doing to just make sure
152473 gdb/mi: rename build_table to add_builtin_mi_commands
152474 Just give the function build_table a more descriptive name. There
152479 gdb/mi: rename mi_cmd to mi_command
152480 Just give this class a new name, more inline with the name of the
152481 sub-classes. I've also updated mi_cmd_up to mi_command_up in
152489 This commit changes the infrastructure in mi-cmds.{c,h} to add new
152499 and a second for MI commands that delegate to CLI commands.
152505 gdb/mi: int to bool conversion in mi_execute_cli_command
152506 Change an argument of mi_execute_cli_command from int to bool. Update
152507 the callers to take this into account. Within mi_execute_cli_command,
152508 update a comparison of a pointer to 0 with a comparison to nullptr,
152518 This changes the hashmap used in mi-cmds.c from a custom structure to
152520 one an improvement, but using std::map will make it easier to
152522 later series, where we will allow MI commands to be implemented in
152529 gdb/mi: rename mi_lookup to mi_cmd_lookup
152530 Lets give this function a more descriptive name. I've also improved
152537 RISC-V: Added ld testcases for the medlow and medany code models.
152538 There are two linker scripts, code-model-01.ld and code-model-02.ld,
152539 which are corresponding to the two different memory layouts,
152541 * code-model-01.ld: the text section is in the 32-bit address range, but
152545 * code-model-02.ld: the text section is over the 32-bit address range, but
152548 We use the two linker scripts, to test the current medlow and medany behaviors
152551 code models, that is - we may get the truncated to fit errors when linking
152555 * testsuite/ld-riscv-elf/code-model-01.ld: New testcases to test the
152556 behaviors of the current medlow and medany code models.
152557 * testsuite/ld-riscv-elf/code-model-02.ld: Likewise.
152558 * testsuite/ld-riscv-elf/code-model-medany-01.d: Likewise.
152559 * testsuite/ld-riscv-elf/code-model-medany-02.d: Likewise.
152560 * testsuite/ld-riscv-elf/code-model-medany-weakref-01.d: Likewise.
152561 * testsuite/ld-riscv-elf/code-model-medany-weakref-02.d: Likewise.
152562 * testsuite/ld-riscv-elf/code-model-medlow-01.d: Likewise.
152563 * testsuite/ld-riscv-elf/code-model-medlow-02.d: Likewise.
152564 * testsuite/ld-riscv-elf/code-model-medlow-weakref-01.d: Likewise.
152565 * testsuite/ld-riscv-elf/code-model-medlow-weakref-02.d: Likewise.
152566 * testsuite/ld-riscv-elf/code-model-relax-medany-01.d: Likewise.
152567 * testsuite/ld-riscv-elf/code-model-relax-medany-02.d: Likewise.
152568 * testsuite/ld-riscv-elf/code-model-relax-medany-weakref-01.d: Likewise.
152569 * testsuite/ld-riscv-elf/code-model-relax-medany-weakref-02.d: Likewise.
152570 * testsuite/ld-riscv-elf/code-model-relax-medlow-01.d: Likewise.
152571 * testsuite/ld-riscv-elf/code-model-relax-medlow-02.d: Likewise.
152572 * testsuite/ld-riscv-elf/code-model-relax-medlow-weakref-01.d: Likewise.
152573 * testsuite/ld-riscv-elf/code-model-relax-medlow-weakref-02.d: Likewise.
152574 * testsuite/ld-riscv-elf/code-model.s: Likewise.
152583 x86: Adjust linker tests for --disable-separate-code
152584 Adjust linker tests for linker configured with --disable-separate-code:
152587 2. Pass -z max-page-size=0x1000 -z separate-code" to linker.
152592 "-z max-page-size=0x1000 -z separate-code" to linker.
152606 as expected. The issue appears to be with the kernel not returning the
152636 to end up accessing almost all of the contents of val, and so I wanted
152637 GDB to do a single remote protocol call to fetch all the contents in
152638 one go, rather than trying to do lazy fetches for a couple of bytes at
152651 My guess is that this approach allows us to handle indexing off the
152677 gdb: update gdb-gdb.py.in for latest changes to struct field
152678 This commit updates uses of 'loc' and 'loc_kind' to 'm_loc' and
152691 Which means we print 'm_name' instead of 'name' when displaying the
152702 I updated the gdb.gdb/python-helper.exp test to cover all of these
152707 gdbserver/linux-low: replace direct assignment to current_thread
152713 gdbserver: replace direct assignments to current_thread
152714 Replace the direct assignments to current_thread with
152725 Introduce a class for restoring the current thread and a function to
152726 switch to the given thread. This is a preparation for a refactoring
152727 that aims to remove direct assignments to 'current_thread'.
152732 While working on a later patch that required me to understand how GDB
152775 the inf_child_target class, and add a new empty implementation to the
152779 implementation of this method and so don't need to change beyond
152786 The only way in which this change is visible to a user is if the user
152787 turns on 'set debug target 1'. With this debug flag on, prior to this
152800 While working on another patch I had reason to look at
152814 Convert struct target_ops to C++
152816 When the target tree was converted to C++, all of the above classes
152821 Later on all the remaining targets (except mips) were converted to
152861 Which says that "proper" OS support is going to be added to
152862 nbsd_nat_target, hence the need to inherit from that class.
152866 to inherit from nbsd_nat_target just like all the other nbsd targets.
152868 My motivation for this patch relates to the post_startup_inferior
152869 target method. In a future commit I want to change how this method is
152872 the version in netbsd-nat.c. This feels like a bug to me, as surely,
152873 enabling of proc events is something that would need to be done for
152877 implementation of post_startup_inferior to mips_nbsd_nat_target,
152879 nbsd_nat_target. Option (b) seems like the right way to go, hence,
152884 mips-netbsd applications, which I have no idea how to set up.
152889 While testing another patch I was trying to build different
152895 .../src/gdb/mips-tdep.c:8730: undefined reference to `disassembler_options_mips'
152897 .../src/gdb/riscv-tdep.c:3851: undefined reference to `disassembler_options_riscv'
152902 This turns out to be because mips-dis.c and riscv-dis.c, in which
152915 executable (assuming we could get it to link) would not understand
152917 disassembler available. This sounds like a pretty useless GDB to me.
152932 GDB to build when configured with --enable-targets=all, and when using
152941 C++-ify path substitution code
152942 I found some uses of xfree in the path substitution code in source.c.
152943 C++-ifying struct substitute_path_rule both simplifies the code and
152954 [GOLD] PowerPC64 @notoc in non-power10 code
152982 caused readelf to run out of stack since load_separate_debug_info
153000 file to avoid infinite recursion.
153009 This reverts a 1995 fix to handle bogus object files. Presumably such
153023 that user can specify path to gdbserver on remote system by setting
153027 This commit updates the code to respect GDBSERVER if set and fall back to
153041 …/home/simark/src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:407: undefined reference to `tdesc_…
153042 …src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:408: undefined reference to `tdesc_architecture_…
153043 …src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:411: undefined reference to `tdesc_osabi_name(ta…
153044 …src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:416: undefined reference to `tdesc_compatible_in…
153045 …src/binutils-gdb/gdbserver/../gdbsupport/tdesc.cc:418: undefined reference to `tdesc_compatible_in…
153055 uninitialised, which then leads to intemperate behaviour.
153058 * dwarf2.c (read_attribute_value): Return NULL on trying to read
153065 SHT_REL/SHT_RELA sections by hand. These don't have sh_link set to
153066 the .symtab section as they should, leading to readelf warnings if you
153067 happen to be looking at the object files.
153076 I suppose this code was copied from GDBserver and this ifndef was left
153112 The documented behavior of proc runto is to not emit a PASS when
153113 succeeding to to run to the specified location, but emit a FAIL when
153114 failing to do so. I suppose the intent is that it won't pollute the
153118 However, it seems like the implementation makes it default to never
153119 print anything. "no-message" is prependend to "args", so if "message"
153120 is not passed, we will always take the path that sets print_fail to 0,
153124 FAIL if failing to run to main. And since commit 4dfef5be6812
153125 ("gdb/testsuite: make runto_main not pass no-message to runto"), tests
153126 don't emit a FAIL themselves when failing to run to main. This means
153127 that tests failing to run to main just fail silently, and that's bad.
153154 Remove the line that prepends no-message to args, that should make
153157 This patch will appear to add many failures, but in reality they already
153165 On ELFv1, the _start symbol must point to the *function descriptor* (in
153166 the .opd section), not to the function code (in the .text section) like
153174 FAIL: gdb.base/maint.exp: maint info line-table w/o a file name
153183 This is partly due to the addition of the IS-STMT column.
153213 user want to reset the whole architecture string. So the formats are,
153219 * Don't allow to add or remove the base extensions in the .option arch
153221 while they want to change the base extension.
153230 removed the "=" operator when user want to reset the whole
153231 architecture string. Besides, Don't allow to add or remove
153250 The ## marker tells automake to not include the comment in its
153260 ptrace-attached by the GDB process (or by GDBserver), but not known to
153262 child process, so GDB (or GDBserver) just stays ptrace-attached to the
153264 would expect it to be detached and run.
153276 while stopping all threads, to present an all-stop stop on top of a
153278 - thread_info::pending_follow: if we ran to a "catch fork" and we
153289 this: call remote_notif_get_pending_events to process /
153293 Update the gdb.threads/pending-fork-event.exp test (and rename it to
153294 gdb.threads/pending-fork-event-detach.exp) to try to detach the process
153295 while it is stopped with a pending fork event. In order to verify that
153299 to appear (it happens instantly if everything goes well).
153311 a condition in get_detach_signal to access the signal number only if the
153313 instead (since the thread was not stopped with a signal to begin with).
153315 Add another test, gdb.threads/pending-fork-event-ns.exp, specifically to
153321 the parent to exit by sending it a SIGUSR1 signal and have it write a
153322 file to the filesystem before exiting. Because the parent's main thread
153324 children to exit, if some fork child is not detach by GDB, the parent
153332 it should be fixed, but I would like to handle that later. The current
153340 gdb: move clearing of tp->pending_follow to follow_fork_inferior
153348 "detach-on-fork on". follow_fork_inferior calls target_detach to detach
153354 Then, suppose we run to a fork catchpoint and the user types "detach".
153355 In that case, the target should detach the fork child in addition to the
153359 To allow targets to differentiate the two cases, clear
153372 find a bit awkward, and to make them a bit more reusable.
153374 - Pass an inferior to kill_new_fork_children instead of a pid. That
153377 - Change thread_pending_fork_status to return a non-nullptr value only
153383 filtering on the pid to the callers, when it is necessary.
153390 Move the stop_reply and a few functions up. Some code above them in the
153391 file will need to use them in a following patch. No behavior changes
153398 gdb/linux-nat: factor ptrace-detach code to new detach_one_pid function
153399 The following patch will add some code paths that need to ptrace-detach
153400 a given PID. Factor out the code that does this and put it in its own
153410 other event is reported to GDB first (and the fork event stays pending
153418 Debugger response to a program call of fork or vfork is "parent".
153425 [Switching to Thread 965190.965190]
153428 The sequence of events leading to the problem is:
153436 arbitrarily choses one event to report, it happens to be the
153438 - GDBserver send that SIGTRAP as a stop reply to GDB
153452 The remote target (GDB-side), has some code to remove from the reported
153455 to the remote target (GDB-side), but haven't been consumed by the core
153458 event hasn't made its way to the GDB-side remote target. We need to
153471 relationships using the lwp_info::fork_relative, in order to avoid
153472 wildcard actions resuming fork childs unknown to GDB. This information
153473 needs to be made available to the handle_qxfer_threads_worker function,
153475 target function that allows the Linux target to return the parent of an
153480 is about to fork. We stepi the other thread, so that the step completes
153482 so very likely has time to call fork. This means that the bug may not
153483 reproduce every time (if the main thread does not have time to call
153493 anyway. It doesn't hurt to test a few more combinations.
153506 equivalent) to loop over a static array. This patch changes some of
153507 these to use foreach instead.
153517 - if (strcmp (fnd.name, "<unknown>") != 0)
153529 gdb/python: Use tp_init instead of tp_new to setup gdb.Value
153532 gdb.Value.__new__. This will cause confusion if a user tries to
153542 But, when they source this code they'll see:
153550 TypeError: object.__init__() takes exactly one argument (the instance to initialize)
153558 approach is because we want gdb.Value to be immutable:
153562 But I don't see any reason why we should require gdb.Value to be
153564 immutability can be seen in this code:
153576 In this commit I propose that we switch to using __init__ to
153581 in which case we need to cleanly break that association before
153583 is not great, and the benefit - being able to easily sub-class
153592 In order to make it easier to override the gdb.Value.__init__ method,
153594 optional argument to __init__ is a gdb.Type, if this argument is not
153597 However, if we want to override the __init__ method in a sub-class,
153598 and still support the default argument, it is easier to write:
153608 After this commit I now allow the type argument to be None, in which
153612 Unless a user is trying to reinitialize a value, or create sub-classes
153630 happens from this code snippet in i386-dis.c in the print_insn
153640 Notice how, prior to the return the disassembler tries to print a
153659 try/catch around the call to gdb_disassembler::print_insn, if we catch
153662 exception is thrown we still print any pending disassembler output to
153665 Before my patch we might expect to see this output:
153668 Dump of assembler code from 0x0 to 0x4:
153675 Dump of assembler code from 0x0 to 0x4:
153683 Dump of assembler code from 0x0 to 0x4:
153696 Dump of assembler code from 0x0 to 0x4:
153702 Dump of assembler code from 0x0 to 0x4:
153706 For me, I'm happy to accept this change, having the error on a line by
153707 itself, rather than just appended to the end of the previous line,
153714 Permanent program breakpoints (ones inserted into the code) other than
153716 caused GDB to loop infinitely.
153720 to loop forever.
153736 "tw 12, r2, r2" to unconditional "trap".
153747 This change allows objcopy to work.
153762 My earlier change to source.c ("Remove an xfree from add_path")
153767 gdb: make struct linespect contain vectors, not pointers to vectors
153768 struct linespec contains pointers to vectors, instead of containing
153771 seems easy to change the pointers to vectors to just vectors today.
153772 This simplifies the code, we don't need to manually allocate and delete
153776 NULL pointer to vector and an empty vector. So all NULL checks are
153795 not empty. This code ended up like this because the empty check used to
153803 Functions agent_eval_command and agent_command are used to implement
153820 entries. AT_FXRNG points to a root seed version for the kernel's
153821 PRNG. Userland can use this to reseed a userland PRNG after the
153825 This change displays the proper name and description of these entries
153836 file matcher to expand_symtabs_matching. However, if 'filenames' is
153837 empty, then this always returns true. It's slightly more efficient to
153863 Fix this by reverting back to using "set options [concat $options ...]".
153867 compile_jit_elf_main_as_so, which makes the code similar to compile_jit_main.
153922 entire main function on a single line, in order to force the compiler to use
153925 Also try to do less hard-coding in the test-case.
153940 When compiled to a non-PIE exec:
153950 which calls to:
153957 where the first insn at 0x8048310 initially jumps to the following address
153968 we have this call sequence (with %ebx setup to point to the .got.plt):
153976 which calls to:
153983 where the insn at 0x3f0 initially jumps to following address 0x3f6, read from
153990 When instead doing an inferior call to malloc (with nosharedlib to force
153991 malloc to resolve to malloc@plt rather than the functions in ld.so or libc.so)
154015 - the jump to "*0xc(%ebx)" reads from memory at 0xc
154040 Fix this by copying the readnow handling code from symbol_file_add_with_addrs
154041 to reread_symbols.
154062 which tries to get field 0 from a type without fields:
154069 (gdb) p type->code ()
154084 appended to the input_target or output_target. This caused asan
154097 Error on ld output file name matching input file name
154098 It's not foolproof, for example we don't catch output to a linker
154099 script, to a library specified with -l, or to an element of a thin
154104 * testsuite/ld-misc/just-symbols.exp: Adjust ld -r test to suit.
154112 gdb: Add PowerPC support to gdb.dwarf2/frame-inlined-in-outer-frame
154113 This patch adds an #elif defined for PowerPC to setup the exit_0 macro.
154114 This patch addes the needed macro definitionald logic to handle both elfV1
154124 the memory operands to be aligned to a certain boundary, and the test-cases
154125 use C11's _Alignas to make that happen.
154137 updated to say, 64 bytes. The initial PASS occurred only because the actual
154138 alignment happened to be greater than required.
154145 precise_aligned_alloc and precise_aligned_dup, to support precise alignment.
154147 Use precise_aligned_dup in aforementioned test-cases to:
154166 (gdb) FAIL: gdb.arch/i386-avx.exp: continue to breakpoint: \
154167 continue to first breakpoint in main
154179 Compile using -std=gnu11 to support _Alignas.
154188 The fixes gold failures to handle inline PLT sequences properly.
154189 PowerPC gold was always turning these back into direct calls due to
154193 revolves around needing to create PLT entries for inline PLT calls
154218 (Target_powerpc::Relocate::relocate): Rename has_plt_offset to
154224 It's now possible to refer symbols in the main program from the
154225 shared library. However, it still impossible to have the same
154243 Preserve artificial CU name in process_psymtab_comp_unit_reader
154245 process_psymtab_comp_unit_reader was allocating an artificial name for
154246 a CU, and then discarding it. However, this name was preserved in the
154247 cached file_and_directory. This patch arranges for the allocated name
154248 to be preserved there.
154253 Avoid implicit include deps with this to help untangle sim headers
154257 Avoid implicit include deps with this to help untangle sim headers
154261 Avoid implicit include deps with this to help untangle sim headers
154268 places, but this leads to conflicts when our local headers happen
154269 to define symbols that show up in the system headers.
154280 ASan made me notice a memory leak, where the memory tied to the file
154281 handle name string wasn't freed. When register a file handler with an
154284 file_handler::name pointer, without free-ing the old std::string.
154287 delete, and making file_handler::name not a pointer.
154297 sim: moxie: hoist dtb rules up to common builds
154299 the build logic up to the common builds for better parallelization.
154302 These were moved to the common configure script a while ago and have
154309 There is no configure script in here anymore to regenerate.
154317 This changes the DWARF reader to cache the result of
154321 Move file_and_directory to new file and C++-ize
154322 This moves file_and_directory to a new file, and then C++-izes it --
154323 replacing direct assignments with methods, and arranging for it to own
154335 Running frv's allinsn in serial is quite slow due to the sheer number
154337 execution time on my system goes from ~100sec to ~60sec.
154342 I don't think it's very useful to show deprecated aliases to the
154343 user. It encourages the user to use them, when the goal is the
154385 line-table. This causes two tests to start failing, update them to
154418 in the doc subdir easily enough. This makes the code simpler and
154425 bfd: convert bfdver.h to silent automake rules
154434 - separate each entry with a newline, to visually separate them
154436 - print the name of the compunit_symtab
154438 A header now looks like this, with the compunit_symtab name added (and
154450 gdb: change some alias functions parameters to const-reference
154451 Now that we use intrusive list to link aliases, it becomes easier to
154453 pointer to some functions, change a few.
154460 Change the manually-implemented linked list to use intrusive_list. This
154461 is not strictly necessary, but it makes the code much simpler.
154467 gdb: trivial changes to use array_view
154468 Change a few relatively obvious spots using value contents to propagate
154477 and extract_unsigned_integer to take an array_view. This way, when we
154479 passed by the caller (e.g. ask to extract a 4-byte integer but pass a
154482 - Change extract_integer to take an array_view
154485 need to change all callers, but make them call the array_view
154507 An assertion was recently added to array_view::operator[] to ensure we
154509 to or from using memcpy, it bypasses that safety.
154512 array view to another, ensuring that the destination and source array
154513 views have the same size. When copying to or from parts of an
154514 array_view, we are expected to use gdb::array_view::slice, which does
154519 least on libstdc++, appears to pick memmove when copying trivial data.
154527 copying exactly overlapping ranges (where the source range is equal to
154534 Change a few randomly selected spots to use the new function, to show
154546 gdb: change store_waitstatus to return a target_waitstatus by value
154549 for it to take the integer as a parameter and return the
154550 target_waitstatus by value. Do that, and rename to
154563 While playing with some code creating target_waitstatus objects, I was
154565 target_waitstatus object. We have to do:
154572 possible to do:
154581 However, making the setters return a reference to the object achieves
154582 pretty much the same thing, with less new code.
154603 field to null for AARCH64_OPDE_EXPECTED_A_AFTER_B and
154617 gdb/testsuite: give a test a real name
154625 included a large amount of binary data in the command sent to GDB. As
154626 this test didn't have a real test name the binary data was included in
154631 This commit gives the test a real test name.
154641 gdb/remote: use scoped_restore to control starting_up flag
154648 the error is thrown. If the only reference to the target is the one
154650 remote_target to be deleted, which, in turn, will delete the
154651 remote_state object. The scoped restore will then try to reset the
154671 It looks like automake makes assumptions about its ability to build info
154680 folks to see what they think.
154700 result of xstrdup is used to initialize the string, and then lost
154717 - compile a hello world with -m32 to a.out
154719 - use gdb to connect to the gdbserver session
154726 A problem internal to GDBserver has been detected.
154738 - it extends the 16 existing 128-bit wide xmm registers to 256-bit wide ymm
154742 - it extends the 16 existing 256-bit wide ymm registers to 512-bit wide zmm
154750 constants to describe the size of the register file:
154768 debugformat field") changes the debug format string in "info source" to
154771 However, it failed to consider that some tests checked for the "DWARF 2"
154772 string to see if the test program is compiled with DWARF debug
154775 tests using skip_inline_var_tests to run.
154778 could find to use "DWARF [0-9]" instead (that string is passed to TCL's
154787 Ada code...
154821 factor, to get the integer-representation of our fixed-point value
154822 (similar to what it does with floats, for instance).
154825 about fixed-point types, and to avoid the unwanted application
154844 Consider the following Ada code...
154864 We expect the returned value to be "1".
154876 (we expect it to print "1" instead).
154881 principles should also apply to pure fixed-point types. For
154902 riscv_return_value uses a cast to that builtin type long to
154910 ... In other words, it is trying to create an FP1_Type enty whose
154923 Consider the following Ada code:
154949 This patch enhances the extraction of the return value to know about
154955 Consider the following code:
154964 When the default in GCC is to generate proper DWARF info for fixed point
154965 types, then in gdb, printing the result of a call to call_fp1 with a
154966 decimal parameter leads to:
154976 What happened is that our fixed point type parameter got promoted to a
154990 Add "task" keyword to the "watch" command
154991 Breakpoints in gdb can be made specific to an Ada task using the
154992 "task" qualifier. This patch applies this same idea to watchpoints.
155034 This patch adds a warning for code that doesn't follow this rule,
155035 along similar lines to the warning that we already emit for
155049 * aarch64-opc.c (set_out_of_range_error): Update after change to
155066 (record_operand_error_with_data): Update after change to
155080 I took the perhaps controversial decision to generate the individual
155082 This becomes useful with a follow-on patch to check that code follows
155158 * testsuite/gas/aarch64/sysreg-diagnostic.s: Test writes to
155186 instruction. This patch adds a line number to the message,
155187 which is useful if the assembly code has multiple text sections.
155189 The new code is unconditional since OBJ_ELF is always defined
155200 * testsuite/gas/aarch64/sve-movprfx_4.l: Add line number to error
155207 aarch64: Tweak insn sequence code
155208 libopcodes has some code to check constraints across sequences
155209 of consecutive instructions. It was added to support MOVPRFX
155210 sequences but is going to be useful for the Armv8.8-A MOPS
155213 Currently the structure has one field to record the instruction
155214 that started a sequence and another to record the remaining
155216 MOPS code if we put the instructions into a single array instead.
155227 Add the first instruction to the inst array.
155229 Don't add the last instruction to the array.
155233 aarch64: Add maximum immediate value to aarch64_sys_reg
155239 This patch therefore adds the maximum value to the sys_reg
155247 Error: immediate value out of range 0 to 1
155255 Error: immediate value out of range 0 to 15
155264 …on/ddi0596/2021-09/Base-Instructions/MSR--immediate---Move-immediate-value-to-Special-Register-?la…
155288 Allow the --visualize-jumps feature to work with the AVR disassembler.
155295 When introducing this code, I forgot that we had some macros for this.
155301 - Add DIAGNOSTIC_ERROR, to enable a diagnostic at error level.
155302 - Add DIAGNOSTIC_ERROR_SWITCH, to enable -Wswitch at error level, for
155306 DIAGNOSTIC_POP seems to misbehave with g++ 4.8, where we see these
155315 Because of the POP, the diagnostic should go back to being disabled,
155321 Note that this code (already as it exists in master today) enables
155325 compilers. Still, for correctness, we would ideally want to ask the
155326 compiler to enable -Wswitch at its default level (as if the user had
155327 passed -Wswitch on the command-line). There doesn't seem to be a way to
155357 Don't convert memory load to immediate load on __start_SECNAME and
155400 These have been around for decades but don't appear to be used, and
155401 trying to build them (e.g. `make archive.p archive.ip`) doesn't work,
155428 Change it to display the actual DWARF version:
155440 The comp_unit_head::version field is guaranteed to be between 2 and 5,
155441 thanks to the check in read_comp_unit_head. So we can still use static
155442 strings to pass to record_debugformat, and keep it efficient.
155444 In the future, when somebody will update GDB to support DWARF 6, they'll
155445 hit this assert and have to update this code.
155454 3. Use bfd_make_section_anyway_with_flags to create the output
155462 to create the output .note.gnu.build-id section.
155486 readelf --notes to pretty print it:
155491 Packaging Metadata: {"type":"deb","name":"fsverity-utils","version":"1.3-1"}
155527 The test-case expects the $pkru register to have the default value 0, matching
155531 Default to a restrictive init PKRU"), the register is set to 0x55555554 by
155547 gdb/remote: use scoped_restore to control starting_up flag
155548 This commit makes use of a scoped_restore object to control the
155552 Ideally I would have liked to create the scoped_restore inside
155555 of GDB. Specifically, in start_remote, the following code is executed
155556 once the starting_up flag has been restored to its previous value:
155567 To avoid this, and to leave things as close to the current behaviour
155570 this function uses the scoped_restore to change the ::starting_up
155581 gdb.base/corefile-buildid.exp: fix DUPLICATEs when failing to generate a core file
155582 When my system isn't properly configured to generate core files in the
155605 powerpc64. The else statement is hit which sets march to -m32. This
155608 This patch adds an if statement to check for powerpc64 and if true sets mach
155609 to -m64.
155628 This patch adds support for various system registers, up to Armv8.7-A.
155636 (aarch64_sys_regs): Add missing entries (up to Armv8.7-A).
155649 to ones that are still unallocated.
155674 it to the final release.
155686 aarch64: Allow writes to MFAR_EL3
155695 * testsuite/gas/aarch64/rme.s: Test writing to mfar_el3.
155704 We were incorrectly allowing writes to PMSIDR_EL1, which is
155712 * testsuite/gas/aarch64/msr.s: Remove write to pmsidr_el1.
155741 if A happened to be the name of an instruction. Adding new
155745 for "xzr", where "zero" is now also the name of an SME instruction.
155746 I don't have any evidence that "real" code is doing this, but it
155751 is unlikely to be noticeable.
155759 .req if it's followed by another name. If there's some valid
155760 expression that I haven't thought about that is scrubbed to
155765 something to exercise the !dot condition.
155768 but I'm not brave enough to say that it can never happen. If it does
155773 code to...
155788 this method uses 'p' as an argument format specifier in a call to
155794 This commit switches to use the 'O' specifier to collect a PyObject,
155795 and then uses PyObject_IsTrue to convert the object to a boolean.
155798 to use 'i', however, it was pointed out during review that this would
155806 some new tests to cover both of the above.
155821 The problem is that we're trying to issue the command "set width 30" while
155822 width is set to 20, which causes horizontal scrolling.
155824 Fix this by resetting the width to 0 before issuing the "set width 30"
155836 (display_loc_list): Likewise. Also use print_dwarf_vma to print
155857 2 I ran into a test failure due to the tracemalloc module not being
155860 This commit adds a new helper function to lib/gdb-python.exp that
155880 The problem is that the test is expected GDB's disassembler to print
155889 The reason for this is this code in opcodes/i386-dis.c (in the
155899 This code effectively disallows us from ever disassembling 64-bit x86
155900 code if we compiled GDB with a 32-bit bfd_vma. Notice we return
155901 -1 (indicating a failure to disassemble), but never call the
155904 Prior to the above commit GDB, when it received the -1 return value
155906 value happened to be in the memory error address variable, the default
155907 value of 0 just happened to be fine because the test had asked GDB to
155910 If we instead change the test to do 'disassemble 0x100,+4' then GDB
155917 In this commit I propose to fix this issue by changing the test to
155927 expect to get the "Cannot access memory ..." error string.
155929 [ Note: In an ideal world we should be able to disassemble any
155931 disassembler requires a 64-bit bfd_vma, other than the code happens
155932 to be written that way. We could rewrite the disassemble to not
155933 have this requirement, but, I don't plan to do that any time soon. ]
155936 disassemble at address 0x100, this should avoid us being able to pass
155938 address we disassembled at to 0x4, however, some architectures,
155940 4, so would still round down to 0x0. I could have just picked 0x8 as
155941 an address, but I figured that 0x100 was likely to satisfy most
155952 'send_packet'. This new method is equivalent to the 'maint
155953 packet' CLI command, it allows a custom packet to be sent to a remote
155965 In a later commit I will add a Python API to access the 'maint packet'
155966 functionality, that is, sending a user specified packet to the target.
155974 interface are then called, one just before a packet is sent to the
155977 the error checking to be done before the first callback is made, this
155979 going to actually send it, and (2) we don't need to make a copy of the
155980 reply if all we want to do is print it.
155983 messages, which I've changed to be less 'maint packet' command
155985 send_remote_packet can be called from Python code.
155988 Becomes: "packets can only be sent to a remote target"
155994 that contain binary data. Before this commit, the code that printed
155999 One way to show the problem with this is if we try to read the auxv
156028 There's three ways to find a gdb.TargetConnection, there's a new
156068 The bits of vtype immediate from 8 to (xlen - 1) should be reserved.
156070 they are set over 8-bits. I think this is a bug that we used to support
156071 vediv extension and use the bit 8 and 9 of vtype, but forgot to update
156104 * testsuite/gas/riscv/vector-insns.d: Added testcases to
156105 test the reserved bit 8 to (xlen-1) of vtype.
156111 * riscv-dis.c (print_insn_args): Updated imm_vtype_res to
156132 The vsew e128 and vlmul (null) are preserved according to the spec,
156133 so dump these fields looks wrong. Consider that we are used to dump
156153 * riscv-opc.c (riscv_vsew): Set the reserved vsew to NULL.
156154 (riscv_vlmul): Set the reserved vlmul to NULL.
156161 Also add $(AM_V_xxx) to various manual rules in here.
156164 Also add $(AM_V_xxx) to various manual rules in here.
156167 Also add $(AM_V_xxx) to various manual rules in here.
156174 Also add $(AM_V_xxx) to various manual rules in here.
156177 Also add $(AM_V_xxx) to various manual rules in here.
156180 Also add $(AM_V_xxx) to various manual rules in here.
156189 The Rust compiler plans to change the encoding of a Rust 'char' type
156190 to use DW_ATE_UTF. You can see the discussion here:
156195 the handling of DW_ATE_UTF is currently fairly specific to C++. In
156196 particular, the code here assumes the C++ type names, and it creates
156203 needs to create a new type, I've made it use the per-arch built-in
156205 instead of once per objfile. That seems to work fine.
156207 ... which is fine, but it seems to me that it's also correct to make a
156209 the type name as well. This does use more memory, but first we
156214 Changing this code to use a character type revealed a couple of
156219 backported to the gdb 11 branch.
156226 being cancelled and skipped. However in some cases, ctrl-c fails to
156227 get delivered to gdb during downloading. This can result in downloads
156237 strings: Replace references to -u option with references to -U.
156243 PR28539 describes a segfault in lambda function search_one_symtab due to
156269 The call to psymtab_to_symtab expands the Decl.cpp symtab (and consequently
156338 We'll rely on the toolchain probing to determine whether each arch's
156342 For now, we don't reformat the files entirely to make it easier to
156343 review, and in case we need to make adjustments. Once this feels
156344 like it's stable, we can flatten the code a bit by removing the if
156360 On my system, it goes from ~155sec to ~100sec.
156368 Leverage the new per-port toolchain settings to initialize the env
156369 for eeach set of tests. This allows us to run all the tests in a
156378 manual flags to select the right output. This makes it impossible
156379 to run the complete testsuite in a multitarget build.
156382 so these can be set to precompiled as & ld programs. It requires
156400 sim: add checks to core headers to prevent incorrect common building
156403 unified across ports, add checks to make sure they aren't accidentally
156409 on any port-specific settings, so move it up to building as part of the
156413 Now that all ports have switched to target-newlib-* files, there's
156417 sim: mcore: switch to new target-newlib-syscall
156418 Use the new target-newlib-syscall module. This is needed to merge all
156422 sim: riscv: switch to new target-newlib-syscall
156423 Use the new target-newlib-syscall module. This is needed to merge all
156429 sim: cr16: switch to new target-newlib-syscall
156430 Use the new target-newlib-syscall module. This is needed to merge all
156439 sim: d10v: switch to new target-newlib-syscall
156440 Use the new target-newlib-syscall module. This is needed to merge all
156449 sim: sh: switch to new target-newlib-syscall
156450 Use the new target-newlib-syscall module. This is needed to merge all
156456 sim: v850: switch to new target-newlib-syscall
156457 Use the new target-newlib-syscall module. This is needed to merge all
156466 sim: iq2000/lm32/m32c/moxie/rx: switch to new target-newlib-syscall.h
156467 Use the new target-newlib-syscall.h to provide the target syscall
156468 defines. These code paths are written specifically for the newlib
156469 ABI rather than being generalized, so switching them to the defines
156470 rather than trying to go through the dynamic callback conversion
156471 seems like the best trade-off for now. Might have to reconsider
156479 same syscall map, but not all, which means we have to do a bit more
156480 work to migrate.
156483 default syscall table over to it. Ports using unique syscall tables
156487 ppc code needs a bit more cleanup here hence its larger diff.
156493 to resolve these dynamically so we can support multiple syscall layers
156498 to resolve these dynamically so we can support multiple syscall layers
156516 The variable names used to restore CFLAGS and LDFLAGS here don't quite
156528 bfin way of overriding it to stuff custom CFLAGS doesn't scale well.
156530 can setup if they want to add custom options.
156539 If the board info sets the sim to a basename that is found via $PATH
156540 (which is the default dejagnu behavior), the logic here to use its
156541 dirname to find rvdummy fails because it looks for `./rvdummy`. So
156542 switch it to always use the local build of rvdummy which is the one
156543 we want to be testing against in the first place.
156547 config knobs to control it.
156560 The problem is that the test-case does not expect to find a file main.c, but
156563 Fix this by using the more specific file name list-missing-source.c.
156570 Add missing $(EXEEXT) to dependencies on bits-gen. These are actually
156578 few ports that also support Linux apps, we want to test that logic
156579 too. A lot of the C code is written such that it works with either
156582 tuple as a rough proxy for this (where cris*-*-elf is assumed to be
156587 to detect the different setups, and then let tests declare which
156593 Both bfin & cris ports test the C compiler to see if it works, but in
156594 their own way. Unify the checks in the common code so we can leverage
156595 them in more ports in the future, and collapse the bfin & cris code.
156601 was set to sim. When we changed to --tool '' to collapse the testsuite
156608 to all our tests. This replicates the runtest behavior so we can setup
156609 variables on a per-test basis which allows us to recollapse the sim_path
156617 If the cris sim hasn't been built yet, trying to run its testsuite
156619 copy it over to the cris forks of the test+run functions.
156625 intermediates to there all the time. When using runtest's --objdir
156627 a big problem currently as we never change --objdir, but in order to
156628 support parallel test execution, we're going to start setting that
156629 option, so clean up the code ahead of time.
156631 We also have to tweak some of the cris tests which were making
156636 sim: testsuite: rename global_sim_options to SIMFLAGS_FOR_TARGET
156637 Now that all the other toolchain settings have been renamed to match
156638 the dejagnu settings of XXX_FOR_TARGET, rename global_sim_options to
156678 2. Pass -W to readelf to force CU: in output due to:
156681 printf (_("CU: %s/%s:\n"), directory, file_table[0].name);
156683 printf ("%s:\n", file_table[0].name);
156688 * testsuite/gas/elf/dwarf-5-nop-for-line-table.d: Pass -W to
156704 This causes the source file $src/gdb/testsuite/gdb.ada/dgopt/x.adb to be
156706 debug information should refer to the x.adb.dg file.
156725 not contain any code, but includes another one that does:
156756 Any code that wants to set compiler flags can use CFLAGS_FOR_TARGET
156757 instead to get the same effect.
156760 These haven't been used in over 20 years. The sim testsuite used to
156761 run these tools itself directly, but back in ~1999 it switched to the
156763 logic only utilizes XXX_FOR_TARGET variables. Punt them here to avoid
156764 confusion with dead code.
156770 This commit adds support for RISC-V disassembler options to GDB. This
156775 All of the binutils refactoring has been moved to a separate, earlier,
156782 opcodes/riscv: add disassembler options support to libopcodes
156813 (print_riscv_disassembler_options): Rewrite to use
156820 is copied, and the dir and md5 fields are left to their default values.
156829 * dwarf2dbg.c (out_dir_and_file_list): When copying file 1 to file 0,
156837 newlib and its ctype.h), so use P_ instead to avoid conflicts.
156861 global was moved from being always defined, to only being defined when
156865 /usr/bin/ld: extension.o:(.rodata+0x120): undefined reference to `extension_language_python'
156872 Revert "gdb: add assert in remote_target::wait relating to async being off"
156889 * aarch64-asm.c: Replace assert(0) with real code.
156896 Basic ambiguity detection assumes that when 2 fields with the same name
156898 always correct. Consider the following code:
156914 if we tried to use c.e in code, the compiler would warn of an ambiguity,
156917 same address. however, "print c.e" would fail to report the ambiguity,
156920 The new code solves this by checking for other found_fields that have
156924 The testcase gdb.cp/ambiguous.exp was also changed to test for this
156932 '.data.*' are only 4-byte aligned. '.gnu.linkonce.r.*' is aligned to
156933 16 bytes, yet '.rodata' and '.rodata.*' are aligned to 4 bytes. For
156934 '.bss' all input sections are only aligned to 4 bytes.
156937 require their memory operands to be aligned to 16-byte boundaries.
156940 to 16 bytes, for all code and data sections referenced in the default
156944 name match for .text, .data. Add entries for .const, .rodata,
156957 earlier seems to cure the missing empty line.
156963 * po/BLD-POTFILES.in: Regenerate.
156964 * po/SRC-POTFILES.in: Regenerate.
156969 * po/fr.po; Updated French translation.
156974 In a later commit I plan to add disassembler styling. In the same way
156975 that we have a source_styling_changed observer I would need to add a
156981 seems unnecessary right now, so, in this commit, I plan to rename
156982 source_styling_changed to just styling_changed, then, in the later
156992 this I had to move the definition of extension_language_python to
156999 gdb: add assert in remote_target::wait relating to async being off
157026 to check target_async_permitted in remote_target::is_async_p, if this
157028 assert to this effect in target_is_async_p.
157035 The target_async_permitted flag allows a user to override whether a
157038 into the common target.c code.
157048 2. GDB should never try to enable async mode for a target that
157055 do call target_is_async_p so if GDB starts to misbehave we should
157067 changed, which will hopefully catch any direct calls to these methods
157079 In some of these places this is because we need to ask before the
157081 unnecessary to go through the wrapper when we are already in target.c
157082 code.
157084 However, in the next commit I'd like to hoist some common checks out
157085 of target specific code into target.c. To achieve this, in this
157105 Before commit 3b6acaee895 "Update more calls to add_prefix_cmd" we had the
157115 Future logs will be written to gdb.txt.
157118 Currently logging to "gdb.txt".
157141 Update the docs and testsuite to use "set logging enabled". Mention the new
157152 Set whether logging overwrites or appends to the log file.
157166 the help string, and forgot to update it. Change it for a real help
157181 Revert the part of the patch related to this, but not the other hunk.
157219 In this commit we switch from using gdb::def_vector to using
157220 std::vector, this alone should be enough to ensure that the fields are
157221 initialized to zero.
157224 'struct pst_map' to make it crystal clear how the struct will start
157243 and makes make to warn about the missing package.
157249 pei-aarch64-little. This is not a full target and only exists to support EFI
157253 a container format. This format has been added to elf based aarch64 targets
157270 Type: PE32+ executable (EFI application) (stripped to external PDB), for MS Windows
157360 Also, the debuginfod I have installed does not appear to handle
157372 * configure.ac (ACX_BUGURL): Set to https://sourceware.org/bugzilla/
157373 * po/Make-in (msgid-bugs-address): Likewise.
157374 * README: Report bugs to the above.
157377 * po/Make-in (msgid-bugs-address): Update.
157380 * po/Make-in: Update bug address.
157382 * po/Make-in: Update bug address.
157384 * po/Make-in: Update bug address.
157386 * po/Make-in: Update bug address.
157388 * po/Make-in: Update bug address.
157396 …../../gdb-11.1/gdb/gnu-nat.c:3204:17: error: no matching function for call to add_cmd(const char […
157409 …:161:30: note: no known conversion for argument 3 from cmd_list_element* to void (*)(const char*…
157416 …../../gdb-11.1/gdb/gnu-nat.c:3210:18: error: no matching function for call to add_cmd(const char […
157424 gnu-nat.c: fix calls to add_info_alias
157448 I would like to print target_waitkind values in debug messages, so I
157449 think that a target_waitkind-to-string function would be useful. While
157455 As a convenience, make string_appendf return the same reference to
157460 ... keeping the code concise.
157466 gdb: rename target_waitstatus_to_string to target_waitstatus::to_string
157476 If we always use the .option arch to call the riscv_update_subset, then
157523 337 | to->cpt_si_lower = from_ptrace.cpt_si_lower;
157527 The problem is that code added in commit d3d7d1ba3bb "[gdb/tdep] Handle
157531 Fix this conservatively by disabling the code for x32.
157597 - readelf interprets the DW_FORM_line_strp reference to .debug_line_str as
157617 The reason that the CU has 64-bit dwarf is because -gdwarf64 was passed to
157636 - a different way to encode the directory and filename tables.
157643 This will need to be properly fixed with an intrusive fix that changes how
157667 Generate this field in the dwarf assembler, for now hardcoding the value to 1,
157685 - $srcdir/$subdir/$srcfile is compiled to an executable using
157694 up a make check with RUNTESTFLAGS like this to catch all dwarf assembly
157697 rtf=$(echo $(cd src/gdb/testsuite; find gdb.* -type f -name "*.exp" \
157706 to:
157733 giving names to the offending 'gdb_test "continue"' statements to make
157741 The v850 testsuite code has been testing the $opt variable, but this
157743 this was a random variable leaking out of the sh testsuite code. As
157744 far as I can tell, it has always been this way. That means the code
157747 This failure can be easily seen in practice by running the v850 code
157756 You may need to set your DEJAGNU environment variable.
157759 ERROR: tcl error code TCL LOOKUP VARNAME opt
157765 because the common sim testsuite code makes an assumption about the
157768 the core sim logic a bit to support omitting the = so that we can
157769 switch v850 to the standard all_machs setting and avoid opt entirely.
157784 Because it only happened on the H8/SX variant I was able to zero in on
157787 As the code stands it checks if code->op3.type == 0 to try and identify cases
157794 fail to recognize the instruction as a short-form and fail to set up the
157797 I initially initialized the op3.type field to zero, but didn't like that
157823 the gdb_assert presence conditional to the __cplusplus version, to
157834 source-cache.c:207: undefined reference to \
157838 [ I configured gdb without explicit settings related to source-highlight, so
157855 In the enable_source_highlight=auto scenario, this allows the build to skip
157858 In the enable_source_highlight=yes scenario, this allows the build to error
157866 This comment was long time ago associated to the function
157904 PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:81 (set breakpoint)
157905 UNRESOLVED: gdb.mi/mi-var-cp.exp: unable to start target
157909 I didn't manage to reproduce this, but I did notice that the initial
157944 to handling 64-bit labels.
157961 (gdb) PASS: gdb.threads/thread-specific-bp.exp: non-stop: continue to end
158084 The new direcitve is used to enable/disable extensions for the specific
158085 code region. For example,
158097 from 2.0 to 3.0.
158099 from 2.0 to the default one according to the chosen isa spec.
158104 versions to the subset list.
158107 (riscv_update_subset): Updated to make .option arch directives workable.
158111 (riscv_rps_as): Init the subset_list to NULL, we will set it later
158115 (s_riscv_option): Support new .option arch directive, to add, remove
158116 or update subsets for the specific code region.
158130 Re: Add multibyte character warning option to the assembler.
158132 directives to suit those target's unusual syntax. Thus gas is passed
158133 a temporary file name.
158135 * testsuite/gas/all/multibyte1.l: Ignore file name.
158150 For binutils part, we need to support a new direcitve: .variant_cc.
158151 The function symbol marked by .variant_cc means it need to be resolved
158153 entry, STO_RISCV_VARIANT_CC, to indicate there are symbols with the
158157 I think it's time to commit this.
158161 flag. It is used to check if relocations for variant CC symbols
158167 (riscv_elf_merge_symbol_attribute): New function, used to merge
158179 value set via directives, then attaching an IFUNC resolver to that symbol
158188 * elf/riscv.h (DT_RISCV_VARIANT_CC): Defined to (DT_LOPROC + 1).
158189 (STO_RISCV_VARIANT_CC): Defined to 0x80.
158201 Instead of always using target_alias as a prefix on the name, use
158207 won't be useful to anyone.
158232 Don't know how to run. Try "help target".
158251 doesn't know how to run (since it's prevented from using the native
158254 connect to it. The other (two) tests after this point both pass.
158257 When a "Don't know how to run message" is received, the test is
158260 I've also added a comment explaining the reason for needing to check
158261 for "Don't know how to run" despite bailing out at the top of the test
158279 "class", as the compiler kind of suggests, the code compiles.
158290 -enclosed initializer list>' to 'const ia64_infcall_ops'
158301 code is correct, but still, change it to make gcc 4.8 happy. Don't
158309 gdb: move AIX_TEXT_SEGMENT_BASE to rs6000-aix-tdep.c, remove rs6000-tdep.h
158315 rs6000-aix-tdep.c, so move it to the beginning of that file.
158321 gdb: rename rs6000-nat.c to rs6000-aix-nat.c
158322 This file seems to be AIX-specific, according to its contents and
158323 configure.nat. Rename it to rs6000-aix-nat.c, to make that clear (and
158324 to follow the convention).
158333 You can also specify a negative repeat count to examine memory backward from
158338 The 0x54328 looks like a typo, which was intended to be 0x54318.
158353 Add multibyte character warning option to the assembler.
158389 Change gdb_assert_not_reached to accept a format string plus
158393 to add the function name, the callers can no longer pass a translated
158406 program and thus the return from the command causing the test to fail.
158408 The call to proc check_continue "execve" is removed and replaced with
158409 just the call to check_call_to_syscall "execve" to verify the command
158414 include "le" in the name. The istarget "power64-*-linux*" check fails to
158415 match LE sytems. The expected string is updated to capture both Big Endian
158429 gdb.base/break-interp.exp. The patch adds a funtion and registers it to
158431 struct ppc_inferior_data to the ppc-tdep.h include file to make it visible
158432 to the ppc-linux-tdep.c and rs6000-tdep.c files. Additionally the function
158433 get_ppc_per_inferior is made external in ppc-tdep.h to make it visible in
158443 DUPLICATE: gdb.arch/ppc-longdouble.exp: continue to breakpoint: return
158448 This patch fixes the duplicate tests by adding $name to the
158485 I managed to reproduce this by adding "sleep (5)" at the start of main in
158499 (TARGET32_LIBOPCODES_CFILES): ..to here.
158531 Reuse float instructions in INSN_CLASS_F/D/Q, use riscv_subset_supports to
158577 aarch64: [SME] SVE2 instructions added to support SME
158578 This patch is adding new SVE2 instructions added to support SME extension.
158828 (struct aarch64_operand): Increase fields size to 5.
158891 aarch64: [SME] Add +sme option to -march
158894 +sme-i64 to -march command line options.
158914 Set the default DLL chracteristics to 0 for Cygwin based targets.
158915 * emultempl/pep.em (DEFAULT_DLL_CHARACTERISTICS): Set to 0 for
158921 …he linker itself so that it will gracefully handle being unable to assign any sections to such a s…
158937 to
158944 with the compiler complaining about a missing class name after the colon.
158951 Augment the register description XML to expose the BTI BTYPE field contained
158958 elfedit: Add --output-abiversion option to update ABIVERSION
158989 (riscv_supported_std_ext): Updated verison of v to 1.0.
158991 (riscv_parse_check_conflicts): The zvl extensions need to
158993 (riscv_multi_subset_supports): Check the subset list to know
159003 (my_getVsetvliExpression): Similar to my_getVsetvliExpression,
159008 to rv32ifv_zkr.
159056 huge core count. The change switches to std::string for memory
159068 Also add build_id parameter to read_core_file_mappings_loop_ftype.
159073 Extend the common test framework to support $pwd replacements in
159080 logic to port over there. We have to duplicate that into the cris
159086 This tag is used to force tests to be built dynamically (i.e. without
159092 way of suppressing the stock settings wholesale. We want these to
159093 all pass out of the box with little to no configuration so that they
159096 With dropping "dynamic", it'll be easier to merge the custom cris
159103 to get it fixed upstream.
159123 While at it renamed 'mnimonic' to 'mnemonic'.
159129 to use gdb::array_view"), I believe I made a mistake with the length of
159137 not correct. Since they are meant to return the value's contents buffer
159141 so this didn't cause a problem. But it became apparent when trying to
159166 * elf/common.h (DT_ENCODING): Bump to 38.
159172 (dump_relocations): Change is_rela to rel_type.
159186 Also, in C++11, __func__ expands to the demangled function name, so the
159188 Finally, in places where FUNCTION_NAME is used, I think it's enough to
159189 print the function name, no need to print the whole signature.
159190 Therefore, I propose to just remove FUNCTION_NAME and update users to
159198 The motivation is to reduce the number of places where unmanaged
159207 In the next commit I'd like to reference gdb_unique_ptr within the
159213 include to common-utils.h I was getting a dependency cycle; before my
159217 To break this cycle, I propose to move xfree into its own header file,
159232 require_not_optimized_out to throw OPTIMIZED_OUT_ERROR.
159235 surprise me, we don't usually write code like:
159260 PR gdb/28586 points out that "make distclean" fails to delete
159271 Remove the inferior output, and revert commit 1f28b70def1 to make the matching
159278 x86: Don't allow KMOV in TLS code sequences
159279 Don't allow KMOV in TLS code sequences which require integer MOV
159284 code sequences.
159296 be specified before the program to be run without an explicit option.
159304 basic set/unset/clear options. These are a bit clunky to use,
159310 With these in place, we can adjust the custom cris testsuite to use
159315 sim: syscall: hoist argc/argn/argnlen to common code
159317 the Blackfin implementation of these syscalls to the common code.
159320 Now that we have access to the argv & envp strings, finish implementing
159322 pointer instead of setting to the length, and make sure we don't write
159326 Pass the existing strings data to the callbacks so that common
159332 We've been passing the environment strings to sim_create_inferior,
159334 logic to stuff the stack for user-mode programs, but that's it.
159338 more functionality in the run interface, and to unify some of the
159352 add testcase for new CSR name 'seed' which is the Entropy Source in zkr.
159393 * testsuite/gas/riscv/priv-reg-fail-version-1p10.d: Updated march to
159406 zbb,zbc, we just change the class attribute to make them both support.
159408 and Zkne extensions on rv64. Add new operand letter 'y' to present 'bs'
159409 symbol and 'Y' to present 'rnum' symbolc for zkn instructions. Also add
159432 riscv_supported_std_ext, to make the order check right with
159458 - Make the "debuginfod enabled" setting default to "off" when debuginfod
159465 hit an error if they try to enable the use of debuginfod.
159467 this one needs to see the DEBUGINFOD_URLS_ENV_VAR macro, provided by
159470 "debuginfod verbose". Alternatively, we could hard-code
159471 "DEBUGINFOD_URLS" in the code (in fact, it was prior to this patch,
159473 DEBUGINFOD_URLS_ENV_VAR), or use a dummy string to store the setting,
159476 Rename debuginfod_enable to debuginfod_enabled, just so it matches the
159477 setting name.
159487 Commit 345bd07cce33 ("gdb: fix gdbarch_tdep ODR violation") forgot to
159489 Linux. This patch updates them all (to the best of my knowledge).
159490 These are the files I was able to build-test:
159509 If there are still some build problems related to gdbarch_tdep in them,
159510 they should be pretty obvious to fix.
159524 gdb: add arc-newlib-tdep.c to ALL_TARGET_OBS
159526 but it should be. Add it to ALL_TARGET_OBS.
159529 gdbarch_tdep ODR violation") forgot to update.
159537 to use with git send-email. I'm planning to use this for my RISC-V
159584 but the "Detaching" line has been redirected to
159589 By default, GDB debug output will go to both the terminal and the logfile.
159590 Set debugredirect if you want debug output to go only to the log file.
159595 The set print inferior-events command allows you to enable or disable printing
159602 Update the gdb.base/foll-vfork.exp test-case to not require
159620 Extend the prologue analyzer to handle the bti instruction
159627 I would like to be able to use non-trivial types in gdbarch_tdep types.
159631 To allow it, rename all gdbarch_tdep types to <arch>_gdbarch_tdep, and
159633 necessary to be able to pass pointers to all these <arch>_gdbarch_tdep
159634 objects to gdbarch_alloc, which takes a pointer to gdbarch_tdep.
159639 owned by the gdbarch objects, and then it would become useful to have a
159647 Most changes are fairly straightforward, mostly needing to add some
159649 doing its own little weird thing to define its gdbarch_tdep. I did my
159650 best to adapt it, but I can't test those changes.
159662 This patch ensures that filename entries are kept as is, in order to
159672 Gas uses the directory part, if present, of the .file 0 directive to set
159676 Now Gas also uses the file part of the same directive to set entry 0 of the
159704 The point of this test is to just make sure the usage text is shown,
159706 to match the beginning. This fixes breakage when the output changed
159707 slightly to include [--].
159710 The new argv processing code assumed that we were always passed a
159712 get a chance to output an error message about incorrect usage.
159718 The #dest field used in the cris testsuite is a bit of hack to set the
159719 argv[0] for the tests to read out later on. Now that the sim has an
159720 option to set argv[0] explicitly, we don't need this custom field, so
159721 let's drop it to harmonize the testsuites a little.
159723 sim: run: add --argv0 option to control argv[0]
159724 We default argv[0] to the program we run which is a standard *NIX
159725 convention, but sometimes we want to be able to control the argv[0]
159727 to change their behavior or output). Add an option to control it.
159732 We use the program argv to both find the program to run (argv[0]) and
159733 to hold the arguments to the program. Most of the time this is fine,
159734 but if we want to let programs specify argv[0] independently (which is
159737 So let's split the path to the program to run out into a separate
159740 By itself, this code is more of a logical cleanup than something that
159742 follow up commit. Split the changes to make it easier to review.
159747 Set the mach to the right value all the time, and update xfail to
159759 common_test_1.c:56:14: note: use '&c5[0] > &c4[0]' to compare the addresses
159768 PowerPC64 @notoc in non-power10 code
159770 @notoc cals from non-power10 code in the rare case that using such a
159774 The new relocation tells the linker to not use power10 instructions on
159779 for stubs if power10-only relocations are detected, continues to be
159800 reloc. Modify stub handling to suit new scheme.
159885 This code triggers -Werror=switch-bool warnings with <=gcc-5 versions.
159886 Rework it to use if statements instead as it also simplifies a bit.
159888 sim: sh: rework carry checks to not rely on integer overflows
159890 triggers warnings in this code that relies on integer overflows to test
159891 for carries. Change the logic to test against the limit directly.
159900 The test stops at <signal_handler called> which is the call to the handler
159902 gdb_test "$enter_cmd to handler" with a gdb_test_multiple test. The multiple
159906 (gdb) PASS: gdb.base/sigstep.exp: stepi to handler, nothing in handler, step
159907 from handler: continue to signal
159917 (gdb) PASS: gdb.base/sigstep.exp: stepi to handler, nothing in handler,
159918 step from handler: stepi to handler
159928 vfork relations in info inferiors: continue to child exit
159949 (ALL_MACHINES): Likewise split to
159963 Extract allowed styles from libiberty, so we don't have to worry about
159965 in libiberty/cplus-dem.c but it can be here for a while to iron out
159976 * po/POTFILESin: Regenerate.
159994 - GDB hangs, not showing the prompt, impossible to interrupt with ^C
159996 When the resumed thread exits, we expect the target to return a
160014 actually resumed, to see if we should ignore that event (see comments in
160024 My first fix was to change the condition to:
160029 ... but then it occured to me that we could simply check for:
160042 When building with clang 13 (and -std=gnu++17 to work around an issue in
160056 These are due to recent commit 5fff6115fea "Fix
160080 These are due to recent commit 5fff6115fea "Fix
160100 to use a C source file instead.
160108 RISC-V: Dump objects according to the elf architecture attribute.
160111 according to the generated architecture string. This patch resolves the
160159 For the current objdump, we dump data to .byte/.short/.word/.dword, and
160160 dump the unknown or unsupported instructions to .2byte/.4byte/.8byte, which
160163 it to .2byte 0x1 as a unknown instruction, since the rvc is disabled.
160165 However, consider that some people may use the new objdump to dump the old
160167 architecture string to rv64g by bfd/elfxx-riscv.c:riscv_set_default_arch.
160168 But this will cause rvc instructions to be unrecognized. Therefore, we
160169 set the default architecture string to rv64gc for disassembler, to keep
160186 * config/tc-riscv.c (riscv_subset_supports): Moved to
160204 to set the default architecture string.
160206 variable, it is more convenient to initialize riscv_rps_dis.
160207 (riscv_subsets): Defined to recoed the supported
160211 to make sure if the instructions are valid or not.
160214 architectrue string to rv64gc.
160219 Most code isn't using this, and the only call site (in one cris file)
160220 can use target_compile directly. So switch it over to simplify.
160224 been impossible to verify this code actually still works. Since it
160226 and we want to remove, drop the test to avoid all the trouble.
160230 to use %s with an empty string to avoid the compiler warning but not
160234 There's no need to sync testutils.inc with remote hosts. The one
160236 Delete it to simplify.
160239 Objcopy was used to create a binary file of just the executable code
160240 since the environment requires code to based at address 0. We can
160241 accomplish the same thing with the -Ttext=0 flag, so switch to that
160242 to get rid of custom logic.
160251 Simon pointed out that my recent patches to .debug_loclists caused
160253 his system compiler defaults to PIE.
160255 This patch changes this code to unconditionally apply the text offset
160256 here. It also changes loclist_describe_location to work more like
160274 * config/tc-arm.c (arm_cpus): Add cortex-a710 to -mcpu.
160282 on XCOFF") changes the structure associated to the internal
160284 has been forgotten, leading to compilation errors of this kind:
160292 Fix it by adjusting the COFF code in GDB.
160299 Add a test-case to excercise the problem scenario reported in PR28527 and
160306 code in _exit may vary across os instances, we cannot guarantee that the
160313 The benefit of this test-case is that it exercise real-life code and may
160315 test-case to investigate in case a similar problem occurs.
160321 sim: frv: flip trapdump default back to off
160322 When I refactored this by scoping it to sim-frv-xxx in commit
160324 unique configure flag"), I changed the default from off to on.
160327 to off by default.
160346 Previous flags were aimed to be run with XLC.
160355 On XCOFF, ".file" pseudo-op allows 3 extras parameters to provide
160356 additional information to AIX linker, or its debugger. These are
160368 (coff_write_symbols): Add C_FILE auxiliary entries to
160387 * config/tc-ppc.h (OBJ_COFF_MAX_AUXENTRIES): Change to 4.
160393 * coff/internal.h (union internal_auxent): Change x_file to be a
160409 The name of this new test was based on that of an existing test,
160411 adding to it, and then rewriting almost all of it. It's different
160425 which I've created along with this bug fix. The name of the new test
160428 relevant files in the same directory and have renamed the files to all
160442 at the interactive case first in order to see the correct/expected
160501 comment and code near the start of the function:
160511 Also, as described by this comment prior to the 'async' field
160603 to process the dprintf breakpoint action. However, at this point,
160605 return, i.e. prior to executing the command(s) associated with the dprintf
160648 This relatively short backtrace is due to the current UI's async field
160649 being set to 1.
160651 Yet another thing to be aware of regarding this problem is the
160652 difference in the way that commands associated to dprintf breakpoints
160655 the commands to be run on the bpstat chain constructed in
160667 (I must admit, however, that my understanding of this code isn't
160668 complete enough to say why. I'll trust that whoever implemented it
160672 states that the reason for checking this variable is to avoid
160674 bs->commands. We know that a dprintf command is constrained to either
160677 Therefore, infinite recursion due to a 'source' command cannot happen
160680 I chose to fix this problem by having dprintf_after_condition_true()
160682 longer attempts to go through bpstat_do_actions_1() avoiding the
160684 command chain. I think it simplifies this code a little bit too, a
160726 been read before attempting to access section name.
160728 (process_mips_specific): Delete dead code.
160755 Pass --quiet to GDB to avoid these warnings.
160762 When the code to handle DW_LLE_start_end was added (as part of some
160763 DWARF 5 work), it was written to add the base address. However, this
160767 This patch changes a couple of spots in dwarf2/loc.c to fix this
160768 problem. It then changes decode_debug_loc_addresses to return
160771 This only showed up on the RISC-V target internally, due to the
160773 couple of existing loclists test cases to demonstrate the bug.
160778 The rhES5 build failed due to an upstream import a while back. The
160788 the code to check it.
160828 Add --unicode option to control how unicode characters are handled by display tools.
160829 * nm.c: Add --unicode option to control how unicode characters are
160845 Switch from the centralized list in the exp file to each test declaring
160850 We have to mark the psh* tests as shdsp only (to match what the exp
160852 weren't even being run by the exp file), and to fix the expected
160875 Lets consider the following code sample:
160902 array_view to be done:
160918 object for which the A member is 2 and this call to print_all<Parent>
160921 This comes down to the fact that a Child* is convertible into a Parent*,
160922 and that an array view is constructed to a pointer to the first element
160923 and a size. The valid type pointed to that can be used with this
160925 pointer to a member into the underlying container can be converted into a
160928 This patch proposes to change the constraints on the gdb::array_view
160955 target to commit each resumption immediately, instead of being able to
160963 scoped_disable_commit_resumed in continue_1 to avoid that.
160970 resumed. So, move the scoped_disable_commit_resumed to the inner scope
161021 While reading another patch, I saw that this function didn't need to
161030 gdb: remove bpstat typedef, rename bpstats to bpstat
161033 it as something to remember that adds cognitive load. Also, with C++,
161034 we might want to be able to pass bpstats objects by const-reference, not
161037 So, remove the bpstat typedef and rename struct bpstats to bpstat (since
161046 time to put it in the binutils source tree. It's believed correct and
161050 are highly unlikely ever to see an example of any of them.)
161079 sim: sh: fix conversion of PC to an integer
161080 On LLP64 targets where sizeof(long) != sizeof(void*), this code fails:
161081 …sim/sh/interp.c:704:24: error: cast from pointer to integer of different size -Werror=pointer-to-…
161085 Since this code simply needs to check alignment, cast it using uintptr_t
161091 Casting 0 to a pointer via (long *) doesn't work on LLP64 targets:
161092 error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
161095 bit of code does.
161109 The code assumes that all _WIN32 targets are the same and can
161110 define isnan to _isnan. For mingw targets, they provide an isnan
161115 with our local usage here. Undefine the system one to fix building
161118 sim: ppc: switch to libiberty environ.h
161119 Drop our compat code and assume environ exists to simplify.
161126 and I don't have the expertise to dive into each opcode to figure
161127 out the right way to clean them up.
161130 This block of code relies on i to control which bits to test and how
161131 many times to run through the loop, but it never actually initialized
161132 it. There is another chunk of code that handles the pdmsb instruction
161133 that sets i to 16, so use that here too assuming it's correct. The
161140 Add parentheses to a bunch of places where the compiler suggests we
161141 do to avoid confusion to most readers.
161151 to fix a long standing issue with the SH register layout. The use
161154 but code goes beyond that to reach into the fregs that follow. But
161164 sim: mips: use sim_fpu_to{32,64}u to fix build warnings
161166 sim_fpu_to{32,64}u instead of sim_fpu_to{32,64}i to fix the following
161210 This clashes with some of our old code that declares yyerror to return
161234 is extended to 0x00000000ffffffff, probably not what was intended
161269 move those up to the top sim dir like other projects to make it clear.
161283 places to use this function.
161290 happen that the kernel manages to open a /proc/PID/task/LWP/mem file,
161301 GDB has code in place to gracefully handle the case of opening the
161309 However, there's a window where the kernel manages to find the thread,
161325 /proc/PID/task/LWP/mem file when GDB switches to a different inferior,
161337 The solution back then was to make the kernel fail any ptrace
161348 This however, only applies to ptrace, not to the /proc/pid/mem file
161349 opening case. Also, even if it did apply to the file open case, we
161350 would want to support current kernels until such a fix is more wide
161357 is created or is attached to or forks, at which point we know the
161358 inferior is stable and stopped and isn't thus going to exec, or have a
161375 it was supposed to be stopping. When the test was first added, line
161410 too hard to support larger sizes (patches welcome!) but for now just
161435 did introduce that, I now don't think it's a good idea to do something
161438 First, there's no dedicated CLI command to show whether the index-cache
161439 is enabled, so it has to be custom output in the "show index-cache
161447 ^done,showlist={option={name="directory",value="/home/simark/.cache/gdb"}}
161454 Update tests using "set index-cache on/off" to use the new command.
161455 Update the regexps in gdb.base/maint.exp to figure out whether the
161456 index-cache is enabled or not. Update the doc to mention the new
161466 and int), but more importantly it makes it a bit annoying to write a
161467 getter, you have to use a scratch static variable or something similar
161468 that you can refer to:
161478 Change the getter and setter function signatures to receive and return
161540 Add/Remove the rvc extension to/from the riscv_subsets once the
161541 .option rvc/norvc is set. So that we don't need to always check
161543 riscv_lookup_subset to search the subset list is enough.
161545 Besides, we will need to dump the instructions according to the
161547 to parse the architecture string from the elf attribute before
161548 dumping any instructions, and also needs to recognized the
161550 some functions will need to be moved from gas/config/tc-riscv.c
161551 to bfd/elfxx-riscv.c, including riscv_multi_subset_supports and
161561 (riscv_update_subset): Add/Remove an extension to/from the
161570 (riscv_set_arch): Don't need to call riscv_set_rve.
161571 (reg_lookup_internal): Call riscv_subset_supports to check
161573 (s_riscv_option): Add/Remove the rvc extension to/from the
161580 of files to include per-architecture prefixes. That can result in
161593 rewrite logic to turn the sim-engine.h include into the relevant
161619 sim: ppc: switch to common builds for callback objects
161620 We don't need to build this anymore ourselves since the common build
161621 includes it and produces the same object code. We also need to pull
161646 referring to `inferior`, not `inf`.
161648 Adjust the comment on top of `struct inf` to clarify the purpose of that
161658 compiled with ASan, compared to a GDB compiled without ASan. Some of
161660 it exits, and the fact that it makes it exit with a non-zero exit code.
161662 I generally try to remember to set ASAN_OPTIONS=detect_leaks=0 in my
161664 it would be nice if the testsuite did it. I don't see any use to have
161666 test that ensures GDB doesn't leak memory, which isn't going to happen
161683 Use section name in warnings in display_debug_loc
161691 This patch fixes the warning messages in display_debug_loc to use the
161692 name of the section that is being processed.
161697 * dwarf.c (display_debug_loc): Use section name in warnings.
161711 this and simplifies the code a bit. It allows us to list all of the register
161714 I plan to backport this fix to GDB 11 as well.
161737 Despite the code called properly operator new[] and operator delete[].
161742 The question is how many variants of the delete operator need to be provided.
161758 yyleng gives the pattern length, xstrdup just copies up to the NUL.
161763 problem and fixed it by hand, and to implement xmemdup0 in gas.
161781 are not used by all architecture ports. Doesn't seem to be a hard
161793 It's possible for the rounding up of the arange pointer to exceed the
161798 to 2*address_size boundary. Use signed comparison in loop.
161802 sim: hoist cgen mloop rules up to common builds
161804 the build logic up to the common builds for better parallelization.
161806 We have to extend the genmloop.sh logic a bit to allow outputting
161807 to a subdir since it always assumed cwd was the right place.
161815 sim: hoist mn10300 & v850 igen rules up to common builds
161817 the build logic up to the common builds for better parallelization.
161820 arch-specific configure logic that needs to be untangled first.
161824 sim: hoist gencode & opc2c build rules up to common builds
161826 the build logic up to the common builds for better parallelization.
161842 symbol if its code entry symbol isn't dynamic, to ensure bogus dynamic
161843 symbols are not created. The change to func_desc_adjust requires that
161851 (ppc64_elf_edit): Move func_desc_adjust iteration over syms to..
161867 Dump of assembler code for function _exit:
161955 The test-case doesn't expect to run into __x86.get_pc_thunk.ax, which is a
161975 [gdb/doc]: Updated manpages to be consistent with help
161976 Updated manpages to be consistent with help information provided by the
161980 * added most of the missing options to the manpage;
161982 doesn't seem to be supported anymore.
161986 --args to the manpage
162001 "tocopy" in this code was an int, which when the size to be copied was
162003 value of course is less than BUFSIZE, but when converted to
162012 arm: add armv9-a architecture to -march
162017 have to handle new Armv9 as well.
162025 * cpu-arm.c: Add 'armv9-a' option to -march.
162070 Also Update bfd_mach_arm_unknown to use new macro ARM_ARCH_UNKNOWN.
162075 Clean up the warnings in sim-if, then reduce the -Werror disable to
162081 the -Werror disable to the files that still aren't clean that now that
162086 disable to that now that we require GNU make and can set variables on
162091 disable to that now that we require GNU make and can set variables on
162097 disable to that alone now that we require GNU make and can set variables
162102 disable to that alone now that we require GNU make and can set variables
162107 disable to that now that we require GNU make and can set variables on
162112 disable to that alone now that we require GNU make and can set variables
162120 The custom echo was off by one space relative to all the others.
162126 The void *data field is used to past arbitrary data between event
162127 handlers, and these are using it to pass an integer. Fix up the
162128 casts to avoid using (long) to cast to/from pointers since there
162132 Use %p to print pointers instead of trying to cast them to longs.
162136 these casts over to uintptr_t.
162139 Don't blindly cast every possible type to (long). Change to the right
162142 sim: ppc: switch core types to stdint.h types
162143 There's no need to define these ourselves anymore, so switch to the
162148 The void *data field is used to past arbitrary data between event
162149 handlers, and these are using it to pass an enum. Fix up the casts
162150 to avoid using (long) to cast to/from pointers since there is no
162154 Don't blindly cast every possible type to (long). Change to the right
162179 What happens to cause the failure is that the two branches in
162186 The first one will match the above, without causing the second one to
162187 ever match -- leading to a spurious failure.
162189 Anchoring the regexps seems to fix the problem, and works for the
162194 Fix unittest.exp failure due to 'set debuginfod' addition
162208 The ppc codebase is unique and doesn't leverage common/, so have to
162209 add silent rules to it specifically.
162213 no need to manually specify any deps.
162217 to avoid the build-time generated header file as we move to drop it.
162221 this to the common logic so we only build it once for multi-targets.
162231 callback code that was using the defines to use symbolic names
162232 instead, and localize some of the defines in the ARM code (since
162234 then remove the defines out of the header so no new code can rely on
162246 nltvals.def file, then runs a build-time tool to turn that into a C
162249 for newlib/libgloss environments, which makes it confusing to support
162250 other userland runtimes (like Linux). Let's simplify to make this
162251 easier to understand & build. We don't namespace the variables yet,
162257 This allows us to move it to the common set of objects so it's only
162273 Tweak the if indentation & brace style to avoid ambiguous warnings.
162275 Add ATTRIBUTE_UNUSED to UART functions that aren't used when FAST_UART
162285 This will make it easy to include arch-specific logic (build files)
162286 as we migrate ports to the common top level build.
162289 The v850 port used to have a gencode helper, but it was deleted long
162297 and use the silent build helpers to tighten up output.
162300 Update the makefile & configure related rules to use the silent
162304 Update the gencode rules to use the silent build helpers.
162312 Add a new ECHO_STAMP helper and convert existing stamp code over
162313 to it. This is mostly common rules and cgen mloop rules.
162317 Also switch to using $@ when it makes sense.
162340 winsock2.h is included by sys/time.h, so sys/time.h has to be included
162348 This (and other) code from coffcode.h is broken for x86_64_coff_vec,
162368 files but will write garbage to the output file, a fact found by
162412 Change the test to use the copy_* tests instead.
162421 Refer to this new section in the description of the '--with-debuginfod'
162432 the user to either enable or disable debuginfod when the next query
162433 is about to be performed:
162439 To make this setting permanent, add 'set debuginfod on' to .gdbinit.
162445 is set to 'on', 'off' or 'ask'.
162448 space-separated debuginfod server URLs to be queried. The default
162451 Finally add 'set/show debuginfod verbose' commands to control whether
162457 Download failed: No route to host. Continuing without debug info for /lib64/libc.so.6.
162563 can be used to look up an integer type of a given size and
162564 signed-ness. This is useful to avoid dependency on debuginfo when a
162567 v2 moves this to be a method on gdb.Architecture and addresses other
162591 if (ary_dim != NULL && ary_dim->code () == TYPE_CODE_ARRAY)
162599 this code in fortran_undetermined::evaluate:
162608 I wasn't really sure of the best way to fix this, so in the meantime I
162616 This happens because opcodes rejects an attempt to disassemble for an
162620 chose to do it this way because this seems to be the only situation
162623 For v2 of this patch, I've also updated memory_error_test to do the
162624 same thing. This is needed due to the "improve error reporting from
162635 src/gdb/maint.c:1183: undefined reference to \
162642 Fix this by guarding the call to selftests::for_each_selftest in
162663 * readelf.c (decode_arm_unwind_bytecode): Add support to decode
162669 Move the gas testsuite files to where they belong.
162703 from the bare metal single step code from or1k_single_step_through_delay
162712 mostly handled by GDB genric code. This patch provides the logic of how
162713 to read and write the ptrace registers between linux and GDB.
162723 Update it to match OpenRISC.
162756 ARM assembler: Allow up to 32 single precision registers in the VPUSH and VPOP instructions.
162767 In debug messages, I think it would be more helpful to print ptid using
162770 so useful, as it doesn't tell which process a thread belongs to.
162784 gdb: add selftest name completion
162785 After the previous commit, it is easy to add completion for selftest
162787 completion, so it served as a simple example to get some practice.
162789 Change the for_each_selftest_ftype parameter to gdb::function_view, so
162818 I saw the new -verbose switch to "maint selftests" and thought it would
162819 be nice for it to use the option framework. For example, that makes
162822 was a good way to practice.
162825 would be possible to use option framework without adding the setting,
162833 [gdb/testsuite] Update some test-cases to GPLv3
162836 Update these to GPLv3.
162841 There's a common pattern to call add_basic_prefix_cmd and
162842 add_show_prefix_cmd to add matching set and show commands. Add the
162843 add_setshow_prefix_cmd function to factor that out and use it at a few
162877 due to:
162936 I've updated the copyrights to stretch to 2021.
162938 [ I've tried to create a dwarf assembly test-case for this, but didn't
162965 Cannot resolve function foo to any overloaded instance
162974 instead just segfault. Stop that happening, and refuse to recognise
162985 No need to use anything fancy, plain inline works just as well.
163017 name lengths before access.
163034 as suspended. In the case of single-stepping, the need to update the
163037 This patch changes windows-nat.c to mark all threads needing a debug
163038 register update. This brings the code closer to what gdbserver does
163047 Failed to listen for connections: Address already in use^M
163053 The test-case is trying to start debuginfod on a port to see if it's
163057 "failed to bind to port"
163073 …wing conversion of 'length' from 'ULONGEST' {aka 'long long unsigned int'} to 'size_t' {aka 'unsig…
163085 Tidy the gas/config/tc-riscv.c and opcodes/riscv-dis.c, to prepare for
163087 from integration branch back to mainline.
163095 - oparg: pointed to the parsed operand defined in the riscv_opcodes.
163096 - asarg: pointed to the parsed operand from assembly.
163097 - opargStart: recorded the parsed operand name from riscv_opcodes.
163098 - asargStart: recorded the parsed operand name from assembly.
163105 opargStart and asargStart, to prepare for moving the released
163106 extensions from integration branch back to mainline.
163108 (macro_build): Added fmtStart, also used to prepare for moving
163113 oparg and opargStart, to prepare for moving the released
163114 extensions from integration branch back to mainline.
163121 corresponding RPATH entry for the directory to find libbfd in. This
163122 causes loading to fail whenever libbfd is only pulled by libopcodes
163139 reference sneaked through to the linker directly behind libtool's back
163142 usually the case, or just referring to the relevant .la file in a fully
163145 According to an observation in the discussion back in 2007[1][2][3] that
163146 has led to the current arrangement it is to prevent libtool from picking
163147 up the wrong version of libbfd. It does not appear to be needed though,
163150 with no link-time reference to the installation directory other than to
163152 location prepended to RPATH too, as also expected.
163154 Use a direct reference to `libbfd.la' then, making the load error quoted
163155 above go away. Alternatively `-L' and `-l' could be used to the same
163156 effect, but it seems an unnecessary complication and just another way to
163161 [1] "compile failure due to undefined symbol",
163172 * configure.ac: Refer `libbfd.la' to link shared BFD library
163184 Place the .note.gnu.property section before all other note sections to
163188 * layout.cc (Layout::create_note): Set order to ORDER_PROPERTY_NOTE
163200 That used to be the case, but is no longer so since commit f67c0c91715 "Enable
163211 gdb: change functions returning value contents to use gdb::array_view
163212 The bug fixed by this [1] patch was caused by an out-of-bounds access to
163213 a value's content. The code gets the value's content (just a pointer)
163216 This made me think of changing functions that return value contents to
163218 that when GDB is built with _GLIBCXX_DEBUG, accesses to the array_view
163219 are checked, making bugs more apparent / easier to find.
163222 callers to call .data() on the result, meaning it's not changing
163224 little by little) to make callers propagate the use of array_view and
163234 Add assertions to ensure we don't access an array_view out of bounds.
163243 I wanted to write a warning that included two target_pid_to_str calls,
163252 target_pid_to_str to return an std::string to avoid this. I don't think
163271 PASS: gdb.mi/mi-var-cp.exp: run to mi-var-cp.cc:104 (set breakpoint)
163277 This is due to a duplicate test name here:
163298 ctf_type_visit (used, among other things, by the type dumping code) was
163302 abort comes from a type-resolution we are only doing in order to
163342 it needs you to explicitly tell objdump this: it doesn't default
163359 * testsuite/ld-ctf/array.d: Change --ctf=.ctf to --ctf.
163398 types found only in foo.c, etc. This turned out to be a terrible idea,
163399 so we moved to using a CTF archive in the .ctf section which contained
163401 readelf was never adjusted, and lingered as a mechanism to specify CTF
163403 has no way to produce parent dictionaries in different sections from
163412 in objdump or readelf: there was no way to tell them that these members
163417 So adjust --ctf-parent so that rather than taking a section name it
163418 takes a member name instead (if not specified, the name is ".ctf", which
163420 now, this is expected to have no backward-compatibility implications.
163422 As part of this, we have to slightly adjust the code which skips the
163423 archive member name if redundant: right now it skips it if it's ".ctf",
163424 on the assumption that this name will almost always be at the start
163427 the parent name has been changed, that won't be true any more.
163429 So change the rules to "members named .ctf which appear first in the
163430 first have their member name skipped". Since we now need to count
163432 parameters requires defining a new struct and is clumsy) to
163433 ctf_archive_next, allowing us to just *call* dump_ctf_archive_member and
163436 readelf skipped every later member, while objdump tried to keep going as
163442 * objdump.c (usage): --ctf-parent now takes a name, not a section.
163448 parent's name, while still avoiding displaying the header for the
163449 common parent name of ".ctf".
163459 A followup to commit ca0e11aa4b.
163461 * objdump.c (main): Add 'L' to short options and sort them.
163466 Nothing to see here, just a little tidier.
163492 in binutils, the time needed to fix it was less than the time needed
163493 to rip it out.
163538 * po/BLD-POTFILES.in: Regenerate.
163576 * po/POTFILES.in: Regenerate.
163634 * po/POTFILES.in: Regenerate.
163659 * po/BLD-POTFILES.in: Regenerate.
163660 * po/SRC-POTFILES.in: Regenerate.
163676 x86: Add -muse-unaligned-vector-move to assembler
163679 a command-line option, -muse-unaligned-vector-move, to x86 assembler to
163702 This adds some missing code to the 'uninstall' targets in gdb and
163704 longer tries to remove any man page -- this is already done (and more
163709 remains, but this appears to just be how 'install-info' is intended to
163717 would be cleaner to have a separate patch for the deletions.
163724 (gdb) PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
163736 (gdb) PASS: gdb.threads/linux-dp.exp: continue to breakpoint: thread 5's print
163749 expects the 'from' part to match libpthread, but in glibc 2.34 libpthread has
163810 In a future commit I'm going to be creating gdb.Membuf objects from a
163815 Initially I split out the Membuf creation code into a new function,
163817 felt a little random that the Membuf creation code should live with
163818 the inferior handling code.
163820 So, then I moved all of the Membuf related code out into a new file,
163824 Most of the code is moved directly from py-inferior.c with only minor
163825 tweaks to layout and replacing NULL with nullptr, hence, I've left the
163826 copyright date on py-membuf.c as 2009-2021 to match py-inferior.c.
163828 Currently, the only user of this code is still py-inferior.c, but in
163836 Add a new function to the Python API, gdb.architecture_names(). This
163841 can be returned from gdb.Architecture.name().
163885 an aliasing issue that we need some way to disambiguate which of
163887 way to use R_RISCV_DELETE to split this into two phases, so we
163895 to pcgp-relax-01, and added pcgp-relax-02.
163903 RISC-V: Don't separate pcgp relaxation to another relax pass.
163906 complexity into the paths run by the RISC-V relaxation pass in order to
163909 which occurred after other relaxations in order to prevent the situation
163911 our ability to find the corresponding pcrel_hi relocation from the
163912 address attached to the pcrel_lo.
163915 could not be used to perform the entire relaxation process again and so
163916 the second commit added a way to restart ldelf_map_segments, thus
163921 case where code would not fit in a memory region before the
163922 R_RISCV_ALIGN relocation was relaxed - sanity checks in generic code
163925 This patch fixes all three of these concerns by reverting back to a
163929 parameter to restart the entire target relax pass, behaving in the way
163930 that generic code expects. Unfortunately we must still have an
163931 additional pass to delay deleting AUIPC bytes to avoid ambiguity between
163934 but this is likely to be rare.
163943 (riscv_update_pcgp_relocs): Add function to update the section
163946 (_bfd_riscv_relax_call): Need to update the pcgp_relocs table
163951 we can't relax anything else, so set the sec->sec_flg0 to true.
163952 Besides, we don't need to update the pcgp_relocs table at this
163957 (_bfd_riscv_relax_delete): Likewise, we don't need to update
163958 the pcgp_relocs table at this stage, and don't need to set
163966 relax_pass to 3.
163982 Fix it by adjusting the code to the new target_waitstatus API.
163993 I stumbled on a bug caused by the fact that a code path read
163994 target_waitstatus::value::sig (expecting it to contain a gdb_signal
163998 signal value was therefore garbage, and that caused GDB to crash soon
164004 Despite being a large-ish change, I think it would be nice to make
164007 the union matches what is supposed to be the active field.
164010 - Make the kind initialized to TARGET_WAITKIND_IGNORE on
164011 target_waitstatus construction. This is what most users appear to do
164014 data associated to that kind, if any. This makes it impossible to
164015 forget to attach the associated data.
164019 - Change "integer" to "exit_status", "related_pid" to "child_ptid",
164024 but some less obvious ones. For example, it's not possible to set the
164026 But in any case, the intent of the code should not change in this patch.
164030 FreeBSD, NetBSD, MinGW and macOS. The rest of the changes to native
164031 files was done as a best effort. If I forgot any place to update in
164032 these files, it should be easy to fix (unless the change happens to
164040 Add a constructor to initialize the waitstatus members. Initialize the
164050 care of the freeing that happened in free_one_thread. This is needed to
164063 Refactor code slightly in nat/aarch64-linux-hw-point.c (aarch64_linux_get_debug_reg_capacity)
164064 Since the two locations which check the debug arch are the same code currently, it is
164065 a good idea to factor it out to a new function and just use that function from
164066 aarch64_linux_get_debug_reg_capacity. This is also the first step to support
164074 Matching pattern \" doesn't work. Use .* to match the \* pattern.
164092 transformed back to a loop body:
164111 The test expect the runto_main to stop at the first line of the function.
164118 with all levels of optimization due to gdb stopping in the prolog.
164125 out to be a latent bug in ada-lang.c.
164132 find_struct_field to use a dummy value for the field offset in the
164137 Second, this patch assures that calls to find_struct_field use a
164145 variable offset, the patch still updates this code path, just in case.
164147 I've updated an existing test case to reproduce the crash.
164214 to link object files from 2009. What's more, there doesn't seem to be
164215 any way to allow the libphobos explicit __tls_get_addr call, but not
164229 This changes print_one_catch_syscall to use std::string, removing a
164233 This changes struct breakpoint to use unique_xmalloc_ptr in a couple
164237 This changes struct bp_location to use a unique_xmalloc_ptr, removing
164241 This changes struct watchpoint to use unique_xmalloc_ptr in a couple
164245 This changes struct exec_catchpoint to use a unique_xmalloc_ptr,
164249 This changes struct solib_catchpoint to use a unique_xmalloc_ptr,
164274 - runs to captured_command_loop
164285 - execute_command_to_string to capture the output
164286 - try/catch to catch the "Error while executing Python code" exception
164287 - a new hook selftests::hook_set_active_ext_lang to raise the signal
164294 This changes gdb to check the index that is passed to type::field.
164295 This caught one bug in the Ada code when running the test suite
164305 to a use of UTF-32 as a parameter to convert_between_encodings. Here,
164308 big-endian, as changing the call to use "UTF-32LE" makes it work.
164323 A customer-reported problem led us to a bug in dynamic type
164331 that can be used to reproduce the bug.
164337 it seems to me that the 'selftest' struct and accompanying code is
164347 This is the case when gdbserver attached to a process and a gdb target
164361 …warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally…
164375 …warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally…
164389 on the remote target (where it is) and expected them to be installed
164400 Fix a potential illegal memory access when testing for a special LTO symbol name.
164402 name before checking to see if the symbol is __gnu_lto_slim.
164405 * nm.c (filter_symbols): Test for a NULL name before checking to
164434 likely done that way to detect overlap and holes.
164437 and limiting to the unit length of the first header fails if there is
164441 * dwarf.c (display_debug_ranges): Don't constrain data to length
164491 Add argument to ppc_canonicalize_syscall for the wordsize.
164505 [GOLD] Re: PowerPC64: Don't pretend to support multi-toc
164507 trying to generalise the offset calculation rather than using a value
164508 of 0x8000 (the old object->toc_base_offset()) was bound to fail.
164519 entries. The idea is to better support mixed pcrel/non-pcrel code
164520 where non-pcrel small-model .toc entries need to be within 32k of the
164527 * output.cc (Output_data_got::Got_entry::write): Likewise, pass to
164529 (Output_data_got::do_write): Adjust to suit.
164546 and section to suit reloc.
164552 [GOLD] PowerPC64: Don't pretend to support multi-toc
164553 Code in powerpc.cc is pretending to support a per-object toc pointer
164556 followup patch. If multi-toc is ever to be supported, don't revert
164557 this patch but start by adding object parameter to toc_pointer() and
164558 an object to Branch_stub_key.
164566 header_index_ to -1u for 64-bit, and make header here.
164612 $1 = <error reading variable: failed to get range bounds>
164644 However, for this to work correctly, every time the libopcodes
164648 My first plan was to make m_err_memaddr a gdb::optional, and assert
164649 that it always had a value prior to calling memory_error, however, a
164656 memory, we should always be able to disassemble the memory contents to
164658 don't plan to go and fix all of the disassemblers.
164660 What I do propose to do then, is make m_err_memaddr a gdb::optional,
164666 To test this I just augmented one of the disassemblers to always
164669 Dump of assembler code for function main:
164674 Dump of assembler code for function main:
164677 This doesn't really help much, but that's because there's no way to
164693 The problem is that gdb_test is used to match inferior output.
164703 due to use of the start command (and similar), which is not supported when
164714 [gdb/testsuite] Fix test name in gdb.python/python.exp
164725 This is due to using a gdb_test nested in a gdb_test_multiple, with the inner
164726 one using a different test name than the outer one. [ That could still make
164759 "set auto-connect-native-target off", which makes that the last command to
164821 layout, please refer to [1].
164823 The q0 ~ q7 registers map back to the d0 ~ d15 registers, two d registers
164915 The pseudo register handling for ARM uses some hardcoded constants to
164916 determine types and names. In preparation to the upcoming MVE support
164918 reorganizes things in order to simplify handling of future pseudo registers.
164928 This is in preparation to MVE support, where we will define another
164929 pseudo register. We need to define the pseudo register numbers *after*
164931 the call to tdesc_use_registers up.
164956 ]+)?(\^done,name="array",numchild="[0-9]+",value=".*",type=.*,has_more="0"[^M
164960 &"Attempt to use a type name as an expression.\n"^M
164961 ^error,msg="-var-create: unable to create variable object"^M
164966 The problem is that the name array is used both:
164967 - as the name for a local variable
164968 - as the name of a type in glibc, in file malloc/dynarray-skeleton.c, as included
164980 If a call to the read_memory_func fails then we should call the
164981 memory_error_func to notify the user of the disassembler of the
164995 If a call to the read_memory_func fails then we should call the
164996 memory_error_func to notify the user of the disassembler of the
165016 if {[prepare_for_testing_full "failed to prepare" \
165066 Now, instead it generates aforementioned FAIL and continues to generate an
165077 The test-case gdb.dwarf2/gdb-add-index-symlink.exp interpretes a failure to
165078 add an index as a failure to add an index for a symlink:
165081 fail "Unable to call gdb-add-index with a symlink to a symfile"
165094 Add a new proc require in lib/gdb.exp, and use it to shorten:
165108 gdb_skip_xml_test to return 1.
165113 This is not valid in ISO C. Instead, use a pointer to bfd_byte.
165148 remains unassigned, while it could be worthwhile to known what output was
165156 Also add a variant without string parameter, to support places where the
165174 When trying to match the gdb prompt using gdb_test which uses '$gdb_prompt $',
165177 This sort of thing needs to be fixed (see commit b0e2f96b56b), but there's
165178 currently no way to reliably find this type of FAILs.
165189 - the second method does a read and then decides whether to
165190 return or to wait a bit and do another read, and so on.
165221 I have not been able to find a problem in the test-case, and I think it's the
165223 these pass by increasing the alarm timeout from 60 to 120 seconds.
165241 - "set auto-solib-add off" to avoid symbols of shared libs
165243 updated to match libc)
165244 - "nosharedlibrary" to avoid symbols of libc
165274 Fix this by setting auto-solib-add to off.
165315 A problem internal to GDB has been detectedFAIL: \
165318 Resyncing due to internal error.
165324 -early -re "^A problem internal to GDB has been detected,\r\n" {
165331 -re ".*A problem internal to GDB has been detected" {
165338 Fix this by likewise shortening the regexp to before the comma.
165346 gcc-PIE installed (switching compiler default to -fPIE/-pie), I get:
165351 UNTESTED: gdb.dwarf2/dw2-restrict.exp: failed to prepare
165354 This is due to using a hardcoded .S file that was generated with -fno-PIE.
165376 Stopped due to shared library event:^M
165382 The check expect the inferior to load libpthread, but since glibc 2.34
165393 Fix this by updating the regexp to expect libpthread or libc.
165447 As in gdb.python/flexible-array-member.exp, change the test to accept the two
165460 Update the FIELD_* macros used to access field locations to go through
165464 structures, because it contains members of the same name (loc_kind and
165469 Note that the field structure, being zero-initialized, defaults to a
165470 bitpos location with value 0. While writing this patch, I tried to make
165471 it default to an "unset" location, to catch places where we would miss
165477 I found two issues to fix:
165488 set_loc_enumval to set the value.
165495 Add aliases for the non-immediate mnemonics of b{set,clr,inv,ext} to
165537 RISC-V: Update extension version for Zb[abc] to 1.0.0
165542 number for zba, zbb and zbc to 1.0.0
165546 - Updated version numbers for zba, zbb and zbc to 1.0.0
165554 out and adds comments above each section to clearly identify them as
165566 one member points to both the previous member and the next member.
165570 XCOFF archive with one member pointing to itself, which results in
165576 use the canonicalized symbols, and also happen to be cached by the
165580 the currect element. Unfortunately the next element happens to be the
165583 containing references to the freed canonical symbols.
165585 This patch adds a little sanity checking to the XCOFF "open next
165587 themselves. That is sufficient to cure this problem. Anything more
165594 by member name in areltdata.extra_size.
165603 bfd in struct bfd_preserve need to be cleared in bfd_reinit.
165627 due to a message related to libthread_db:
165644 Refactor regexp in gdb.base/annota1.exp to reduce indentation and repetition.
165664 Limit on string chars or array elements to print is unlimited.
165681 What's going on is easier to see when also doing dump_screen if
165693 --Type <RET> for more, q to quit, c to continue without paging--
165697 command is interpreted as an answer to that prompt.
165700 - detecting the gdb prompt in response to "load corefile", such that
165717 PR28402, fail to allocate line number array
165718 This fixes a situation where the COFF code allocated memory for
165727 paths to suit. Remove now unnecessary line number count check.
165728 (coff_slurp_reloc_table): Adjust to suit buy_and_read change.
165748 PR28401, invalid section name lookup
165752 the main complaint in PR28401, "failed to allocate", since malloc
165753 failures on sections having huge bogus sizes are to be expected. We
165758 * objdump.c (load_debug_section): Don't attempt to retrieve
165759 empty name sections.
165769 Currently, tui testing is rather verbose. When using these RUNTESTFLAGS to
165772 rtf=$(echo $(cd src/gdb/testsuite/; find gdb.* -type f -name *.exp* \
165781 Most of the output is related to controlling the tui screen, but that does
165784 Put differently: a lot of bandwith is used to describe how we arrive at a
165788 And if there's say, a PASS that should actually be FAILing, it's hard to
165792 - dropping the -log on the call to verbose in _log. We still can get the
165796 Brings down verbosity to something more reasonable:
165807 Factor out new proc Term::get_region and use it to implement a
165808 new proc Term::dump_box, similar to Term::dump_screen.
165817 to be backed by a memory buffer but use callback functions instead to
165820 An assertion was not properly updated to take into account that the
165821 m_var member (which points to a memory buffer, if used) might be nullptr
165823 memory buffer, the m_var has to be non nullptr, which is already checked
165834 I am not certain of the history here, but it seems to me that this
165835 code is fully obsolete now. And, removing this makes it possible to
165837 is included to demonstrate this.
165842 This changes value_zero to create a lazy value. In many cases,
165843 value_zero is called in expression evaluation to wrap a type in a
165844 non-eval context. It seems senseless to allocate a buffer in these
165851 fail, due to the variable size check. However, the contents of this
165858 This adds an is_optimized_out function pointer to lval_funcs, and
165859 changes value_optimized_out to call it. This new function lets gdb
165861 value. This is needed for a subsequent patch, where an attempt to
165862 access a lazy value would fail due to the value size limit -- however,
165863 the access was only needed to determine the optimized-out state.
165888 =library-loaded,id="/lib64/libgcc_s.so.1",target-name="/lib64/libgcc_s.so.1",\
165889 host-name="/lib64/libgcc_s.so.1",symbols-loaded="0",thread-group="i1",\
165890 ranges=[{from="0x00007ffff22a5010",to="0x00007ffff22b6365"}]^M
165910 gdb/python: fix memory leak in python inferior code
165915 to inferior_data and set_inferior_data).
165917 The Python Reference to the gdb.Inferior object held within the real
165920 continues to exist.
165923 to GDB's real inferior object. We therefore end up with a system that
165939 py_free_inferior is called (thanks to the registry system), this
165941 pointer to nullptr and finally reduces the reference count on the
165944 If at this point the user still holds a reference to the Python
165949 However, if there are no further references to the Python gdb.Inferior
165950 object, or, once the user has given up all their references to the
165953 This function currently checks to see if the inferior pointer within
165958 we (a) set the gdb.Inferior reference inside GDB's inferior to
165964 holds a reference count, thus, setting this reference to nullptr
165971 reference. At this point there is no longer a need to call
165972 set_inferior_data to set the field back to NULL, that field must
165973 have been cleared in order to get the reference count to zero, which
165979 this means that the call to the underlying tp_free function will
165980 always be skipped. Skipping this call will cause Python to leak the
165989 module, which allows us to spot this memory leak.
166001 have an empty address range, due to using asm labels in global scope,
166012 decides it is going to exit.
166016 decides to quit the debug session, or if GDB hits an unexpected,
166024 attribute exit_code, which is the value that GDB is about to exit
166039 gdb/python: update events test to handle missing exit_code
166045 In a later commit I am going to add more tests to py-events.exp test
166049 Just to be clear, GDB itself is fine, it is the test that is not
166050 written correctly according to the Python Events API.
166052 So, in this commit I fix the Python code in the test, and extend the
166053 test case to exercise more paths through the Python code.
166056 example in the documentation for how to write an event handler.
166058 the example code in the manual.
166062 After this commit there is no functional change to GDB.
166074 gdb_demangle to also return this type. In one spot, std::string is
166075 used to simplify some related code, and in another, an auto_obstack is
166076 used to avoid manual management.
166088 [gdb/build] Add CXX_DIALECT to CXX
166090 by default, and needs an -std setting to enable it.
166101 the top level Makefile passes CXX down to subdirs, and that overrides whatever
166102 gdb/Makefile may set CXX to. The result would be that a make invocation from
166118 We could simply add $CXX_DIALECT to the test for std::thread support, but
166119 that would have to be repeated for each added c++ support test.
166137 - the switch in CXX_DIALECT so it can be appended in Makefiles, to
166140 The code added in gdb/ax_cxx_compile_stdcxx.m4 is copied from the default
166169 Now, let's try the same again, but run directly to foo rather than stopping at
166186 - we run to main
166191 - we continue to foo, and manage to find the call_site info
166197 - we run to foo
166200 - we don't manage to find the call_site info
166205 This solution however is counter-trend in the sense that we're trying to
166242 However, this was not tested, and when indeed moving field pc to the second
166246 called with a pointer to the pc field (as passed into htab_find_slot) and a
166247 pointer to a hash table element. Now that pc is no longer the first field,
166248 the pointer to hash table element no longer points to the pc field.
166250 This could be fixed by simply reinstating the comment, but we're trying to
166255 we're passing a pointer to element to htab_find_slot
166261 Tested on x86_64-linux, both with and without a trigger patch that moves pc to
166268 variable" caused remote-sim.c to fail to build. The issue is that the
166269 code does:
166277 This patch changes this code to use a 'const char *' again, fixing the
166282 [gdb/testsuite] update analyze-racy-logs.py to python3
166284 script to run under python while while still being runnable under
166289 gdbsupport: remove attempt to define TARGET_WORD_SIZE
166290 In the gdbsupport configure.ac file, there is an attempt to define
166309 My proposal in this commit is to just remove the definition of
166310 TARGET_WORD_SIZE, the alternative would be to add a dependency between
166317 It can be difficult to guess the exact bfd name, so add an option to
166327 gdb: Setting setter return a bool to tell if the value changed
166361 This comparison is done for each possible var_type, which leads to
166364 In this patch I propose to move all those checks in one place within the
166365 setting setter method. This limits the code duplication and simplifies
166371 set operation. This is meant to handle edge cases where trying to set
166372 an unrecognized value would be equivalent to a noop (the actual value
166374 to be copied before the update, which can be non trivial for
166389 The main motivation behind this improvement is to help the
166390 implementation of a patch Simon Marchi is preparing to fix a bug when
166391 MI or Python try to access parameters that are inferior dependent (see
166395 object to represent a static variable whose value can be set or shown
166397 either contain a pointer to a static variable holding a setting, or
166398 pointers to a pair of setter and getter callback functions.
166400 The callbacks functions can be used to retrieve or change the value with
166402 setting is not contained in the variable pointed to by the setting
166407 needs to be updated. The registered getter or setter is used whatever
166408 the way to access it is (through MI, Python, Guile, the "with" command
166413 to a global variable.
166424 var_string_noescape) currently take a pointer to a `char *` storage
166425 variable (typically global) that holds the setting's value. I'd like to
166426 "mordernize" this by changing them to use an std::string for storage.
166429 easier to write than with C strings. And they avoid having to do any
166435 "set foo" (where `foo` is a string setting), the setting now points to
166437 but points to an empty string after doing "set solib-search-path". This
166438 leads to some code that needs to check for both to check for "no value".
166439 Or some code that converts back and forth between NULL and "" when
166441 is very easy to forget one or the other. With std::string, we at least
166447 happens, it would be more C++-y and self-descriptive to use
166452 sets the history filename to the default ".gdb_history" if it sees that
166455 cleared, so it leaves it as-is. With the change to std::string, this
166456 distinction doesn't exist anymore. This can be fixed by moving the code
166457 that chooses a good default value for history_filename to
166470 This patch started by changing all relevant add_setshow_* commands to
166472 that failed to build. That includes of course all string setting
166480 rather not try to change it to work on an std::string right now.
166481 Instead, I added an overload that copies the std:string to a `char *`
166491 cmd_list_element can contain a pointer to data that can be set and / or
166492 shown. This is achieved with the void* VAR member which points to the
166494 var_types) indicates how to interpret the data pointed to.
166496 With this pattern, the user of the cmd_list_element needs to know what
166497 is the storage type associated with a given VAR_TYPES in order to do
166498 the proper casting. No automatic safeguard is available to prevent
166499 miss-use of the pointer. Client code typically looks something like:
166514 This patch proposes to add an abstraction around the var_types and void*
166515 pointer pair. The abstraction is meant to prevent the user from having
166516 to handle the cast and verify that the data is read or written as a type
166522 Using those accessors allows runtime checks to be inserted in order to
166523 ensure that the data pointed to has the expected type. For example,
166525 similar to:
166558 In order to avoid turning the bulk of add_setshow_cmd_full into a
166560 setting can be constructed from a pre validated type erased reference to
166563 Introducing an opaque abstraction to describe a setting will also make
166564 it possible to use callbacks to retrieve or set the value of the setting
166565 on the fly instead of pointing to a static chunk of memory. This will
166572 Few internal function signatures have been modified to take into account
166576 get_setshow_command_value_string used to have a 'cmd_list_element *'
166592 We map target signals to host signals so we can propagate signals
166593 between the host & simulated worlds. That means we need to know
166597 symbols that start with "SIG" so as to automatically include any
166604 with that same value (since the range of valid signals tend to be
166610 As suggested by Adam Sampson, update our scripts to ignore this
166611 symbol to simplify everything and avoid the build failure.
166618 Not all systems have easy access to hard links or symlinks, so add
166619 fallback logic to the run->psim build code to handle those.
166633 fails to properly unwind the stack because some functions use the C.MV
166636 the prologue is not necessarily finished yet, preventing GDB to properly
166643 counterpart from the base ISA is a pseudo instruction that expands to
166657 Remove macro COMPUNIT_CALL_SITE_HTAB, and provide access to the htab using
166673 …./lib/gdb/command/prompt.py:55:26: E712 comparison to False should be 'if cond is False:' or 'if n…
166674 …./lib/gdb/command/explore.py:526:9: F841 local variable 'has_explorable_fields' is assigned to but…
166675 …./lib/gdb/command/explore.py:697:56: E712 comparison to False should be 'if cond is False:' or 'if…
166676 …./lib/gdb/command/explore.py:736:62: E712 comparison to False should be 'if cond is False:' or 'if…
166677 …./lib/gdb/command/explore.py:767:61: E712 comparison to False should be 'if cond is False:' or 'if…
166682 …./lib/gdb/command/frame_filters.py:179:17: E712 comparison to True should be 'if cond is True:' or…
166699 Fix this by using %PRIxPTR as opposed to %lx.
166736 * elf-bfd.h (NUM_KNOWN_OBJ_ATTRIBUTES): Update value to cover
166742 Change how rnglists and loclists procs to align them with how procs for
166757 simple names, thinking there was no chance of name clashes. I recently
166763 user of the assembler happened to define a convenience "table" or
166766 I'd like to change how this works to reduce the chances of a name clash.
166772 available under their "short" name. For example, while in rngllists'
166774 existing code to keep working and keeps it not too verbose.
166775 - Modify with_override to allow the overriden proc to not exist. In
166782 here to put them on the same level.
166790 call sites to use field::name directly.
166796 gdb: add field::name / field::set_name
166797 Add the `name` and `set_name` methods on `struct field`, in order to
166799 macros are changed to use `field::name`, so all the call sites that are
166800 used to set the field's name are changed to use `field::set_name`.
166803 Note that because of the name clash between the existing field named
166804 `name` and the new method, I renamed the field `m_name`. It is not
166821 better alternative to always calling "/bin/sh".
166905 aarch64: add armv9-a architecture to -march
166906 Patch is adding new 'armv9-a` command line flag to -march for AArch64.
166921 gdb/testsuite: make runto_main not pass no-message to runto
166922 As follow-up to this discussion:
166926 ... make runto_main not pass no-message to runto. This means that if we
166927 fail to run to main, for some reason, we'll emit a FAIL. This is the
166938 gdb.python/py-pp-registration.exp, remove "message" passed to runto.
166940 be printed if we fail to run to where we want to). This aligns their
166948 This encourages the callers to use automatic file descriptor management.
166955 Make gdb_open_cloexec return a scoped_fd, to encourage using automatic
166957 cases, I changed the callers to just release the fd, which retains their
166958 existing behavior. That will allow the transition to using scoped_fd
166959 more to go gradually, one caller at a time.
166965 gdbsupport: move gdb_file_up to its own file
166966 The following patches wants to change gdb_fopen_cloexec and
166967 gdb_mkostemp_cloexec to return a scoped_fd. Doing this causes a cyclic
166968 include between scoped_fd.h and filestuff.h, that both want to include
166974 To fix that, move gdb_file_up to its own file, gdb_file.h.
166985 Without this patch, if the linker happens to output padding for symbol
166999 down to an unguarded use of stop_pc() in the TARGET_WAITKIND_LOADED
167017 UNTESTED: gdb.debuginfod/fetch_src_and_symbols.exp: failed to compile
167029 UNTESTED: gdb.base/info-os.exp: failed to prepare
167059 UNTESTED: gdb.dwarf2/dw2-opt-structptr.exp: failed to compile
167077 UNTESTED: gdb.base/structs.exp: failed to prepare
167098 This is triggered in a part of the test that claims to require no debug
167104 Also use with_test_prefix to mark the nodebug part, such that we have:
167107 UNTESTED: gdb.base/cvexpr.exp: dwarf: failed to prepare
167109 UNTESTED: gdb.base/cvexpr.exp: nodebug: failed to prepare
167132 UNTESTED: gdb.base/call-sc.exp: failed to prepare
167141 DUPLICATE: gdb.base/call-sc.exp: failed to prepare
167160 Replace these untested messages in gdb.mi/*.exp with the usual "failed to
167173 make objcopy fail if it is asked to redefine symbols in an object file containing LTO information.
167174 * objcopy.c (filter_symbols): Fail if attempting to dredefine
167202 Add elfcore_grok_solaris_note function that enables to
167220 Add support to readelf for reading OpenBSD ELF core notes.
167259 It's easier to reproduce if you stress the machine at the same time, like e.g.:
167266 …Attaching to program: build/gdb/testsuite/outputs/gdb.multi/multi-term-settings/multi-term-setting…
167316 is to resumes the program with "continue", wait to see a few of those
167327 inferiors _before_ they were attached to. We see them at that
167334 the terminal to the inferior, so the Ctrl-C results in that
167343 the testsuite to handle this exact problem of sending Ctrl-C too
167374 indications that the Remote 'g' packet reply error is due to missing xml
167382 You must use a GDB version which is able to read XML target description sent
167386 not work because GDB will then not be able to fetch the registers from the
167394 the Remote 'g' packet reply error occurs in all tests, so it seems prudent to
167410 Error while executing Python code.^M
167416 - a lambda function body needs to be an expression
167433 With a gdb configured to be somewhat minimal, while still supporting python:
167457 and using gcc 4.8 to build gdb (causing std::thread not to be used due to
167482 Fix this by removing "hit" from the regexp, making the regexp more similar to
167495 gdb: use libbacktrace to create a better backtrace for fatal signals
167507 This commit fixes the issue by guarding the call to
167522 I included some references to 'stderr', which, it was pointed out,
167585 - In process_initial_stop_replies, gdb calls stop_all_threads to stop
167600 I haven't implemented it because I'm not sure how to do it, but I think
167601 it would be a good idea to have, in stop_all_threads / wait_one /
167602 handle_one, an assert to check that if we are expecting one or more
167605 infinite loop, and it's probably due to a bug in GDB. I'm not too sure
167606 where to put this or how to express it though. Perhaps in
167619 threads to stop, but all targets are answering that they won't have any
167628 expecting waits from, since we know which threads we have asked to
167632 Add a test that tests attaching with gdbserver's --attach flag to a
167633 multi-threaded program, and then connecting to it. Without the fix, the
167645 I made a mistake in the previous patch. Adjust the format string to
167667 The test currently requires the "inf 1" breakpoint to be before the "inf
167677 Since add_location_to_breakpoint uses only the address as a criterion to
167681 can vary from machine to machine. While it would be more user-friendly
167682 to have a more stable order for printed breakpoint locations, it doesn't
167683 really matter for this test, and it would be hard to define an order
167686 So, loosen the regexp to accept "inf 1" and "inf 2" in any order.
167699 TODO: Remember to add testcase when we have supported standrad p in
167711 RISC-V: Allow to add numbers in the prefixed extension names.
167712 We need to allow adding numbers in the prefixed extension names, since
167716 * The extension name ends with <number>p is invalid, since this may
167722 * The extension name ends with numbers is valid, but the numbers will
167723 be parsed as major version, so try to avoid naming extensions like this.
167730 riscv_parse_prefixed_ext, so clean the code and unused parameters.
167732 (riscv_parse_prefixed_ext): Rewrite the parser to allow numbers
167747 This commit builds on previous work to allow GDB to print a backtrace
167753 so, in order to avoid cluttering up the output, by default, printing
167758 internal-error is going to be the end of the debug session.
167774 A problem internal to GDB has been detected,
167794 A problem internal to GDB has been detected,
167802 A problem internal to GDB has been detected,
167806 My hope is that this backtrace might make it slightly easier to
167809 located in pretty generic code (frame.c, value.c, etc) and it is not
167816 gdb: use libbacktrace to create a better backtrace for fatal signals
167817 GDB recently gained the ability to print a backtrace when a fatal
167821 However, in order for this API to actually map addresses to symbol
167844 This is OK if you have access to the exact same build of GDB, you can
167845 manually map the addresses back to symbols, however, it is next to
167850 repository, and in this commit I allow this library to be used by
167881 built, and GDB will not try to use this library. In this case GDB
167882 would try to use the old backtrace and backtrace_symbols_fd API.
167884 All of the functions related to writing the backtrace of GDB itself
167889 src-release.sh: add libbacktrace to GDB_SUPPORT_DIRS
167902 commit 62e420293a293608f383d9b9c7f2debd666e9fc9. GDB is going to
167905 A dependency between GDB and libbacktrace has already been added to
167910 It is possible to stop libbacktrace being built by configuring the
167915 means that if you try to make a release of GDB from exactly this
167922 GDB is going to start using libbacktrace, so add a build dependency.
167943 binutils-gdb repository we end up trying to build a target version of
167948 The problem with zlib impacted a previous attempt to synchronise the
167949 top-level configure scripts from gcc to binutils-gdb, see this thread:
167953 And I'm in the process of importing libbacktrace in to binutils-gdb,
167957 target libraries that we need to build.
167959 In the configure script we build three lists of things we want to
167961 build two lists of things we don't want to build, $skipdirs and
167963 not to build, from the list of things that should be built.
167965 My proposal is to add everything in target_configdirs into skipdirs,
167974 libraries still seem to get built. On binutils-gdb this change
167986 After commit 985e0264516 copy_archive function began to pass invalid
167987 values to the utimensat(2) function when it tries to preserve
168007 the build settings would cause all of its contents to be skipped
168010 never do this, and it's pretty easy to institute a policy that we
168015 linker omits it entirely, which leads to the profiling module never
168051 gdb: add destructor to lwp_info
168063 door to using intrusive_list, done in the following patch.
168080 4. run to a breakpoint somewhere after the fork
168115 the parent's spaces, rather than cloning them. When we switch back to
168120 to the child. My initial implementation created new spaces for the
168126 the parent's program space to it with clone_program_space, it creates
168130 represent the same file. But moving the spaces to the child and
168135 child. This will have to be addressed later.
168137 Test-wise, improve gdb.base/foll-fork.exp to set a breakpoint that is
168138 expected to have a location in each inferiors. Without the fix, when
168146 gdb.base/foll-fork.exp: use foreach_with_prefix to handle prefixes
168154 Rename the variables / parameters used to match the corresponding GDB
168155 setting name, I find that easier to follow.
168161 gdb.base/foll-fork.exp: refactor to restart GDB between each portion of the test
168162 This test is difficult to follow and modify because the state of GDB is
168164 to main, and use it in all test procs. Use proc_with_prefix to avoid
168167 The check_fork_catchpoints proc also seems used to check for follow-fork
168169 uses "return -code return", which makes its caller return. I find this
168170 unnecessary complex, versus just returning a boolean. Modify it to do
168178 It looks like this test has some code to check at runtime the support of
168180 to me that the check based on target triplet at the beginning of the
168182 because we wouldn't think of updating it when adding fork support to a
168203 previous lookups by name have been carried out. (Note that "*foo" is
168204 not even a valid thing to call ctf_lookup_by_name with: foo * is.
168208 ctf_pptrtab_len, as its name suggests (and as other tests of it in
168261 to see if the function symtypetab section and its index are the same
168262 length, but we fail to skip this check when this is not a NEWFUNCINFO
168330 supported set of flags in turn, to make sure that linker versioning is
168338 of the symbols that appear in libctf.la, to avoid Solaris ld introducing
168339 corresponding new NOTYPE symbols to match the version script.
168357 Libtool needs to get BSD-format (or MS-format) output out of the system
168359 -export-symbols-regex support. Some nms need specific flags to turn on
168361 Unfortunately the code to do this has a pair of interlocking flaws:
168364 reasonably refuse to do an nm on a device file, but before now this
168367 error means this is Tru64 nm and that nm -B would work to produce
168370 itself* (since we necessarily have a path to it).
168374 reasonably be expected to know that libtool wants not only nm but
168378 flags always fail to set them when run in a Cygnus tree, breaking
168379 -export-symbols-regex on such platforms. Libtool also needs to
168387 work, this might lead to a few extra pointless path searches -- but
168388 the test is going to fail anyway, so that's not a problem.)
168390 (Tested with NM unset, and set to nm, /usr/bin/nm, my-nm where my-nm is a
168391 symlink to /usr/bin/nm on the PATH, and /not-on-the-path/my-nm where
168392 *that* is a symlink to /usr/bin/nm.)
168399 NM, if there is one. Run nm on itself, not on /dev/null, to avoid
168400 errors from nms that refuse to work on non-regular files. Remove
168407 This reports common symbols like GNU nm, via a type code of 'C'.
168429 because libctf-nobfd has to follow libbfd in the link line, and that
168439 Because ld links against libctf, this has a tendency to break the system
168441 quite unpleasant to recover from.
168460 This is due to:
168476 Nevertheless, work around this by moving the initialization to a constructor.
168480 for gdb.base/check-psymtab.exp due to add_partial_symbol using lowpc without
168487 gdb: add setting to disable reading source code files
168488 In some situations it is possible that a user might not want GDB to
168489 try and access source code files, for example, the source code might
168490 be stored on a slow to access network file system.
168494 being unable to find the source files, but this feels like a rather
168495 crude way to solve the problem.
168498 reading the source files. A user can run with source code reading
168500 that they now want to view the source code.
168517 I ran into this assertion while GDB was trying to unwind the stack:
168526 this (the arrows '->' point from caller to callee):
168531 corrupted stack contents in the inferior), when GDB tries to unwind
168533 thus the call stack looks like this to GDB:
168539 Given such a situation we would expect GDB to terminate the stack with
168542 Backtrace stopped: previous frame identical to this frame (corrupt stack?)
168551 However, eventually we will try to unwind the stack further. When we
168552 do this we inevitably needing to know the frame_id for frame #0, and
168562 inline_frame this means a call to inline_frame_this_id.
168576 We return to compute_frame_id and call the standard DWARF function to
168579 With the frame_id of normal_frame figured out we return to
168580 compute_frame_id, and then to get_prev_frame_if_no_cycle, where we add
168582 back to inline_frame_this_id.
168585 return to compute_frame_id, and then to get_prev_frame_if_no_cycle,
168590 However, as we are trying to unwind the complete stack, we eventually
168593 needs to figure that out.
168599 The first task for compute_frame_id is to find the unwinder for this
168604 stack to normal_frame, which, due to its cyclic behaviour, tells GDB
168608 GDB spots that this $pc corresponds to both the function normal_frame
168610 an INLINE_FRAME then GDB figures that we have not yet built a frame to
168618 frame GDB returns to compute_frame_id and calls inline_frame_this_id.
168624 Just like before, compute_frame_id tries to find an unwinder for this
168628 compute_frame_id we again call the standard DWARF function to build
168635 After compute_frame_id we return to get_prev_frame_if_no_cycle, where
168636 we try to add the frame_id for the new normal_frame into the frame_id
168637 cache, however, unlike before, we fail to add this frame_id as it is
168644 The nullptr result from get_prev_frame_if_no_cycle is fed back to
168645 inline_frame_this_id, which forwards this to get_frame_id, which
168655 - get_prev_frame_if_no_cycle currently assumes that it is safe to
168658 Notice that in frame.c:compute_frame_id, this code:
168667 code:
168673 Makes it clear that every inline frame expects to be able to get a
168679 One possibility would be to move the call to get_prev_frame_always
168680 forward from inline_frame_this_id to inline_frame_sniffer, however,
168688 This assert prohibits any sniffer from trying to get the previous
168689 frame, as getting the previous frame is likely to depend on the next
168691 no rush to alter this rule.
168695 is renamed to get_prev_frame_maybe_check_cycle, and will now not do
168700 normal frame, which is previous to the inline frame, will also be
168703 In inline-frame.c the call to get_prev_frame_always is no longer
168704 nested inside the call to get_frame_id. There are reasons why
168706 memory error while trying to get the previous frame, if this should
168760 Modify the test-case to:
168761 - add the hw/sw axis to the watchpoint testing, to ensure that we
168765 - set the sw watchpoint later to avoid making the test
168819 PR28346, segfault attempting to disassemble raw binary
168820 Don't attempt to access elf_section_data for non-ELF sections.
168833 Required for the expected "CU:" to be emitted for long
168837 printf (_("CU: %s/%s:\n"), directory, file_table[0].name);
168839 printf ("%s:\n", file_table[0].name);
168849 gdb: change thread_info::name to unique_xmalloc_ptr, add helper function
168850 This started out as changing thread_info::name to a unique_xmalloc_ptr.
168851 That showed that almost all users of that field had the same logic to
168852 get a thread's name: use thread_info::name if non-nullptr, else ask the
168854 the field private (rename to m_name) and add some accessors.
168860 Move value_true to value.h
168864 changed it to be an inline function in value.h. I've also removed a
168870 Finally, this patch also changes value_true and value_logical_not to
168876 By inspection, I noticed that this code in dcache.c is not
168906 Error while executing Python code.
168910 The gdb.perf/disassemble.exp testcase debugs GDB with itself, runs to
168912 most(!) functions it is trying to disassemble are now gone...
168914 This commit fixes the issue by simply picking some other functions to
168917 It would perhaps be better to come up with some test program to
168920 done to begin with. I'll have to leave that for another rainy day,
168959 with_test_prefix. Add explicit test names to python invocations,
169013 a change due to the switch to DWARF 5 by default.
169019 attr_to_dynamic_prop to handle this new case.
169036 if { [prepare_for_testing "failed to prepare" ${testfile} \
169043 prepare_for_testing (or intentionally using it but forgetting to add
169067 - do a prepare_for_testing with $srcfile (roughtly equivalent to what
169088 # and SPARC, fpie can cause compile errors due to the GOT exceeding
169091 # onwards default GCC to using fPIE. If you do require fpie, then
169115 gdb/testsuite: Make it possible to use TCL variables in DWARF assembler loclists
169116 It is currently not possible to use variables in locations lists. For
169138 # The CU uses the DW_FORM_loclistx form to refer to the .debug_loclists
169157 That means $myconst was copied literally to the generated assembly
169161 the context of the caller. The fix is applied to both
169175 DUPLICATE: gdb.dwarf2/implptr-64bit.exp: failed to prepare
169208 The variable i is set in gdb.dwarf2/dw2-abs-hi-pc.exp, and leaks to
169214 at toplevel but forgets to unset the variable.
169216 Fix this by removing '$' in front of the variable name when doing set:
169253 that distributes test runs to other remote systems that are not directly
169260 or some such. However, this might be too verbose, so we choose to put it into
169277 Change pointer_type to a method of struct type
169279 language.c. However, it really has to do with types, so it should
169282 This patch changes it to be a method on struct type. And, I went
169283 through uses of TYPE_IS_REFERENCE and updated many spots to use the
169285 code, as I couldn't readily test that.)
169303 Fix this by translating the gcc options to rustc options in gdb_compile_rust,
169304 similar to how that is done for ada in target_compile_ada_from_dir.
169313 - installed (making gcc default to PIE)
169314 - uninstalled (making gcc default to non-PIE).
169345 Using the backtrace, the test-case tries to establish that we're stopped in
169366 Stopped due to shared library event (no libraries added or removed)^M
169378 Using the backtrace, the test-case tries to establish that we're stopped in
169418 The test-case intends to emit an UNTESTED in this case, but fails to do so
169419 because it tries to do it in a regexp clause in a gdb_test_multiple, which
169443 <lots-of-code>
169451 <lots-of-code>
169461 same result when stopped at a function (level == 0), compared to when
169464 E.g., on x86-64, right after running to main, we see:
169476 and then after continuing to a function called by main, and selecting
169511 This patch changes the parameter type to ULONGEST and updates all the
169519 Change ptid_t::tid to ULONGEST
169524 This patch changes the type to ULONGEST to ensure that sign extension
169529 Remove defaulted 'tid' parameter to ptid_t constructor
169530 I wanted to find, and potentially modify, all the spots where the
169531 'tid' parameter to the ptid_t constructor was used. So, I temporarily
169534 In order to make it simpler to search through the "real" (nonzero)
169535 uses of this parameter, something I knew I'd have to do multiple
169543 This patch changes gdb to use the 'highlight' style on the "XXX" text
169565 new objfile name: /lib/x86_64-linux-gnu/libdl.so.2^M
169569 new objfile name: /lib/x86_64-linux-gnu/libpthread.so.0^M
169582 /* If you want to see the disassembled instruction printed to gdb_stdout,
169583 set verbose to true. */
169600 of memory being consumed, due to ia64 gas not tracking text
169601 sub-sections. Trying to add nops for ".nop 16" in ".text 1" resulting
169602 in them being added to subsegment 0, with no increase to subsegment 1
169607 last three appear to be the .nop directive failing to emit the right
169630 …for computing the entry point for binaries so that shared libraries default to an entry point of 0.
169634 * ld.texi (Entry point): Update description of heuristic used to
169662 We could just do a clean_restart every time, but that would amount to 44 gdb
169663 restarts. We try to minimize this by doing this only for the few procs that
169667 gdb_exit, to make sure the gdb instance doesn't linger such that we detect
169681 - fixing the resulting error by adding supports_memtag in the test-case to
169688 gdb, doc: Add ieee_half and bfloat16 to list of predefined target types.
169689 For some reason these two weren't added to the list when they were orginally
169690 added to GDB.
169730 ^done,stack-args=[frame={level="0",args=[{name="<_object>",value="(ceiling_priority =\
169731 > 97, local => 0)"},{name="v",value="5"},{name="<_objectO>",value="true"}]},frame={le\
169732 vel="1",args=[{name="v",value="5"},{name="<_objectO>",value="true"}]},frame={level="2\
169739 Fix this by updating the regexp to expect "^done,stack-args=" instead of
169772 This makes it f.i. possible to do:
169784 [gdb] Change register_test to use std::function arg
169785 Change register_test to use std::function arg, such that we can do:
169818 Bug 28341 shows that GDB fails to compile when built with -std=c++11.
169819 I don't know much about the use case, but according to the author of the
169822 I encountered the scenario where CXX is set to "g++ -std=c++11" when
169823 I try to compile binutils under GCC as part of the GCC 3-stage
169853 Dump of assembler code for function custom_insn:
169860 My proposal, in this patch, is to change the behaviour to this:
169862 Dump of assembler code for function custom_insn:
169871 be fed back into the assembler and it should assemble to the same
169898 Fixes segfaults when building aarch64-linux kernel, due to only doing
169910 Move eelf_mipsel_haiki.c to ALL_64_EMULATION_SOURCES
169912 undefined references due to elfxx-mips.c not being compiled. This
169916 to verify dependencies are present.
169919 (ALL_EMULATION_SOURCES): Sort. Move eelf_mipsel_haiku.c to..
169952 gdb: manual: update @inforef to @xref
169954 Also had to update the text capitalization to match current manual.
169966 modified to handle archives, via the ctf archive iterator and its callback
169967 build_ctf_archive_member and scan_partial_symbols was modified to scan
169968 archives, which are treated as subfiles, to build the psymtabs.
169970 Also changes were made to handle CTF's data object section and function
169994 The test-case expects the backtrace command to trigger remote communication,
170001 run to main before doing the backtrace.
170021 behaviour bisects to gcc commit d70ba0c10de.
170023 The FAIL with earlier gcc bisects to gdb commit ba8694b650b. ]
170036 An easy way to fix this would be to simply not put named artificial variables
170038 on being able to get the value from such variables, using a named reference.
170065 tricky to locate that previous .loc if there might be gas generated
170069 sane. Unfortunately, gas needs to handle mangled source.
170083 gcc-11 and gcc-12 pass -gdwarf-5 to gas, in order to prime gas for
170089 file name string.)
170103 (set_or_check_view): Replace all accesses to view with u.view.
170113 (dwarf2_where): Set u.filename and filenum to -1 for gas generated
170130 Pass addends to all the GOT handling functions, plus remove some
170134 * powerpc.cc (Output_data_got_powerpc): Add addend parameter to
170136 (Target_powerpc::Scan::local): Pass reloc addend to got handling
170147 to tls_offset_for_local which might need the addend in a
170152 stub code won't want an offset into the code.
170156 in global symbol value. Pass addend to tls_offset_for_*.
170187 pass to got handling methods.
170200 were implemented as separate methods. This removes unnecessary code
170205 the existing comments are not precisely what the code does. For
170229 might be advantageous to keep the addend in Local_got_entry_key when
170231 relocations. I opted to save some memory by removing the field but
170232 left the class there in case we might need to restore {sym,addend}
170238 Adjust constructor and methods to suit.
170249 This patch adds an addend field to Got_offset_list, so that both local
170254 constructors. Adjust all accessors to suit.
170255 (Sized_relobj::do_local_has_got_offset): Adjust to suit.
170267 "A problem internal to GDB has been detected,
170277 * In the past we had two extension tables, one is used to record all
170278 supported extensions in bfd/elfxx-riscv.c, another is used to get the
170279 default extension versions in gas/config/tc-riscv.c. It is hard to
170283 We not only use these tables to initialize the riscv_ext_order, but
170284 also use them to get the default versions of extensions, and decide if
170288 to decide if the extension should be enabled by default. For now if the
170289 `default_enable' field of the extension is set to EXT_DEFAULT, then we
170292 to lots of EXT_<VENDOR>, each vendor can decide to open which extensions,
170303 (struct riscv_supported_ext): Used to be riscv_ext_version. Moved
170304 from gas/config/tc-riscv.c, and added new field `default_enable' to
170307 (riscv_supported_std_ext): It used to return the supported standard
170309 gas/config/tc-riscv.c to here, and rename it to riscv_supported_std_ext.
170310 Currently we not only use the table to initialize riscv_ext_order, but
170320 (riscv_init_ext_order): Init the riscv_ext_order table according to
170326 (riscv_set_default_arch): Set the default subset list according to
170329 riscv_set_default_arch to set the default subset list.
170332 isa_spec field to replace it.
170336 (struct riscv_ext_version): Renamed and moved to bfd/elfxx-riscv.c.
170360 [Switching to Thread 0x7ffff7fc4740 (LWP 1276)]^M
170377 which causes the inferior to exit before the ctrl-c can be send.
170440 where the labels refer to dw2-abs-hi-pc-hello.c:
170465 Use regular expressions to fix the got-weak linker test.
170475 going to make a difference anywhere, but we may as well be correct.
170494 Fix printable name for bfd_mach_n1: "nh1" -> "n1".
170499 * cpu-nds32.c (bfd_nds32_arch): Fix printable name for bfd_mach_n1
170573 in the hole (such as 0x4004b6 in the backtrace) to the foo CU.
170581 The patch adds a bit to struct partial_die_info, in this hole (shown for
170665 The discrepancy is caused by this code which skips the dummy CUs:
170672 case it does not need to be present in .debug_names. */
170679 leaves the dummy CUs out of the CU list. The purpose of having these is to
170683 - removing the code that skips the dummy CUs (note that the same change
170721 When statically linking, it can arrive to an undefined weak symbol of
170723 code which doesn't take this situation into account, leading to access
170734 symbol value and section to above introduced function, and use
170751 tend to have long lifetimes. Maybe consider dropping SDL1 in another
170762 code. This patch removes it.
170766 [gdb/testsuite] Check for valid test name
170767 When running gdb.base/batch-exit-status.exp I noticed that the test name
170778 WARNING: Newline in test name
170791 due to:
170798 The test fails because we expect disassembling of one arm insn to consume 4
170810 this code in gdb_print_insn_arm isn't triggered:
170820 and don't set force_thumb to true in select_arm_features.
170822 The code in gdb_print_insn_arm makes the assumption that the disassembly
170852 During the first failed test, force_thumb is set to true, and remains so until
170855 Fix this by resetting force_thumb to false in parse_arm_disassembler_options,
170876 Python is not enabled, so it didn't seem useful to leave it defined.
170882 branch, remove it to make sure the testcase can work.
170891 …ge_section() later calling obj_elf_section(), it seems better to pre-parse the section name by the…
170892 gas * config/tc-mips.c (s_change_section): Use obj_elf_section_name to
170893 parse the section name.
170895 …ss_section() later calling obj_elf_section(), it seems better to pre-parse the section name by the…
170896 gas * config/tc-ia64.c (cross_section): Use obj_elf_section_name to
170897 parse the section name.
170923 Fix this by updating the regexp to not require "in" before " main".
170934 [gdb/testsuite] Fix test name in gdb.base/batch-exit-status.exp
170935 When running gdb.base/batch-exit-status.exp I noticed that the test name
170942 The mistake is that I passed an output regexp argument to a parameter
170946 Add support for checking output, to be able to handle the output regexp
171006 sim: run: change help short option to -h
171008 -h is still not used, just change -H to -h to match pretty much every
171019 - patches the gdb_python_initialized variable in gdb to 0
171023 - execute_command_to_string to capture the output
171024 - try/catch to catch the "Python not initialized" exception.
171048 # mi_gdb_test COMMAND PATTERN MESSAGE [IPATTERN] -- send a command to gdb;
171073 A regexp pattern with escapes like this is hard to read:
171078 We can make it more readable by spacing out parts (which allows us to also use
171092 Note: we have to avoid applying string_to_list to decimal, which is already a
171095 Add a proc string_list_to_regexp to make it easy to do both:
171137 Re: gas: Use the directory name in .file 0
171144 etc: switch to automake
171145 There's no content in here currently, so switching to automake is
171148 etc: rename configure.in to configure.ac
171149 The .in name has been deprecated for a long time in favor of .ac.
171153 gas: Use the directory name in .file 0
171154 DWARF5 allows .file 0 to take an optional directory name. Set the entry
171155 0 of the directory table to the directory name in .file 0.
171159 the directory name in .file 0 and use it, instead of PWD.
171160 (allocate_filenum): Pass NULL to get_directory_table_entry.
171161 (allocate_filename_to_slot): Pass the incoming dirname to
171188 The test expects an actual file name instead of '[exe]', but that only got
171203 due to function f2 instead of f3 being listed.
171224 Doing this fix, it made sense to do a refactoring of adding f2_re and f3_re
171225 variables, in order to write (?:$f2_re|$f3_re), and I applied the same pattern
171228 Furthermore, I found a silent FAIL due to calling mi_gdb_proc with 2 args, fix
171256 and use the latter to capture the complaints output.
171265 is not defined in Python 3 and so we define it to 0 in
171275 there could be a some code compiled out there which has a PyTypeObject
171277 fields, attempting to access these fields would be undefined
171281 present then Python is free to access the tp_iter and tp_iternext
171286 enough to try and compile GDB against Python 2.1 then we'd get lots of
171293 time additional fields are added to PyTypeObject a new Py_TPFLAGS_*
171294 flag would be defined to indicate whether those flags are present or
171295 not. And, those new flags would be added to Py_TPFLAGS_DEFAULT. And
171303 And so, in this commit, I propose to remove all uses of
171314 thus quite trivial, so lets round it out to be less annoying.
171319 these, the ppc code does as well. For others, it doesn't make sense
171320 to ever change them. Since it's unlikely anyone is using this, drop
171321 it all to simplify the code (and to get us a little closer to the
171322 common sim code).
171326 the ppc arch to enable gnulib usage here too.
171336 We have enough functionality from gnulib now to build sockser on
171346 The cgen framework provides a "VOID" type for code to use, but this
171348 Since they actually define to the same thing ("void"), undef it here
171349 to fix the Windows build.
171351 We might want to reconsider the need for "VOID" in cgen, but that
171387 This is because v850 sets up this common name:
171389 All of this needs cleaning up someday, but since the dv-sockser code
171391 the v850 code.
171396 It's unclear what this define is for as it appears to be unused, and
171397 has never been used in the history of the mips sim. Delete it to tidy
171398 up, and to fix build errors for Windows targets that have a standard
171401 code for mingw uncovers the conflict.
171404 it through the preprocessor manually manages to provide a pointer to
171414 …/usr/i686-w64-mingw32/usr/include/wingdi.h:2934:59: error: unknown type name 'LPSIZE'; did you mea…
171433 sim: ppc: switch to common warning flags
171434 Now that the ppc code has been cleaned up enough to use the same set
171435 of warning flags as the common code, delete the ppc-specific configure
171436 logic so we can leverage what the common code already defined for us.
171451 Fix these by adding an explicit pointer cast. It's a bit ugly to use APIs
171452 based on signed integers to read out unsigned values, but in practice, this
171453 is par for the course in the ppc code.
171455 We already use signed APIs and assign the result to unsigned values a lot:
171457 then assign it to unsigned types. The array APIs are not used that often
171459 assign signed integers to unsigned integers in general.
171463 left to the caller. They have core APIs that read/write bytes, and a few
171464 helper functions to cast/convert those bytes to the right value (e.g. u32).
171465 In this ppc sim code, the core APIs use signed integers, and the callers
171466 convert to unsigned, usually implicitly.
171468 We could add some core APIs to the ppc sim that deal with raw bytes and then
171469 add some helpers to convert to the right type, but that seems like a lot of
171470 lifting for what boils down to a cast, and is effectively equivalent to all
171471 the implicit assignments we use elsewhere. Long term, a lot of the ppc code
171472 should either get converted to existing sim common code, or we should stand
171473 up proper APIs in the common code first, or use standard libraries to do all
171474 the processing (e.g. libfdt). Either way, this device.c code would all get
171481 This aligns with common code which already uses this flag. We have
171482 to add another local prototype to fix the failure, and add another
171492 the common ones to avoid issues.
171515 The disassembler has support to pretty print values created by an lui/addi
171517 c.addi and c.addiw. This patch extends the pretty printing support to
171518 handle these 3 instructions in addition to addi. Existing testcases serve
171524 (print_insn_args): Fix calls to maybe_print_address. Add checks for
171534 sim: ppc: align format string settings with common code
171535 This copies logic used in the common sim warning configure code to fix
171540 This file is compiled for the --host & --build system which leads to
171554 Some sim ports use these to provide networking functionality via the
171557 Gdb seems to build just fine still too.
171562 Like Tom de Vries' earlier patch to fix the no-CXX_STD_THREAD case in
171569 This hardens the powerpc64 linker code transformations.
171573 accessing section contents for various code transformations.
171579 and I'm not inclined to implement code editing for them.
171588 when we want to indicate that there is no stop_pc available we set
171589 this field back to a special value.
171592 the stop_pc is set to 0. This is a little unfortunate, there are
171598 gdb::optional. We can now explicitly reset the field to an
171607 all the other threads to a stop those other threads will not have a
171611 threads executing flag was set to false and the stop_pc field was left
171616 This caused a problem when we later try to set these threads running
171620 Now however, this compare tries to read the stop_pc when it has no
171626 however, this doesn't mean that every call to thread_info::stop_pc()
171627 needs to be guarded with a call to thread_info::stop_pc_p(), in most
171628 cases we know that the thread we are looking at stopped due to some
171666 Fix sorting of the list, and update the globs to match the list used
171670 The sim side is already ready to go for cris, so wire it up.
171673 The sim side is already ready to go for aarch64, so wire it up.
171676 Moving all the sim settings to one section makes it easier to track,
171677 and makes it easier to keep it aligned with the sim target tests.
171680 sim is tied to a cpu and not related to the OS.
171690 code was changed a while ago, but this declaration slipped through.
171705 prefix command doc strings, but switched to using std::string when
171724 Change struct internal_problem (gdb/utils.c) to use bool instead of
171725 int, update the 3 static instances of this structure that we create to
171729 existing comment doesn't seem to be referring to the structure, it
171738 Rename thread_info::executing to thread_info::m_executing, and make it
171739 private. Add a new get/set member functions, and convert GDB to make
171745 helper function set_executing_thread included some code to reset the
171746 thread's stop_pc, so I moved this code into the new function
171749 executing flag was always set true through a call to
171754 Fix an illegal memory access triggered by an atempt to disassemble a corrupt xtensa binary.
171761 gdb/python: new function to add values into GDB's history
171762 The guile API has (history-append! <value>) to add values into GDB's
171765 This commit adds gdb.add_history(<value>) to the Python API, this
171766 function takes <value> a gdb.Value (or anything that can be passed to
171767 the constructor of gdb.Value), and adds the value it represents to
171772 Fix illegal memory access triggered by an attempt to disassemble a corrupt RISC-V binary.
171781 to trigger the internal-error in test-case
171800 Adds missing bfd_reloc_offset_in_range checks to various relocation
171818 FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
171822 and takes 1 minute to run.
171832 A problem internal to GDB has been detected,^M
171852 This commit fixes this and makes sure that all the files linked to this
171853 testcase share the same prefix in the name.
171863 FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
171886 FAIL: gdb.dwarf2/locexpr-data-member-location.exp: running to bar in runto \
171908 Fix potential uninitialised variable in microblaze assembler code.
171912 Add a sanity check to the init_nfp6000_mecsr_sec() function in the NFP disassembler.
171941 continue to test_rip_vex2_end
171943 The SIGILL happens when trying to execute the first avx instruction in the
171956 - adding a gdb_caching_proc have_avx, similar to have_mpx, using the have_avx
171968 * gdb/testsuite/gdb.arch/i386-avx.c (main): Remove call to have_avx.
171977 A few sims use this to emulate process syscalls.
171978 Gdb builds seem to still be fine.
171988 this down to x86_dr_low_get_addr returning an 'unsigned long'... in
172001 though it seems probable that other gcc versions might also be able to
172008 the DWARF assembler to provide debug info for a shared object. That
172010 allow this case to be used as a template when a combo shared
172016 This problem was difficult to reproduce; I found myself constantly
172017 referring to the backtrace while trying to figure out what (else) I
172018 might be missing while trying to create a reproducer. Below is a
172087 Frame #22 - it's a partial backtrace - shows that GDB is attempting to
172091 nutshell, after starting the program and advancing to the appropriate
172092 source line, GDB was asked to step into libstdc++; a "finish" command
172094 very important. GDB was then used to step back into libstdc++. A
172098 Frame #19 shows a call to objfile_purge_solibs. It's aptly named.
172100 Frame #7 is a call to the destructor for one of the objfile solibs; it
172101 turned out to be the one for libstdc++.
172122 - using info function to detect presence of clear_complaints
172163 This adds support for the half datatype, FP16, to the AVX512 register printing.
172187 in the original enablement. This also adjusts the testcase to pass with
172226 - using gdb_breakpoint to detect failure to set the breakpoint
172227 - handling the failure to set a breakpoint by calling untested
172239 * lib/selftest-support.exp: Emit untested when not being able to set
172247 attempt to trim off -fsanitize options left us with ",undefined".
172248 2) ld_compile adds CFLAGS_FOR_TARGET itself, no need to pass it.
172258 CFLAGS_FOR_TARGET to ld_compile.
172270 nios2 testing to trash CFLAGS_FOR_TARGET.
172279 CC_FOR_TARGET to be a compiler for the binutils target machine. This
172282 too. This was all supposed to work with the testsuite .exp files
172285 CC_FOR_HOST=$CC to the runtest invocation.
172287 One exception to the rule of using CC_FOR_TARGET is the native-only ld
172288 bootstrap test, which uses the newly built ld to link a copy of
172295 other dejagnu code knows about CC_FOR_TARGET. See dejagnu/target.exp.
172298 all the .exp files to use the correct _FOR_TARGET variables.
172300 correct bootstrap.exp to use CFLAGS, and a number of other things I
172307 * Makefile.am (check-DEJAGNU): Don't set CC to CC_FOR_TARGET
172343 * Makefile.am (check-DEJAGNU): Don't set CC to CC_FOR_TARGET.
172361 ubsan: libctf: applying zero offset to null pointer
172367 --enable-maintainer-mode showed a number of files needing to be
172369 regenerated by hand. Nothing to see here really.
172374 * po/BLD-POTFILES.in: Regenerate.
172383 to match GNU ld.
172416 than 64k. Since the mapping is 1-1 with symbols there is no need to
172418 just make sure that the shndx pointers to the swap functions are kept
172426 This defines a couple of macros used to avoid ubsan complaints about
172429 pointer, and you'd like to know if a non-zero offset is ever used.
172450 as large as a pointer), due to making calculations relative to a NULL
172452 simplifying __BPTR_ALIGN for the usual case. I've continued to use
172453 ptrdiff_t here, where it might be better to throw away __BPTR_ALIGN
172457 rather than calculating relative to a NULL pointer.
172466 [ Using $build for /home/vries/gdb_versions/devel/build to make things a bit
172469 When using make check// to run test-case gdb.dwarf2/fission-base.exp:
172485 The problem is that the executable refers to the dwo file using path name
172502 I used this trick to avoid doing additional_flags=-DDWO=\"$dwo\", since I was
172633 types to use bool.
172639 …Update the how-to-make-a-release document so that a check for empty manual pages is included. cf …
172643 RISC-V: Extend .insn directive to support hardcode encoding.
172646 For example, if users want to use sifive cache instruction, they
172647 cannot just write "cflush.d1.l1" in the assembly code, they should
172649 may not easy to use for some cases, and not so friendly to users.
172651 to encode the instructions directly, rather than use .insn. But
172655 extend the .insn direcitve to support the hardcode encoding, is the
172656 easiest way to resolve the problem. Therefore, there are two more
172666 * config/tc-riscv.c (riscv_ip_hardcode): Similar to riscv_ip,
172667 but assembles an instruction according to the hardcode values
172683 the function can be simplified to assume the gdbfmt case and remove
172695 uses the 'j' size modifier along with uintmax_t / intmax_t casts to
172710 Instead, use plongest and pulongest to generate the output strings of
172737 I haven't dug to know why it does not happen everywhere, but this patch
172738 fixes it by using the constructor to initialize the variable, rather
172746 * According to PR28291, we get the following unexpected gdb behavior,
172749 Dump of assembler code from 0x0 to 0x4:
172756 * This patch should fix it to the right behavior,
172759 Dump of assembler code from 0x0 to 0x4:
172772 "n-1" that was used to size an array).
172782 I wanted to see how many threads gdb thought it was using, but
172801 Fix this by skipping the call to gdb_abspath in core_target_open in the
172817 * gdb/corelow.c (core_target_open): Skip call to gdb_abspath in the
172830 Similar to ARM/AARCH64, we add mapping symbols in the symbol table,
172831 to mark the start addresses of data and instructions. The $d means
172833 symbols to decide whether we should dump data or instruction.
172848 .word 0x1 # No need to add mapping symbols.
172871 * Use $d and $x to mark the distribution of data and instructions.
172872 Alignments of code are recognized as instructions, since we usually
172878 to tell disassembler that it isn't an instruction. The behavior
172891 symbols as a function name.
172904 (riscv_mapping_state): Decide whether to create mapping symbol for
172905 frag_now. Only add the mapping symbols to text sections.
172916 * config/tc-riscv.h (md_cons_align): Defined to riscv_mapping_state
172922 (TC_FRAG_INIT): Defined to riscv_init_frag.
172946 Added to dump sections with mapping symbols.
172967 This style is somewhat annoying because if you want to specify the last
172968 parameter, you need to give the default values of all the other optional ones
172974 Update the syntax to:
172993 Also update proc aranges, which already has an options argument, to use the
173010 ld: Change indirect symbol from IR to undefined
173015 IR to undefined.
173112 while the .debug_aranges entry still points to 0xc7.
173118 .debug_info section, but not an .debug_aranges section or any actual code.
173119 The file watch-loc.c contains code and a .debug_aranges section, but no other
173121 is to refer to a compilation unit in the .debug_info section in
173124 and adding the dummy CU caused that hack to stop working.
173126 Fix this by moving the generation of .debug_aranges from watch-loc.c to
173143 A best practise for DWARF [1] is to generate .debug_aranges entries for CUs
173156 to missing .debug_aranges entries for the CUs added by the dwarf assembler.
173181 [gdb/testsuite] Add label option to proc cu
173182 We can use current dwarf assembly infrastructure to declare a label that marks
173193 on the condition that we switch to the .debug_info section before, which makes
173196 Another way to achieve the same is to use the label as generated by the cu
173210 Add a label option to proc cu such that we can simply do:
173228 debug message during conversion to the new debug output scheme. These
173244 the patches that merge the list of CUs with the list of TUs (and to a
173245 lesser degree by the patches to share DWARF data across objfiles), and
173247 cause new type units to be created. This means that the list of
173257 spots to use it.
173265 * testsuite/lib/ld-lib.exp (run_host_cmd): Give a clue as to why
173305 and runs to it, expecting that the language should remain "auto; c"
173310 breakpoint stop sets the current language to the language that was
173314 sets the current language to C++ at startup, causing this test to
173322 It seemed safe to me to submit this separately.
173327 With trying to load a non-executable file into gdb, we run into PR26880:
173347 * gdb/exec.c (exec_file_attach): Use %s instead of %ps in call to
173369 - PR gas/28233 - "[gas, --gstabs] Generate stabs more similar to gcc"
173371 The test-case contains a KFAIL for PR12497, but it's outdated and fails to
173374 The intention of the test-case is to test gas-generated dwarf, and using
173378 there's no current commitment/incentive to support/workaround gas-generated
173400 first in .debug_info, nor the last, due to presence of debug information in
173411 This difference has caused me to find some errors in the dwarf assembly
173451 * lib/gdb.exp (gdb_load_no_complaints): Update regexp to allow
173463 This breaks building for non-Linux systems, so put all the code in
173464 __linux__ ifdef checks. This code needs a lot of love to make it
173477 sim: nltvals: switch output mode to a directory
173479 argument to specify a directory. This drops the stdout behavior, but
173489 Trivial patch to use bool instead of int.
173531 Move this function to solib.c and rename it to gdb_bfd_scan_elf_dyntag.
173532 Also add it to solib.h so it is included in both solib-svr4 and solib-dsbt.
173541 Add a method to set the gcc target options for the ppc64 targets.
173547 Add methods to set the target triplet so we can
173556 Allow the test to pass for such targets. Fixes the following.
173577 functions are added to stub sections when the original (in
173595 Fix the Blackfin code and remove the defines out of the header
173596 so no new code can rely on them.
173600 sim: rename ChangeLog files to ChangeLog-2021
173602 this commit renames all relevant sim ChangeLog to ChangeLog-2021,
173603 similar to what we would do in the context of the "Start of New
173606 The purpose of this change is to avoid people merging ChangeLog
173610 Also throw in a .gitignore entry to keep people from adding new
173623 [infrun] start_step_over: stealing global queue of threads to step, length = 2
173626 thread_step_over_chain_length, "num" should be initialized to 0. I
173627 think this bug is a leftover from an earlier version of the code (not
173638 the following changes to correct that error.
173655 The r_ldsomap field is specific to Solaris (part of librtld_db), and
173656 should never be accessed for Linux. glibc is planning to add a field
173657 to support multiple namespaces. But there will be no r_ldsomap when
173658 r_version is bumped to 2. Add linux_[ilp32|lp64]_fetch_link_map_offsets
173659 to set r_ldsomap_offset to -1 and use them for Linux targets.
173666 Update gdbserver to check r_version < 1 instead of r_version != 1 so
173668 interface to support multiple namespaces. Since so far, the gdbserver
173673 If there is ever the need for backward incompatible change to the glibc
173674 debugger interface, a new DT_XXX element will be provided to access the
173703 'Tag_PACRET_use' to the attribute_table.
173734 'Tag_BTI_use' to the attribute_table.
173765 'Tag_BTI_extension' to the attribute_table.
173796 'Tag_PAC_extension' to the attribute_table.
173827 12 bytes to 10 bytes to match .tfloat output.
173833 * config/tc-i386.h (X_PRECISION_PAD): Changed to 0.
173854 …Breakpoint 1, file_1.export_1 (param_1=<error reading variable: Unable to access DWARF register nu…
173860 The difference is that the new code uses the passed-in gdbarch,
173861 whereas the old code used the frame's gdbarch, when handling
173868 Fix Ada regression due to DWARF expression series
173871 to reproduce this with the GDB test suite, but the test is identical
173872 to gdb.dwarf2/dynarr-ptr.exp.
173883 the caller to pass in a non-NULL m_addr_info, but one that looks like:
173896 In this case, an additional check is needed. With the current code,
173898 address -- but one that does not fail in read_memory, due to the
173917 code and implements corresponding tests for the MI and Python cases.
173928 it to be removed and replace the removed symbol used in relocation with
173942 if it is used on relocation. Instead, mark it as to be removed
173943 and issue an error if the symbol has more than one versioned name.
173963 It turns out we do need to backtrack when parsing after all. The
173964 fill_opt component in the section rule swiches to EXPRESSION and back
173965 to SCRIPT, and to find the end of an expression it is necessary to
173982 This change will quite likely trip over issues similar to those
174038 the need to do so for phdrs like ":text". Instead {WILDCHAR}*
174039 matching, the reason why ":text" lexed as one token, is restricted to
174043 which doesn't seem to be needed any more. Besides rules involving
174049 renaming the old BOTH state to SCRIPT and renaming the old SCRIPT
174050 state to WILD with a reduced scope.)
174053 rules that no longer need it due to this cleanup.
174078 I also enabled ns32k-openbsd in ld since there doesn't seem to be a
174093 While working on the testsuite, I ended up noticing that GDB fails to
174103 On my platform, I do not have debug symbols for glibc, so I need to rely
174104 on prologue analysis in order to unwind stack.
174109 Dump of assembler code for function __pthread_clockjoin_ex:
174130 we are looking for in order to identify the caller.
174133 hitting 0x0000003ff7fc42e6 (<+8>) because it does not know what to do
174136 GDB's inability to unwind past this point.
174138 The section of the prologue starting at <+4> until <+12> is used to load
174142 In order to have the prologue properly handled, this commit proposes to
174147 With this patch applied, gdb is now able to unwind past pthread_join:
174156 I have had a look to see if I could reproduce this easily, but in my
174159 generating a prologue similar to the problematic one so I forged one
174169 Update documentation to mention Pygments
174172 the docs to reflect how highlighting is actually done.
174187 The test steps into func2 and than does an up to get back to the previous
174196 return 0; / Break to end. */
174200 GDB.find_pc_line() maps to the same line number as the bl instruction.
174203 The following proposed fix adds an additional PC check to see if forward
174204 progress was made. The line test is changed from greater than to greater
174212 to gdb, tdesc_has_registers will return ture, but tdesc_register_name (gdbarch, 0)
174216 now it is temporarily removed to allow me to do other supported tests.
174239 of PR ld/28138 test to indicate which part of the test passed
174244 …. The Double-precision floating-point exception handling control register name is DECNT not DCENT.
174252 Fix an internal error in the CSKY assembler when asked to resolve an overlarge constant.
174269 We don't need GDB to bother with this at the moment, so this doesn't update
174291 allowing the user to be explicit about there choice. Additionally, the
174295 was supported. But per [1] NetBSD has removed support, and if it were to
174335 Currently, when GDB hits an internal error, and the user selects to
174336 dump core, the recently added feature to write a backtrace to the
174341 signal functionality, this feature was intended to produce a backtrace
174342 when GDB crashes due to some fatal signal, internal errors should have
174343 continued to behave as they did before, unchanged.
174345 In this commit I set the signal disposition of SIGABRT back to SIG_DFL
174346 just prior to the call to abort() that GDB uses to trigger the core
174347 dump, this prevents GDB reaching the code that writes the backtrace to
174357 signals are setup as fatal signals that will cause GDB to terminate.
174359 function, a user can arrange to see a backtrace when GDB
174372 This commit adds a new maintenance feature, the ability to print
174373 a (limited) backtrace if GDB dies due to a fatal signal.
174377 which are async signal safe. A configure check has been added to
174378 check for these features, if they are not available then the new code
174381 The motivation for this new feature is to aid in debugging GDB in
174383 reluctant to share core files, possibly due to concerns about what
174385 be happy to share a simple backtrace that was written to stderr.
174393 Right now, I have hooked this feature in to GDB's existing handling of
174394 SIGSEGV only, but this will be extended to more signals in a later
174398 decide GDB should terminate due to the fatal signal, we now
174405 This feels like an improvement to me, we should still get a core dump,
174428 A fatal error internal to GDB has been detected, further
174437 the addresses back to symbols, this appears, in part, to be due to GDB
174440 to the build of GDB I only see symbols for some addresses.
174442 We could potentially look at alternative libraries to provide the
174449 gdb: rename async_init_signals to gdb_init_signals
174457 The comments relating to SIGTRAP and SIGQUIT within this function are
174461 being passed to the inferior, meaning the signal disposition being
174463 restore_original_signals_state prior to forking, so the comment on
174475 to (hopefully) better reflect reality.
174482 This commit fixes the smallest of small possible bug related to signal
174483 handling. If we look in async_init_signals we see code like this:
174489 Then if we look in handle_sigquit we see code like this:
174508 There are no tests for this. Trying to land a signal in the right
174538 We currently try to use an async event token to process SIGFPE. So,
174547 The problem is that SIGFPE is not safe to ignore. Ignoring a
174550 return to the instruction that caused the SIGFPE to be raised, which
174551 immediately causes another SIGFPE to be raised, we get stuck in an
174554 To view this behaviour I simply added some dummy code to GDB that
174558 In this commit, I propose to remove all special handling of SIGFPE and
174560 to terminate the process.
174564 - If a user sends a SIGFPE to GDB using something like kill,
174572 this is inline with what happens if GDB receives a SIGSEGV due to
174588 comments. Extend # comment handling to all states.
174594 token. Let's use a better name. The formatting changes are for
174595 consistency within rules, and making it a little easier to visually
174599 (statement): Formatting. Move ';' match to beginning.
174609 is an assignment to dot or a file named ".+=4".
174615 Add a -mno-dollar-line-separator command line option to the AVR assembler.
174617 characters in them. The AVR target code in gas treats $ as a line separator,
174618 so the code doesn?t assemble correctly.
174620 Provide a machine-specific option to disable treating $ as a line separator.
174634 The respective results differ only by the sign bits - there's no need to
174643 signalling may be even more relevant to be able to encode.
174653 to be encoded that way. However likely it may be that, given that the
174654 code lives in a source file supposedly implementing IEEE-compliant
174656 want to guess so. And my very, very old paper doc doesn't even mention
174661 Arm64: leave .bfloat16 processing to common code
174663 unnecessary code duplication in md_atof(). This will then also allow to
174664 take advantage of adjustments made there without needing to mirror them
174667 Arm32: leave more .bfloat16 processing to common code
174669 unnecessary code duplication in md_atof(). This will then also allow to
174670 take advantage of adjustments made there without needing to mirror them
174675 ones so far required the 2nd argument to be present, contrary to
174676 documentation. To avoid code duplication, split float_length() out of
174677 hex_float() (taking the opportunity to adjust error message wording).
174682 This is to be able to generate data acted upon by AVX512-BF16 and
174684 sufficiently standardized to warrant handling in config/atof-ieee.c.
174685 Arm, where custom handling was implemented, may want to leverage this as
174686 well. To be able to also use the hex forms supported for other floating
174687 point formats, a small addition to the generic hex_float() is needed.
174694 This is to be able to generate data passed to {,V}CVTPH2PS and acted
174695 upon by AVX512-FP16 insns. To be able to also use the hex forms
174696 supported for other floating point formats, a small addition to the
174729 numbers padding space can be set to non-zero. Since the logic is needed
174758 allowing a relocation to write over memory anywhere. This was true
174763 relocation howtos, then uses those howtos to sanity check relocation
174773 for RH_SADDR. Set size to 3 and bitsize to 0 for all OP relocs.
174798 be ignored. That is, this bug turns out to be another regression from
174802 fission-reread.exp is updated to test for the bug.
174807 While debugging another patch series, I wanted to dump an addrmap. I
174808 came up with this patch, which generalizes the addrmap-dumping code
174809 from psymtab.c and moves it to addrmap.c. psymtab.c is changed to use
174810 the new code.
174830 other inferior. The chances of the stars aligning for this to happen
174836 check. The resulting code is also more straightforward in my opinion,
174848 Before Guile v2.1 [1], calls to `scm_make_smob_type' implicitly added
174849 the created class to the exports list of (oop goops); v2.1+ does not
174854 are not bound to any variables at all!).
174856 There is a range of cases in which it's necessary or convenient to be
174857 able to refer to a GDB smob type, for instance:
174867 If you're more familiar with Python, it would be quite similar to being
174868 unable to refer to the classes exported from the GDB module (which is to
174872 This commit makes a small change to GDB's smob registration machinery
174873 to make sure registered smobs get exported from the current
174874 module. This will likely cause warnings to the user about conflicting
174877 preferable to trying to un-export bindings from (oop goops) if v2.0
174894 * gdb.guile/scm-gsmob.exp (test exports): Add tests to make
174929 It seemed harmless and correct to add these includes now, making the
174961 DIR24S_PCREL overflow is due to undefined function.
174962 (rl78_offset_for_reloc): Adjust to suit rl78_compute_complex_reloc.
174975 symbol table to empty.
174998 function to be conditionally defined -- doing so will result in a link
175032 - in find_pc_sect_compunit_symtab we try to find the address
175048 which correspond to unrelocated addresses 0x9c218 and 0x9c21d:
175054 which belong to function __gnu_debug::_Error_formatter::_M_error() in
175092 which then results in this code in process_psymtab_comp_unit_reader being
175094 argument to 1:
175118 This is caused by this code in partial_die_info::read:
175171 This patch is more about the style of bounds checking we ought to use,
175199 dead code. Take an unsigned int param.
175200 (nds32_info_to_howto_rel): Test for NULL howto or howto name
175203 Test for NULL howto or howto name return from lookup.
175208 bfin pcrel24 relocs are weird, they apply to the reloc address minus
175226 Update the gdb.compile/compile-cplus.exp test to
175229 This matches changes made to gdb.compile/compile.exp
175231 "Migrate rest of compile commands to new options framework"
175240 we need to associate this with the .toc section in order to
175243 SEC_ALLOC flag. If that also fails, fall back to using
175244 the *ABS* section, pointed to by bfd_abs_section_ptr.
175249 In gdb.base/attach.exp, proc do_attach_failure_tests, we attach to a
175250 process. When then try to attach to the same process in another
175251 inferior, expecting it to fail. We then come back to the first inferior
175252 and try to kill it, to clean up the test. When using the
175261 [Switching to inferior 2 [<null>] (<noexec>)]
175262 (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: switch to inferior 2
175264 Attaching to process 817032
175265 Attaching to process 817032 failed
175266 (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: fail to attach again
175268 …[Switching to inferior 1 [process 817032] (/home/simark/build/binutils-gdb/gdb/testsuite/outputs/g…
175269 [Switching to thread 1.1 (Thread 817032.817032)]
175272 (gdb) PASS: gdb.base/attach.exp: do_attach_failure_tests: switch to inferior 1
175278 When the second attach fails, gdbserver seems to break the connection
175283 currently accepts anything). Use "set confirm off" so we don't have to
175284 deal with the confirmation. And to be really sure the extended-remote
175285 target still works, try to run the inferior again after killing. The
175306 … Start it from the beginning? (y or n) PASS: gdb.base/attach.exp: cmdline attach run: run to prompt
175308 Don't know how to run. Try "help target".
175309 (gdb) FAIL: gdb.base/attach.exp: cmdline attach run: run to main
175326 existing process, but not re-pushed, due to "set
175327 auto-connect-native-target off". So we get that "Don't know how to run"
175332 the current code, there were some attempts at doing this, just using the
175342 Since the --pid option specifically attaches to a process using the
175343 native target, change the test to use gdb_is_target_native instead.
175348 gdb_is_target_native to check if test is supported.
175358 TARGET_WAITKIND_EXECD, it,s the exec'd path name in execd_pathname.
175381 The ptid_t::to_string method was introduced recently, to format a ptid_t
175389 Add as_lval argument to expression evaluator
175391 expected to be in a form of a value and not location description.
175404 argument to fetch_result and eval_exp methods.
175415 Idea of this patch is to get a clean and simple public interface for
175425 (dwarf2_per_objfile) structure, so it makes sense to keep that
175426 structure as a constructor argument. It also makes sense to get the
175429 needs to provide that information.
175431 The push_address method is used to push a CORE_ADDR as a value on
175433 later changed to push any struct value object on the stack.
175445 All data members are now private and only visible to the evaluator
175446 class, so a m_ prefix was added to all of their names to reflect that.
175454 (dwarf_expr_context::read_mem): Change to use property_addr_info
175457 (dwarf_expr_context::execute_stack_op): Change to use
175460 declaration. Change eval and fetch_result method to private.
175480 * dwarf2/frame.c (execute_stack_op): Change to call evaluate
175482 * dwarf2/loc.c (dwarf2_evaluate_loc_desc_full): Change to call
175484 (dwarf2_locexpr_baton_eval): Change to call evaluate method.
175492 At this point, all conditions are met for the DWARF evaluator to return
175497 * dwarf2/expr.c (pieced_value_funcs): Chenge to static
175499 (allocate_piece_closure): Change to static function.
175504 to private.
175506 * dwarf2/frame.c (execute_stack_op): Change to use
175508 * dwarf2/loc.c (dwarf2_evaluate_loc_desc_full): Change to use
175510 (dwarf2_locexpr_baton_eval): Change to use fetch_result.
175518 next patch where the DWARF expression evaluator is changed to return a
175521 * value.c (value_copy): Change to also copy the stack data
175526 Move piece_closure and its support to expr.c
175527 Following 5 patches series is trying to clean up the interface of the
175531 logical step is to make a clean user interface for that class. To do
175532 that, we first need to address the issue of class users writing and
175536 instance to be per architecture basis. Currently, the best separation
175537 seems to be per object file, so having that data (dwarf2_per_objfile)
175538 as a constructor argument makes sense. It also makes sense to get the
175542 Luckily, address size information is already available to the users
175543 through other means. As a result, the address size also needs to be a
175547 The rest of the user written data comes down to a context of an
175551 these to be arguments of an evaluation method.
175554 internal data, we first need to understand why it is implemented that
175557 This is actualy a question of which existing class can be used to
175563 infrastructure to resolve composite and implicit pointer location
175566 After the merge, we are now able to use the struct value to represent
175567 any result of the expression evaluation. It also makes sense to move
175568 all infrastructure for those location descriptions to the expr.c file
175579 The idea with this particular patch is to move piece_closure structure
175580 and the interface that handles it (lval_funcs) to expr.c file.
175584 location descriptions are certainly necessary to describe a results of
175587 Considering that a piece_closure structure is used to represent both,
175604 * dwarf2/loc.c (sect_variable_value): Move to expr.c.
175605 (struct piece_closure): Move to expr.c.
175606 (allocate_piece_closure): Move to expr.c.
175607 (bits_to_bytes): Move to expr.c.
175608 (rw_pieced_value): Move to expr.c.
175609 (read_pieced_value): Move to expr.c.
175610 (write_pieced_value): Move to expr.c.
175611 (check_pieced_synthetic_pointer): Move to expr.c.
175612 (indirect_pieced_value): Move to expr.c.
175613 (coerce_pieced_ref): Move to expr.c.
175614 (copy_pieced_value_closure): Move to expr.c.
175615 (free_pieced_value_closure): Move to expr.c.
175621 dwarf_expr_context class. It's purpose is to support the passed in
175624 Although, it is not really necessary to merge this class with it's
175628 it is also reasonable to expect that with a new evaluator design and
175629 extending the push object address functionality to accept any location
175630 description, there will be no need to support passed in buffers.
175632 Alternatively, it would also makes sense to abstract the interaction
175642 (evaluate_for_locexpr_baton::read_mem): Move to
175677 so it can be inlined to simplify the dwarf_expr_context class.
175690 Move push_dwarf_reg_entry_value to expr.c
175694 to their base class dwarf_expr_context.
175706 (dwarf_evaluate_loc_desc::push_dwarf_reg_entry_value): Move to
175713 Move read_mem to dwarf_expr_context
175716 to their base class dwarf_expr_context.
175724 * dwarf2/loc.c (dwarf_evaluate_loc_desc::read_mem): Move to
175729 Move get_object_address to dwarf_expr_context
175732 classes to their base class dwarf_expr_context.
175738 (class dwarf_expr_context): Add object address member to
175745 move to dwarf_expr_context.
175746 (class dwarf_evaluate_loc_desc): Move object address member to
175751 Move dwarf_call to dwarf_expr_context
175754 dwarf_evaluate_loc_desc classes to their base class dwarf_expr_context.
175770 (dwarf_evaluate_loc_desc::dwarf_call): Move to
175776 Move compilation unit info to dwarf_expr_context
175778 from dwarf_expr_executor and dwarf_evaluate_loc_desc to
175779 dwarf_expr_context evaluator. The idea is to report an error when a
175780 given operation requires a compilation unit information to be resolved,
175783 With this change, it also makes sense to always acquire ref_addr_size
175785 DWARF operations that refer to that information require a compilation
175786 unit context to be present during their evaluation.
175812 information to dwarf_expr_context class.
175820 classes to their base class dwarf_expr_context. Once this is done,
175824 It is also necessary to check if the frame context information was
175842 Move frame context info to dwarf_expr_context
175844 the DWARF expression evaluator (dwarf_expr_context) to make future
175845 extensions of that evaluator easier and cleaner to implement.
175854 method, is not allowed in a CFI context. The source code of this
175860 actually doing what they are intended to do. This subclass contains
175864 dwarf_evaluate_loc_desc subclass and it's function is to add
175865 support for passed in buffers. This seems to be a way to go around
175870 It all comes down to this question: what is a function of a DWARF
175873 Is it to evaluate the expression in a given context or to check the
175877 is to report an invalid DWARF expression in a context of a CFI, but is
175878 that what the evaluator is supposed to do considering that the evaluator
175879 is not tied to a given DWARF version?
175882 the DWARF standard, so is it that impossible to expect that some of the
175884 the CFI context? Not to mention that every new DWARF version is lifting
175887 The thing that makes more sense for an evaluator to do, is to take the
175899 Additional benefit here is that now all evaluators have access to all
175902 means that a new evaluator interface can be changed to return a single
175909 dwarf_evaluate_loc_desc to dwarf_expr_context evaluator. The idea
175910 is to report an error when a given operation requires a frame
175911 information to be resolved, if that information is not present.
175917 (dwarf_expr_context::dwarf_expr_context): Add frame info to
175929 (read_addr_from_reg): Move to expr.c.
175930 * dwarf2/frame.c (read_addr_from_reg): Move to
175938 to dwarf_expr_context.
175939 (dwarf_evaluate_loc_desc::get_reg_value): Move to
175949 to the class declaration in expr.h.
175956 to the class data members.
175965 To explain the issue, I first need to explain the dwarf_expr_context
175968 The intention behind the dwarf_expr_context class is to commonize the
175974 Depending on the information needed to evaluate a given expression,
175977  - Frame: designed to evaluate an expression in the context of a call
175981  - Location description: designed to evaluate an expression in the
175984    evaluation of the given expression to be present.
175986  - Symbol needs: designed to answer a question about the parts of the
175987    context information required to evaluate a DWARF expression behind a
175992 others is that this evaluator is not meant to interact with the actual
175993 target. Instead, it is supposed to check which parts of the context
175994 information are needed for the given DWARF expression to be evaluated by
175997 The idea is to take advantage of the existing dwarf_expr_context
175998 evaluation mechanism and to fake all required interactions with the
176012 branch of the condition requires a frame information to be evaluated,
176015 information would then cause the expression to be actually evaluated (by
176025                    # conditional jump to DW_OP_bregx
176029                    # jump to DW_OP_stack_value
176046 This is clearly a wrong result and it causes the debugger to crash.
176048 The scenario might sound strange to some people, but it comes from a
176052 condition of the frame base value, where if that value is concluded to
176053 be 0, the variable location could be defaulted to a TLS based memory
176057 scenario. This scenario is a bit more abstract due to the DWARF
176066                        # jump to DW_OP_fbreg
176074                        # conditional jump to DW_OP_drop
176078 Similarly to the previous scenario, the location of a variable A is an
176084 cause the symbol needs evaluator to get stuck in an infinite loop.
176086 Somebody could argue that we could change the fake reads to return
176089 The general impression seems to be that the desired design is to have
176093 Using an evaluator mechanism here doesn't seem to be correct, because
176098 To better explain the proposed solution for the issue, I first need to
176103 to some other internal representation (decode_location_expression,
176112 this is a code duplication and harder maintenance.
176114 As a step into the right direction to solve this problem (at least for
176121 evaluator is not allowed to access the actual target, it is not really
176124 Instead, the desired function of a symbol needs evaluator seems to fall
176126 fit for this evaluator is to be a symbol needs analysis, similar to the
176130 to do an expression analysis seems to be an unneeded overhead. It also
176131 requires a more complicated design of the parent class to support fake
176147 A more desired long term design would be to have one class that deals
176157 argc argument of the main function to change in the assembly file
176162 stack anymore, so the 0 value byte needs to be removed because it
176188 There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8
176189 operands predated our current conventions; those instructions moved to map 3.
176195 to the public software developer manual for detail information.
176241 There are some exceptions to this rule. Some things in map 1 (0Fxx) with imm8
176242 operands predated our current conventions; those instructions moved to map 3.
176248 to the public software developer manual for detail information.
176338 Some of the code paths unpacking mips relocs left arelent->sym_ptr_ptr
176366 gdb.base/step-over-syscall.exp. This test includes a call to kfail
176369 While looking at the test I removed the call to kfail and ran the
176377 then fails to "fix" this $pc (for the new thread), and the thread will
176379 thread will just start executing from whatever happens to be after the
176387 trying to run the test again (in the new thread). This just happens
176388 to be safe enough (in this simple test) that most of the time the
176391 In this commit I try to make the test slightly more likely to fail by
176394 First, I added a static variable to main, this is set true when the
176398 Second, when the test is finishing I want to ensure that the new
176399 threads have had a chance to do "something bad" if they are going to.
176401 decrements the counter. The main thread does not proceed to the final
176408 reliably, and so, I have also changed the test to call setup_kfail
176409 before the specific steps that we expect to misbehave instead of just
176411 of this is that if/when we fix GDB this test will start to KPASS and
176412 we'll know to update this test to remove the setup_kfail call.
176420 gdb: Use unwinder name in frame_info::to_string
176424 Unwinders have been given a name in
176427 easy to interpret. This patch proposes to use the unwinder name
176432 …{level=1,type=NORMAL_FRAME,unwind=0x2ac1763ec0,pc=0x3ff7fc3460,id={stack=0x3ff7ea79b0,code=0x00000…
176436 …AL_FRAME,unwinder="riscv prologue",pc=0x3ff7fc3460,id={stack=0x3ff7ea79b0,code=0x0000003ff7fc33ac,…
176444 option to prepare_for_testing because that would cause -g to appear
176445 after -g3 on the command line, and that would cause some gcc versions to
176446 not include macro info. I don't know what gcc versions this refers to.
176453 One way to fix it would be to add "debug" to the options when the
176456 However, the solution I chose was to specify "debug" in any case, even
176495 unlikely to happen, but could happen in theory with an erroneous file
176512 I saw this complaint when my code had some bug, and spotted the typo.
176514 to only see DW_MACINFO with a file that uses a DWARF 5 .debug_macro
176516 we are dealing with a .debug_macro section or .debug_macinfo section, to
176518 necessary for a complaint nobody is going to see.
176528 …m.c:241:18: error: ISO C++11 does not allow conversion from string literal to 'char *' [-Werror,-W…
176542 * s390-opc.txt: Change instruction format of lpswey to SIY_RD.
176554 objdump or when final linking. The function attempts to find the
176558 the relevant gp to which the symbol is relative. Possibly the gp
176562 NULL, and what's more the code in mips_elf_assign_gp isn't set up to
176566 NULL, which will result in the testcase segfault. The only gp to
176568 linking, or the input bfd when not. This patch arranges to do that
176572 section symbol to find the output bfd, use input_section.
176598 Since undefined version can't be used to resolve any references without
176641 I implemented this because I needed it during debugging, to be able to do:
176645 before and after a call to addrmap_set_empty.
176704 * ld.texi (Options <runtime library name>): Correct grammar.
176714 linux-nat target. when a process forks, it needs to carry over some
176715 data from the forking inferior to the fork child inferior. Ideally, the
176736 For consistency, I think it would be good to always call
176738 makes sense as a way to indicate "this inferior has called fork, do
176740 inferior is created for the child, do we need to detach from the child)
176750 For this purpose, pass the child inferior down to target_follow_fork
176752 created for the child, because we want to detach from it.
176756 because we want to call target_follow_fork before the parent's
176759 - hand over to the targets in the parent's target stack (including the
176760 process target) the responsibility to push themselves, if needed, to
176761 the child's target stack. Also hand over the responsibility to the
176762 process target, at the same time, to create the child's initial
176765 - pass the child inferior to exec_on_vfork, so we don't need to swap
176771 stack, like the process target does... We would just need to make
176826 I think it's simpler to use that macro rather than introducing a new
176841 A problem internal to GDB has been detected,
176850 [gdb/testsuite] templates.exp to accept clang++ output
176883 The compiler may add a suffix to a mangled name. A typical example
176886 This patch changes Ada decoding (aka demangling) to handle these
176887 suffixes. It also changes the encoding process to handle them as
176890 A symbol like "function.cold" will now be displayed to the user as
176897 I believe that many calls to fprintf_symbol_filtered are incorrect.
176898 In particular, there are some that pass a symbol's print name, like:
176903 fprintf_symbol_filtered uses the "demangle" global to decide whether
176904 or not to demangle -- but print_name does this as well. This can lead
176905 to double-demangling. Normally this could be innocuous, except I also
176906 plan to change Ada demangling in a way that causes this to fail.
176910 Handle type qualifier for enumeration name
176946 Ada expression resolution to make this possible.
176951 simplified, removing some code that, I think, was an incorrect attempt
176952 to handle nested functions.
176957 PR varobj/28131 points out a crash in the varobj deletion code. It
176958 took a while to reproduce this, but essentially what happens is that a
176961 ~py_varobj_iter to run, which in turn uses gdbpy_enter_varobj:
176996 dw2-using-debug-str executable, because it's already moved to
177036 * gdb.dwarf2/dw2-using-debug-str.exp: Update regexp to match
177069 Cannot use an index to create the index^M
177070 (gdb) FAIL: gdb.dwarf2/gdb-index-nodebug.exp: try to save gdb index
177094 ERROR: failed to compile fission-relative-dwo
177098 - the .dwo file is found relative to the executable, and
177099 - cc-with-tweaks.sh moves the executable to a temp dir, but not
177141 lsbcount: Number of lower bits to get rid of.
177142 bitsize: The bit length of the field to be extracted.
177200 * gdb.base/maint.exp: Update "maint print statistics" to match
177211 The problem is that there are no files to remove, because the index cache
177235 This changes a couple of spots to replace custom iterator range
177244 it seemed to be better as an operator!= method attached to
177256 The current conclusion is that it's best to disable this. This is explained
177269 gas: ensure XCOFF DWARF subsection are initialized to 0
177270 debug_abbrev doesn't use end_exp to compute its size. However, it must
177271 be NULL. Otherwise, ppc_xcoff_end might try to access uninitialized
177281 This patch improves XCOFF garbage collector pass, in order to keep
177302 Add check to know if debug_section is initialized.
177307 Fuzzers might put -1 in arhdr.ar_size. If the size is rounded up to
177317 terminator to an array of arelent pointers can wrap the count to
177350 bits to be in the range [1, type_bitsize]. But we don't check anywhere
177353 The following code should generate a failed assertion, as the flag goes
177367 Change the assertion to verify that the end bit is within the range of
177389 causing the fork following to not work. In addition, the thread and
177390 fork code is intertwined in ::wait and and the lack of #ifdef's
177394 - Move duplicated code to enable PTRACE_FORK event reporting to a
177399 wptid to the correct ptid if the child reports its event before the
177400 parent. This allows the ptid fixup code to add thread IDs if the
177409 obsd-nat: Various fixes to obsd_nat_target::wait.
177410 - Call inf_ptrace_target::wait instead of duplicating the code.
177421 needs to be updated with an LWP ID, or if this is a new thread.
177422 Instead, use the approach from fbsd-nat which is to check if a ptid
177436 running a program. Simon tracked down the problem to x86_dr_low.get_status
177470 - Change x86bsd_nat_target to only inherit from x86_nat_target if
177479 The width of the window is too narrow to display the entire assembly line.
177482 reads of the same line to differ thus causing the test to fail. Increasing
177485 If the test fails, the added check prints an message to the log file if
177486 the failure may be due to the window being too narrow.
177499 vlscm_convert_typed_number to be better in line with the prevailing
177500 code style.
177507 indentation of calls to gdbscm_make_out_of_range_error.
177516 `get_unsigned_type_max', as that function doesn't consider pointers to
177518 code path for pointers.
177530 * guile/scm-math.c (vlscm_convert_typed_number): Add code path
177531 for handling conversions to pointer types without failing an
177541 test procedures containing checks for integer-to-pointer
177549 Changes the signature of get_unsigned_type_max to return the computed
177557 * gdbtypes.h (get_unsigned_type_max): Change signature to
177559 which to store the result.
177578 This patch tries to improve that and, above all, to allow gas-generated
177579 object files with such symbols to be accepted by AIX ld.
177583 having fix_value = 1 in order to be an index and not a memory
177604 Adds API to the Guile bindings for creating temporary breakpoints and
177624 spec.is_temporary value to create_breakpoint.
177640 documentation to reflect new #:temporary argument.
177663 Microblaze, but GDBserver isn't ported to Microblaze. So I don't
177673 means that it wouldn't get re-generated if we were to change how C
177683 are the same, the instruction will UD. Don't call register_number to
177701 to avoid running out of file descriptors on thin archives with many
177741 added use of --no-split option to makeinfo. binutils reuses
177743 led to silent manpage truncation.
177769 coding the flag to false as we currently do.
177776 [ I've confused things by forgetting to add -gdwarf-4 in $subject of
177780 system gcc-11 compiler that was patched to switch the default back to
177806 which is a pointer to a subrange:
177826 the constant_value method to it.
177835 instead of a PROP_CONST and end up trying to evaluate the constant
177881 options that extend a base cpu with extra functional units to be
177888 think that instead .machine ought to override the command line.
177889 That's what this patch does. It is still possible to extend cpu
177899 failure to assemble "lvsr".
177915 It's just wrong to choose power5 for a bunch of altivec instructions
177972 This is due to a gcc PR, which I've filed at
177996 However, that series is being held up in review, so I wanted to break
177997 out some of the non-related fixes in order to get these merged.
178012 member function, obviously requires a non-nullptr in order to make the
178013 function call. In one place we are not-guaranteed to have a
178022 We attempt to get the frame_id for a frame while we are computing the
178026 the sentinel frame (frame #-1) and then we attempt to unwind this
178027 frame to create a frame_info object for frame #0.
178029 In the test case used here to expose the issue we have created a
178030 Python frame unwinder. In the Python unwinder we attemt to read the
178038 However, the Python unwinder does actually want to examine the value
178044 we want to print something like:
178050 to see 'frame=0', i.e. we are reading a register as it would be in
178054 So, to get the frame_info for frame #0 we used to call:
178063 VALUE_NEXT_FRAME_ID, then call get_prev_frame_id_by_id to get the
178067 given frame-id (in this case frame #-1), calls get_prev_frame to get
178071 the frame unwinder, so then have to try each frame unwinder in turn,
178078 Solving the assertion failure is pretty easy, if we consider the code
178102 Out of curiosity I looked to see how widely VALUE_FRAME_ID was used,
178104 where, once again, we take the result of VALUE_FRAME_ID and pass it to
178108 though, as we are unlikely to call value_assign while computing the
178114 with a use of VALUE_NEXT_FRAME_ID, followed by a direct call to
178120 was able to create an alternative test for this issue by enabling
178124 have a reproducer attached so it is not possible to know for sure.
178146 bfd: Set error to bfd_error_malformed_archive only if unset
178147 When reading an archive member, set error to bfd_error_malformed_archive
178151 * archive.c (_bfd_get_elt_at_filepos): Don't set error to
178159 expression to allow for more significant digits on the constant.
178169 The gdb build was broken on Windows after the patch to change
178184 TYPE_FIELD_BITSIZE: The bit length of the field to be extracted.
178189 is 4 bits. According to the third line of the code snippet the
178191 to be precise. That will result in a "field_val" of 0.
178203 PATCH [10/10] arm: Alias 'ra_auth_code' to r12 for pacbti.
178207 * config/tc-arm.c (reg_names): Alias 'ra_auth_code' to r12.
178277 PATCH [5/10] arm: Extend again arm_feature_set struct to provide more bits
178339 * testsuite/gas/arm/armv8_1-m-pacbti.d: Add 'pacbti' to testcase.
178364 gdb: move remaining ChangeLogs to legacy files
178370 Rename gdb/ChangeLog to gdb/ChangeLog-2021
178373 files relating to gdb were left in place.
178375 As I understand things, the no ChangeLogs policy applies to all the
178379 As with the original commit, the intention behind this commit is to
178393 As reported in PR gdb/28076 [1], passing no condition argument to the
178401 handling (79aabb7308c "gdb/mi: add a '--force' flag to the
178402 '-break-condition' command") was done according to the documentation,
178409 Fix the argument handling of the -break-condition command to allow not
178410 having a condition argument, and also update the document to make the
178411 behavior clear. Also add test cases to test the scenarios which were
178456 Commit 40726f16a8d7 broke references to sections within ADDR(), and
178461 ensure script mode parsing for section name in SEGMENT_START.
178469 Update the NetBSD system call table to match NetBSD-current.
178488 When creating a parameter in Guile, you have to create it using
178490 In between, it's still possible (though not documented) to set the
178492 series, so thought it would be good to have a test for it.
178494 I suppose that people could use this "feature" to give their parameter
178497 some scripts, which is why I think it's important for it to be tested.
178505 cmd_list_element::function is for. Compared to cmd_simple_func_ftype,
178507 to the cmd_list_element for the command being invoked. This allows
178513 "s". But nowadays, it's used for many more commands that need to access
178518 commands using sfunc could just as well set cmd_list_element::func to
178522 that goes with it. Rename cmd_const_sfunc_ftype to cmd_func_ftype and
178530 gdb: rename cfunc to simple_func
178531 After browsing the CLI code for quite a while and trying really hard, I
178534 see a logic at all. That makes it very difficult to do any kind of
178535 change. Unless somebody can make sense out of all that, I'd like to try
178536 to retro-fit some logic in the cmd_list_element callback function code
178548 parameter. So the only reason I see for cfunc to exist is to be a shim
178550 to receive the cmd_list_element object, so adding it everywhere would be
178552 the "simple" version of the callback, compared to the "full", I suggest
178572 code too.
178579 With the current code, both a NULL pointer and an empty string can mean
178580 "no arguments". We don't need this distinction. Changing to a string
178582 string), which makes the code a bit simpler in my opinion.
178589 Add cwd/set_cwd to the inferior class, remove set_inferior_args.
178591 code. The cwd could eventually be passed as a parameter eventually,
178599 Add args/set_args to the inferior class, remove the set_inferior_args
178619 set_inferior_args_vector to immediately serialize the arguments into
178632 gdbserver, in gdbsupport/common-inferior.h. It doesn't need to be, as
178633 set_inferior_cwd is not called from common code. Only get_inferior_cwd
178634 needs to.
178637 of set_inferior_cwd in gdb, and I don't want to change it for gdbserver
178638 unnecessarily. I see this as a good cleanup in any case, to reduce to
178645 gdb.base/setshow.exp: fix duplicate test name
178658 each. I find it easier to work on a test with multiple smaller
178659 independent test procedures. For example, it's possible to comment all
178660 but one when working on one. It's also easier to add things without
178661 having to think about the impact on existing tests, and vice-versa.
178667 gdb.base/setshow.exp: use save_vars to save/restore gdb_prompt
178669 variable gets restored if the code within it throws an error.
178677 starts with a fresh GDB. I find it easier to understand what a test is
178679 makes it easier to comment out some parts of the test while working /
178680 debugging a specific part. It also makes it easier to add new things
178690 to see if the system supports hardware breakpoints.
178699 gdb/testsuite: don't error when trying to unset last_spawn_tty_name
178701 last_spawn_tty_name depending on whether spawn_out(slave,name) exists
178704 One situation that might cause spawn_out(slave,name) to not exists is
178707 created process has no tty, instead its output is written to a file
178711 will be multiple sequential calls to spawn, all using -leaveopen. The
178712 first of these calls is fine, spawn_out(slave,name) is not set, and so
178714 the second call to spawn, spawn_out(slave,name) is still not set and
178715 so in spawn_capture_tty_name we again try to unset
178719 Fix this issue by using -nocomplain with the call to unset in
178726 I have also improved the code that used to do this:
178729 set ::last_spawn_tty_name $spawn_out(slave,name)
178735 then unconditionally read spawn_out(slave,name). A situation could
178738 to read a non-existent variable. After this commit we now check
178739 specifically for spawn_out(slave,name).
178744 that caused expect to crash, as fixing the bug in GDB's testing
178764 [gdb/testsuite] Fix FAILs due to PR gcc/101575
178772 which is caused by "runto defs.adb:20" taking us to defs__struct1IP:
178794 This is caused by incorrect line info due to gcc PR 101575 - "[gcc-11,
178799 - issuing a continue to land in defs.f1.
178820 consistency also limit use of dqw_mode to Jdqw. 64-bit disassembly
178834 x86: fold duplicate vector register printing code
178848 x86: fold duplicate code in MOVSXD_Fixup()
178849 There's no need to have two paths printing the "xd" mnemonic suffix.
178851 x86: fold duplicate register printing code
178853 Add suitable parameters to the function and move the invocation of
178854 swap_operand() to OP_E(). Adjust MOVSXD's first operand: There never was
178855 a need to use movsxd_mode there, and its use gets in the way of the code
178859 The restriction to %bnd0-%bnd3 requires to also check REX.R is clear,
178863 EVEX.R' is invalid to be clear not only for mask registers, but also for
178871 Hence the handling of EVEX.W needs to be done when processing
178874 Derive a new 64-bit testcase from the 32-bit one to cover the different
178945 The test-case tries to verify that we don't step into inlined function
178948 The test-case then tries to kfail the problems when using gcc, but this is
178950 That is: the "next step 2" check that is supposed to match
178958 Fix this by issuing extra nexts to arrive at the required lines.
178969 * gdb.cp/step-and-next-inline.h: Update to keep identical with
178979 Allows linker scripts to set the SEC_READONLY flag.
178983 * ldlang.h: Add readonly_section to list of section types.
178991 [gdb/testsuite] Fix FAILs due to PR gcc/101452
179040 This is due to PR exp/20991 - "__int128 type support". Mark this and similar
179066 This provides a utility function to report such errors consistently.
179075 to be placed around the entire expression:
179109 (tc_gen_reloc): Delete dead code. Free memory on error.
179114 * testsuite/gas/i386/ifunc-2.l: Adjust to suit changed error message.
179126 All branches in the "active" code are remove, and the target is
179127 additionally marked as obsolete next to the other removed ones for
179132 commit history was in 2002. Together, I'm led to believe this target
179146 * configure.tgt: Add netbsdpe to removed targets.
179181 Value can't be converted to integer.
179186 Value can't be converted to integer.
179193 to print, the tag validation code call value_as_address
179195 where it makes to sense to call it. That results in value_as_address
179196 (if it isn't given a pointer-like type) trying to treat the value as
179197 an integer and convert it to an address, which #1 - doesn't make sense
179200 pointer or reference type first, and only if so then proceed to check
179210 If any exception is thrown from the tag validation code, we abort the
179211 print. E.g., the target may fail to access tags via a running thread.
179214 to catch errors, print them, and still continue with the normal
179239 and renamed it to riscv_add_subset. Besides, if the subset is added in order,
179246 * Use a function, riscv_parse_check_conflicts, to check the conflicts
179254 first. If the subset is added in order, then we can just add it to
179257 (riscv_add_implicit_subset): Renamed to riscv_add_subset.
179263 to riscv_parse_check_conflicts.
179264 (riscv_parse_check_conflicts): New function used to check conflicts.
179288 A problem internal to GDB has been detected,^M
179290 …ssion? (y or n) FAIL: gdb.btrace/enable-new-thread.exp: continue to breakpoint: cont to bp.1 (GDB …
179294 exercises different code paths.
179370 to read memory from, it implicitly uses the global context
179377 ultimately trying to read memory with a null inferior_ptid already
179381 (btrace_compute_ftrace_bts) needs to be switching the global context to
179383 thread_info to work with as a parameter, that typically means that it
179384 doesn't require its caller to also set the global current context
179385 (current thread) when calling. If it needs to call other functions
179386 that do require the global current thread to be set, then it needs to
179392 functions sensitive to the global context: it installs the
179407 * config.bfd: Move pending obsoletion targets to obsolete list.
179409 Update how-to-make-a-release checklist with latest changes from 2.37 release
179420 gdb: convert nat/x86-dregs.c macros to functions
179422 x86_dr_low.get_status is nullptr. It would have been useful to be able
179423 to break on x86_dr_low_get_status, so I thought it would be a good
179424 reason to convert these function-like macros into functions.
179434 Fix file-name handling regression with DWARF index
179437 part of the existing index code, and so it registers as a regression.
179440 Looking into this, I found that the DWARF index code here is fairly
179441 different from the psymtab code. I don't think there's a deep reason
179442 for this, and in fact, it seemed to me that the index code could
179443 simply mimic what the psymtab code already does.
179448 exist. Then, the functions that work with this data are changed to
179449 use find_source_or_rewrite, just as the psymbol code does. Finally,
179453 The hash table uses a deletion function to free the "real name"
179454 components when necessary. There's also a second such function to
179457 This bug fix patch will create a quick file name object even when
179462 because we have been avoiding adding a vtable to that class.)
179469 map_symbol_filenames can skip type units -- in fact I think it has to,
179470 due to the assertion at the top of dw2_get_file_names. This may be a
179471 regression due to the TU/CU unification patch, I did not check.
179473 Simplify DWARF file name caching
179474 The DWARF index file name caching code only records when a line table
179475 has been read and the reading failed. However, the code would be
179486 directory is computed, but a subsequent patch wants to preserve this
179487 string without also having to maintain the storage for it. So, this
179488 patch arranges for the compilation directory string to be stored in
179491 Pass file_and_directory through DWARF line-decoding code
179493 compute_include_file_name, and arranges to pass a file_and_directory
179494 object from the readers down to this function. It also changes the
179495 partial symtab reader to use find_file_and_directory, rather than
179499 In order to fix an index-related regression, I want to use
179500 psymtab_include_file_name in the DWARF index file-handling code. This
179501 patch renames this function and changes it to no longer require a
179502 partial symtab to be passed in. A subsequent patch will further
179503 refactor this code to remove the redundant parameter (which was always
179520 z80-stub.c to your program (SDCC compiler is required). Or
179567 when we expect to have just one. The problem is prune_inferiors not
179583 We actually need to pass down the list on which we want to iterator
179587 all_inferiors_safe needed to allow filtering on process target (like
179590 basic_safe_iterator's constructor needs to be changed to allow
179608 …FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, step from handler: leave hand…
179609 …FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, step from handler: leave h…
179610 …FAIL: gdb.base/sigstep.exp: continue to handler, nothing in handler, next from handler: leave hand…
179611 …FAIL: gdb.base/sigstep.exp: continue to handler, si+advance in handler, next from handler: leave h…
179641 This patch adds RISC-V to the list of configurations that does not
179650 While working on my series to replace the DWARF psymbol reader, I
179654 introduces some asserts to make it clear.
179663 this down to an oddity of how array strides are handled.
179665 In gdb, an array stride can be attached to the range type, via the
179672 It's hard to be sure why this is done, but I would guess a combination
179674 to avoid modifying the range type.
179676 This patch fixes the problem by changing type::bit_stride to
179686 in switch case R_OR1K_INSN_REL_26 where we need to check for
179700 PR gdb/28093 points out that gdb crashes when language is set to
179702 this was a regression due to the expression rewrite, but it turns out
179706 to throw an exception. I think this is preferable -- the current
179713 gdb: pass child_ptid and fork kind to target_ops::follow_fork
179740 to register JIT-ed objfiles and forking. If an inferior registers a
179741 code object using the JIT interface and then forks, the child process
179742 conceptually has the same code object loaded, so GDB should look it up
179745 To achieve this, I think it would make sense to have the
179746 inferior_created observable called when an inferior is created due to a
179749 to an inferior, allowing various sub-components to learn about that new
179751 attaching to it, so any work done when attaching should also be done in
179756 This way, the attach and follow-fork code code paths are more alike.
179759 follow_fork_inferior doesn't need to do it itself, so those calls to
179768 to the child's, but not the current inferior nor the current thread.
179773 setting up inferior 2, and all that code relies on the current
179774 inferior. We could just add a switch_to_thread call before it to
179779 `follow_child && detach_fork` path. I think we need to call it,
179782 solib_create_inferior_hook used to be called, then the JIT
179786 - if we try to put the post_create_inferior just after the
179788 call to target_follow_fork, we introduce a subtle failure in
179794 target doesn't have the chance to fill in thread_info::priv. A bit
179797 recognize the thread as one of its own, and delegates the request to
179801 This tells me that we need to call the process target's follow_fork
179802 first, to make the process target create the necessary LWP and thread
179803 structures. Then, we can call post_create_inferior to let the other
179819 I don't think linux_nat_target needs to explicitly call
179823 test. It makes an inferior register a JIT code object and then fork.
179825 parameters are, GDB knows about the JIT code object in all the inferiors
179827 code object.
179829 There isn't currently a way to get visibility into GDB's idea of the JIT
179830 code objects for each inferior. For the purpose of this test, add the
179832 JIT code objects except their load address. So the output looks a bit
179867 The public thread_info API has to be used to get stop signal and avoid
179885 Also change the x86 disassembler to disassemble 0xf1 as int1, instead of
179907 gas: default TC_VALIDATE_FIX_SUB to 0
179913 md_apply_fix and tc_gen_reloc support. So a safer default is to
179918 failures would be limited to alpha, microblaze, ppc and s390 (the
179923 * write.c (TC_VALIDATE_FIX_SUB): Default to 0.
179934 by objdump in order to correctly print them.
179938 * libxcoff.h (struct xcoff_dwsect_name): Add DWARF name.
179943 * dwarf.h (struct dwarf_section): Add XCOFF name.
179945 * objdump.c (load_debug_section): Add XCOFF name handler.
179948 * config/tc-ppc.c (ppc_change_debug_section): Update to
179949 match new name's field.
179960 This is due to a dummy .gdb_index:
179979 Presumably, gold fails to generate a proper .gdb_index because it lacks
179983 trying to excercise. Fix this by detecting whether we actually used a
180041 …ilder for '/nix/store/xs8my3rrc3l4kdlbpx0azh6q0v0jxphr-gdb-gdb-11.0.90.drv' failed with exit code 2
180065 fbsd-nat: Add helper functions to fetch and store register sets.
180068 functions are intended to be used in architecture-specific
180073 target methods to determine if a register set includes a specific
180135 other reason that leads to objfile::~objfile, and then we end up the
180149 Thus frame #8 seems like a good place to swallow exceptions. More so
180161 to GDB 10, if it weren't for the previous fix.
180237 managed to detach already, and, we're debugging with "target remote"?
180239 makes detach_command hold a reference to the target, so the remote
180243 This commit fixes the issue by not relying on target_close to
180247 to do, and we don't try to talk with the remote target anymore.
180250 --target_board=native-gdbserver, because that does "set sysroot" to
180300 scenarios, and find that in the latter case we hit this code in glibc function
180306 thread to return. We cannot rely on its thread register. They
180324 The change in behaviour bisect to glibc commit 1daccf403b "nptl: Move stack
180326 list variables such as __stack_user to an earlier moment, which explains well
180329 Fix this by updating the regexp patterns to agree with what libthread-db is
180343 gdb, dwarf: Don't follow the parent of a subprogram to get a prefix.
180345 to go to the parent of the subprogram. The DIE will be local.
180411 …Assertion `!proc_target->commit_resumed_state' failed.\nA problem internal to GDB has been detecte…
180413 This is because this code path never disables commit-resumed (a
180418 The other 3 code paths in mi_cmd_exec_interrupt use interrupt_target_1,
180419 which does it. But the --thread-group code path uses its own thing
180421 in this code path.
180425 that. The test runs two inferiors and tries to interrupt them with
180428 This will need to be merged in the gdb-11-branch, so here are ChangeLog
180473 Fix some dangling references to `netbsd-tdep`
180476 builds to fail:
180480 make: *** No rule to make target 'nbsd-tdep.c', needed by 'nbsd-tdep.o'. Stop.
180489 all threads of all inferiors of that target, to ultimately yield exactly
180491 spend time iterating on threads to find the one we are looking for. The
180496 different behaviors depending on the kind of ptid, to avoid this
180502 Instead, optimize all_matching_threads_iterator directly to detect these
180503 different cases and limiting what we iterate on to just what we need.
180515 target now becomes a call to find_thread_ptid, which is quite efficient
180516 now thanks to inferior::ptid_thread_map.
180541 change the find_thread_ptid function to look up a thread using
180543 inferior's threads. This should make it faster to look up a thread
180553 whose condition evaluates to false. random_pending_event_thread is
180556 walking the inferior's thread list twice: once to count the number of
180557 candidates and once to select a random one.
180565 event. Currently, we have to iterate the thread list to figure this
180567 will be empty, so it's quick to figure out.
180569 The random selection is kept, but is moved to
180571 same technique is used: do a first pass to count the number of
180572 candidates, and do a second pass to select a random one. But given that
180580 called with inferior B. We'll need to go through the list that contains
180581 inferior A's threads to realize that inferior B has no resumed threads
180583 pathological case. And a possible fix for this situation would be to
180593 breakpoint whose condition evaluates to false.
180598 status (in which case, we don't want to commit the resumed threads, as
180599 we want to consume this status first). It is currently implemented as
180615 status to report is something that we do quite often in the fast path
180620 called after handling each event in fetch_inferior_event, to see if we
180621 should ask targets to commit their resumed threads or not. If at least
180623 targets to commit their resumed threads, because we want to consume and
180626 The second instance is in random_pending_event_thread, where we want to
180628 pending wait status. This is called every time we try to consume
180629 events, to see if there are any pending events that we we want to
180635 In maybe_set_commit_resumed_all_targets, we'll be able to check in O(1)
180639 In random_pending_event_thread, we'll be able to use that list, which
180644 thread_info, it's relatively easy to maintain that list. Any time the
180646 that should cause the thread to be added or removed from the list.
180648 In set_thread_exited, we try to remove the thread from the list, because
180656 list. I tried to see how hard it would be to make it such that targets
180657 have to exit all threads before unpushing themselves from the inferior
180658 (that would seem logical to me, we don't want threads belonging to an
180661 inferior::unpush_target to remove all threads of that inferior from the
180667 The debug messages in process-stratum-target.c need to print some ptids.
180668 However, they can't use target_pid_to_str to print them without
180670 is used to get the current target stack). For debug messages, I find it
180671 clearer to print the spelled out ptid anyway (the pid, lwp and tid
180681 A following patch will want to take some action when a pending wait
180683 thread_info for the pending waitstatus, so that we can add some code in
180687 thread_suspend_state, along with other fields that we need to backup
180711 detail of thread_info that callers don't need to be aware of.
180715 `save_suspend_to`, as opposed to a simple getter like
180719 I want to make it clear that this is to be used only for backing up and
180720 restoring the suspend state, _not_ to access fields like:
180725 that this helps understand how things are supposed to work. Add:
180734 to respect that contract. I think it's because
180736 thread_info::suspend::waitstatus to store some statuses temporarily, for
180742 waitstatus_pending_p, if it deems the event interesting enough to leave
180743 pending, to be reported to the core:
180749 It later uses this flag a bit below, to choose which thread to make the
180773 to access the waitstatus value of these threads that don't have a
180778 So, change the code to only set the thread's wait status if it is an
180779 interesting one that we are going to leave pending. If the thread
180780 stopped due to a non-interesting event (TARGET_WAITKIND_STOPPED +
180781 GDB_SIGNAL_0), don't store it. Adjust print_one_stopped_thread to
180785 The call to set_last_target_status also uses the pending waitstatus.
180789 longer possible to do it at this point. To fix that, move the call to
180797 possibly more calls to set_last_target_status, but those are cheap.
180804 A following patch will want to do things when a thread's resumed state
180805 changes. Make the `resumed` field private (renamed to `m_resumed`) and
180807 therefore be able to add some code to the setter.
180818 For this, we have a use case of appending a list to another one (in
180823 Add explicit default assignment operators to
180825 This is needed because to define thread_step_over_list_safe_iterator, we
180827 basic_safe_iterator needs to be able to copy-assign the wrapped
180836 Change inferior_list, the global list of inferiors, to use
180843 scoped_mock_contexts therefore needed to manually link the two inferiors
180846 adds its mock inferior to the inferior list on construction, and removes
180848 inferior list in addition to any pre-existing inferiors (there is always
180863 we want to append a new element on the list, we need to walk the whole
180864 list to find the current tail. It would be nice to get rid of that
180865 walk. Removing elements from such lists also requires a walk, to find
180866 the "previous" position relative to the element being removed. To
180869 nice to avoid the boilerplate associated with maintaining such a list
180872 With an intrusive list, it's also possible to move items out of the
180879 std::list, we need to walk the list to find the iterator pointing to
180880 the position to remove. However, we could store a list iterator
180881 inside the object as soon as we put the object in the list, to address
180883 elements are added/removed. However, if you need to put the same
180885 You need to instead use std::list<object *>, which is less efficient
180892 fields point to self. */
180907 and intertwined due to a lot of customization options, which our version
180910 The easiest way to use an intrusive_list is to make the list's element
180911 type inherit from intrusive_node. This adds a prev/next pointers to
180912 the element type. However, to support putting the same object in more
180922 to the previous and next nodes, not the previous and next elements.
180924 to get from a pointer to the node to a pointer to the element. With the
180925 design proposed in this patch, nodes contain pointers to the previous
180926 and next elements, making it easy to traverse the list by hand and
180929 The intrusive_list object contains pointers to the first and last
180931 Each element's node contains a pointer to the previous and next
180937 the node is not linked. This is necessary to be able to reliably tell
180940 A begin() iterator points to the first item in the list. An end()
180943 nullptr, making it equal to the end iterator. If the list is empty,
180945 immediately equal to the end.
180947 Iterating on an intrusive_list yields references to objects (e.g.
180949 to yield pointers (e.g. `thread_info*`). To bridge the gap, add the
180950 reference_to_pointer_iterator type. It is used to define
180953 Add a Python pretty-printer, to help inspecting intrusive lists when
180960 hope will be merged eventually, it's possible to index the list and
180976 information. I think it's more useful to print pointers, and let the
180990 Add the SEC_ELF_OCTETS flag to debug sections created by the assembler.
180998 Recently I started to see this fail with trunk:
181007 This is due to an intel microcode update (1) that disables Intel TSX by default.
181029 …binutils * readelf.c (process_dynamic_section): Use ngettext to help with translation of header te…
181039 due to extra debug info from the shared libraries.
181056 due to openSUSE executables which have debug info for objects from sources
181059 Fix these by updating the patterns, and adding "maint expand-symtabs" to
181105 We shouldn't be asserting on anything to do with leb128 values, or
181108 It would only make sense to assert or report dwarf.c/readelf.c source
181109 lines if the code had already sized and sanity checked the leb128
181123 block. That happened due to "end" pointing a long way past the end of
181131 (read_and_print_leb128): Don't pass __FILE__ and __LINE__ to
181148 elf: Limits 2 GNU_PROPERTY_1_NEEDED tests to Linux/x86
181150 -z [no]indirect-extern-access to linker, only run for Linux/x86 targets.
181165 3. Treate reference to protected symbols with indirect external access
181170 6. Add -z [no]indirect-extern-access to control indirect external access.
181179 (elf_write_gnu_propertie): Add an argument to pass link_info.
181183 -z indirect-extern-access. Set nocopyreloc to true and
181184 extern_protected_data to false for indirect external access.
181200 needed_1_p. Change nocopyreloc to int.
181207 to -1.
181241 to indicate the needed properties by the object file.
181247 to indicate that the object file requires canonical function pointers and
181282 (resume_1): Update calls to maybe_software_singlestep.
181288 can lead to non-zero address at run-time.
181307 Add --max-cache-size=SIZE to set the maximum cache size.
181317 * elflink.c (_bfd_elf_link_read_relocs): Renamed to ...
181333 to elf_gc_smash_unused_vtentry_relocs.
181351 * ldmain.c: (main): Set link_info.max_cache_size to -1.
181360 According to bug 28056, running an s390x binary gives:
181375 num_disp_step_buffers=0 to linux_init_abi:
181380 first time. It tries to allocate the displaced stepping buffers, but
181385 expected to be done by linux_init_abi. If debugging a bare-metal s390
181387 wouldn't want to use them. We would either register no callbacks, if
181389 callbacks if we wanted to support displaced stepping in those cases.
181393 ("gdb: move displaced stepping logic to gdbarch, allow starting
181401 also happen to work in some other non-Linux case, or maybe it was simply
181407 s390_gdbarch_init. Instead, pass num_disp_step_buffers=1 to
181409 linux_init_abi to register these same callbacks. It will also mean that
181414 This patch will need to be merged in the gdb-11-branch, since this is a
181420 of displaced stepping buffers to linux_init_abi.
181462 as a "subdir", but I missed it because I only looked f99d1d37496f to
181467 This patch should be pushed to both master and gdb-11-branch, hence the
181490 Error while executing Scheme code.^M
181507 Error while executing Scheme code.^M
181512 Fix this by updating the regexp to make the "ERROR: " prefix optional.
181526 We're starting to move more objects to the common build that sis did
181529 to the libsim.a archive which will allow the link to pull out only
181538 Remove an accidental change to elfcode.h included as part of commit 6e0dfbf420.
181547 isn't an archive member, pass NULL to bfd_plugin_close_file_descriptor
181548 to indicate that the BFD isn't an archive member.
181555 (try_claim): Pass NULL to bfd_plugin_close_file_descriptor if
181562 (plugin_object_p): Set input->ibfd to NULL if it isn't an
181584 gprof fails to compile on Solaris 10 and 11.3 with --disable-nls:
181624 gprof, the same fix needs to be applied in bfd/sysdep.h, as the
181636 Check for strnlen declaration to fix Solaris 10 build
181637 binutils currently fails to compile on Solaris 10:
181641 1231 | crc_offset = strnlen (name, size) + 1;
181646 1319 | buildid_offset = strnlen (name, size) + 1;
181670 order to fix problems when translating.
181675 * po/gas.pot: Regenerate.
181678 order to fix problems when translating.
181682 * po/bfd.pot: Regenerate.
181696 - you can construct the begin iterator by passing a pointer to the
181698 - you can default-construct iterator to make the end iterator
181703 Rename it to "iterator_range". I think it describes a bit better: it's
181704 a range made by wrapping a begin and end iterator. Move it to its own
181705 file, since it's not related to next_iterator anymore.
181708 are forwarded to construct the underlying begin iterator. The end
181714 default-construction. Or, if you wanted to make a range that does not
181719 all_inferiors_range. These classes existed only to pass some arguments
181721 arguments are passed to the iterator_range constructed and then
181722 forwarded to the constructed begin iterator.
181725 compared to next_adapter. next_adapter stored the pointer it received
181737 next_adapter<foo>. IMO, next_range is a slightly better name than
181756 * gdbthread.h (all_threads_safe): Pass argument to
181781 (compunit_filetabs): Change to a function.
181798 propagated to downstream consumers, to run the testsuite on an already
181807 different repo if we want to, it just happens to be stored inside gdb/.
181810 takes a few more seconds to run, but on the other hand it's quite useful
181836 Rename gdb/ChangeLog to gdb/ChangeLog-2021
181838 this commit renames the file gdb/ChangeLog to gdb/ChangeLog-2021,
181839 similar to what we would do in the context of the "Start of New
181842 The purpose of this change is to avoid people merging ChangeLog
181855 make[4]: *** No rule to make target 'info'. Stop.
181866 can contain multiple entries pointing to the same symbol structure
181867 leading to relaxation adjustment to be applied twice.
181888 Update gdb performance testsuite to be compatible with Python 3.8
181902 Error while executing Python code.
181908 Python 3.3 and finaly removed in Python 3.8. The guidelines say to
181920 counter, i.e. a clock with the highest available resolution to
181931 I'm thinking that it's just best to record both instead of picking
181939 perf testsuite today. And if they are, it shouldn't be hard to adjust.
181949 (time.perf_counter, time.process_time): Map to time.clock on
181966 tests seen to PASS, but they actually test a lot less than intended,
181967 due to:
181981 Error while executing Python code.
182037 Fix this by using gdb_test_lines and adding a -re-not syntax to
182048 Also observed that check-read1 execution time is reduced from 6m35s to 13s.
182075 gdb.dwarf2/imported-unit-bp.exp from c to c++, the test failed.
182077 This is due to this code in process_imported_unit_die:
182104 * testsuite/gdb.dwarf2/imported-unit-bp.exp: Moved to ...
182112 RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.
182113 We added PT_RISCV_ATTRIBUTES to program header to make
182114 .riscv.attribute easier to find in dynamic loader or kernel.
182143 * testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add attr-phdr to
182159 This changes the .debug_names writer to find the TU indices in the
182161 treatment to the .gdb_index writer.)
182165 hash table to write out the TUs. However, now that CUs and TUs are
182166 unified in the DWARF reader, it's simpler to handle both of these in
182169 Minor cleanup to addrmap_index_data::previous_valid
182170 This changes addrmap_index_data::previous_valid to a bool, and
182176 My recent patch to unify CUs and TUs introduced an oddity in
182177 write_gdbindex. Here, we pass 'i' to recursively_write_psymbols, but
182178 we must instead pass 'counter', to handle the situation where a TU is
182204 1. Add archive_plugin_fd and archive_plugin_fd_open_count to bfd so that
182207 2. Add bfd_plugin_close_file_descriptor to properly close the IR archive
182217 * opncls.c (_bfd_new_bfd): Initialize to -1.
182230 (release_input_file): Call release_plugin_file_descriptor to
182232 (plugin_object_p): Call release_plugin_file_descriptor to close
182241 This commit has not yet been applied to the master sources in the gcc repository.
182243 …The commit allows options to be set for the AR and RANLIB programs used when building libiberty, w…
182264 which fails to take into account that for gcc-7 and before, the type for
182289 An alternative to sigtimedwait with a timeout of 0 is to use sigpending,
182290 to first check which signals are pending, and then sigwait, to consume
182293 to sigpending + sigwait for the others.
182307 The next patch will make the use of sigtimedwait conditional to whether
182352 PR28047, readelf crash due to assertion failure
182354 DW_FORM_ref_udata are all supposed to be within the containing unit.
182374 A problem internal to GDB has been detected,
182401 binaries"). It causes solib_create_inferior_hook to be called while
182404 particular, assumes that there is a current thread, as it tries to get
182437 Bump version to 12.0.50.DATE-git.
182444 * version.in: Bump version to 12.0.50.DATE-git.
182448 * gdb.base/default.exp: Change $_gdb_major to 12.
182453 I noticed a couple of spots related to dwarf_decode_lines where the
182465 More minor updates to the how-to-make-a-release documentation