summaryrefslogtreecommitdiff
path: root/gdb
Commit message (Collapse)AuthorAgeFilesLines
* gdb/testsuite: remove perror calls when failing to runSimon Marchi2022-12-05185-200/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed that when running these two tests in sequence: Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/arrayptr.exp ... ERROR: GDB process no longer exists ERROR: Couldn't run foo-all Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/assign_1.exp ... The results in gdb.sum are: Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/arrayptr.exp ... PASS: gdb.ada/arrayptr.exp: scenario=all: compilation foo.adb ERROR: GDB process no longer exists UNRESOLVED: gdb.ada/arrayptr.exp: scenario=all: gdb_breakpoint: set breakpoint at foo.adb:40 (eof) ERROR: Couldn't run foo-all Running /home/smarchi/src/binutils-gdb/gdb/testsuite/gdb.ada/assign_1.exp ... UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1 The UNRESOLVED for arrayptr.exp is fine, as GDB crashes in that test, while trying to run to main. However, the UNRESOLVED in assign_1.exp doesn't make sense, GDB behaves as expected in that test: (gdb) set lang ada^M (gdb) UNRESOLVED: gdb.ada/assign_1.exp: changing the language to ada print $xxx := 1^M $1 = 1^M (gdb) PASS: gdb.ada/assign_1.exp: set convenience variable $xxx to 1 The problem is that arrayptr.exp calls perror when failing to run to main, then returns. perror makes it so that the next test (as in pass/fail) will be recorded as UNRESOLVED. However, here, the next test (as in pass/fail) is in the next test (as in .exp). Hence the spurious UNRESOLVED in assign_1.exp. These perror when failing to run to X are not really useful, especially since runto records a FAIL on error, by default. Remove all the perrors on runto failure I could find. When there wasn't one already, add a return statement when failing to run, to avoid running the test of the test unnecessarily. I thought of adding a check ran between test (in gdb_finish probably) where we would emit a warning if errcnt > 0, meaning a test quit and left a perror "active". However, reading that variable would poke into the DejaGNU internals, not sure it's a good idea. Change-Id: I2203df6d06e199540b36f56470d1c5f1dc988f7b
* Add missing newline to gdbarch_tdep debugging outputLuis Machado2022-12-051-1/+1
| | | | | The missing newline causes testsuite issues because the gdb prompt gets output to an unexpected location.
* gdbarch.py: Fix indentation in the generated set_gdbarch_* definitionsThiago Jung Bauermann2022-12-052-210/+217
| | | | | | | | Use as many tabs as possible for indentation and pad with spaces to keep the argument aligned to the opening parenthesis in the line above. Co-developed-by: Simon Marchi <simon.marchi@efficios.com> Approved-By: Simon Marchi <simon.marchi@efficios.com>
* gdbarch.py: Fix indentation in the generated gdbarch_dump functionThiago Jung Bauermann2022-12-052-560/+556
| | | | | | | Use tab for the first eight spaces of indentation, and align the gdb_printf arguments to the open parenthesis of the function call. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* gdb: Update my email address in MAINTAINERSThiago Jung Bauermann2022-12-051-1/+1
|
* gdb/linux-nat: add pid parameter to linux_proc_xfer_memory_partialSimon Marchi2022-12-021-9/+9
| | | | | | | | Add a pid parameter to linux_proc_xfer_memory_partial, making the inferior_ptid reference bubble up close to the target_ops::xfer_partial boundary. No behavior change expected. Change-Id: I58171b00ee1bba1ea22efdbb5dcab8b1ab3aac4c
* gdb: add some debug statements to solib-svr4.cSimon Marchi2022-12-021-1/+13
| | | | | | | Add a few debug statements that were useful to me when debugging why the glibc probes interface wasn't getting used. Change-Id: Ic20744f9fc80a90f196896b0829949411620c540
* gdb: merge solib-frv aix-solib debug options into "set/show debug solib"Simon Marchi2022-12-026-124/+68
| | | | | | | | | | | solib implementations are typically used one at a time. So it will be rare that you will want to enable debug for one solib kind, and absolutely want to keep the others disabled. To make things simpler, instead of adding separate variables / macros / commands for each solib implementation, merge the existing ones (frv and aix) into a unified "set/show debug solib", with the solib_debug_printf macro. Change-Id: I6e18bbc7401724f37ae66681badb079d75ecf7fa
* [gdb/testsuite] Prevent timeout in gdb.ada/float-bits.expTom de Vries2022-12-021-3/+10
| | | | | | | | | | | | | | | | | Recent commit 32a5aa26256 ("[gdb/testsuite] Fix gdb.ada/float-bits.exp for powerpc64le") started using command "maint print architecture", which produces ~275 lines. Rewrite the corresponding gdb_test_multiple to read line-by-line, to prevent timeouts on slower test setups. Note that this doesn't fix a timeout in the test-case on aarch64 due to: ... gdbarch_dump: read_core_file_mappings = <0x817438> (gdb) aarch64_dump_tdep: Lowest pc = 0x0x8000 ... Tested on x86_64-linux.
* PowerPC, fix gdb.reverse/finish-reverse-bkpt.exp and ↵Carl Love2022-12-014-7/+130
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gdb.reverse/next-reverse-bkpt-over-sr.exp The tests set a break point with the command break *func. This sets a breakpoint on the first instruction of the function. PowerPC uses Global Entry Points (GEP) and Local Entry Points (LEP). The first instruction in the function is the GEP. The GEP sets up register r2 before reaching the LEP. When the function is called with func() the function is entered via the LEP and the test fails because GDB does not see the breakpoint on the GEP. However, if the function is called via a function pointer, execution begins at the GEP as the test expects. Currently finish-reverse-bkpt.exp uses source file finish-reverse.c and next-reverse-bpkt-over-sr.exp uses source file step-reverse.c A new source file was created for tests finish-reverse-bkpt.exp and next-reverse-bkpt-over-sr.exp. The new files use the new function pointer method to call the functions so the tests will work correctly on both PowerPC with a GEP and LEP as well as on other systems. The GEP is the same as the LEP on non PowerPC systems. The expect files were changed to use the new source files and to set the initial break point for the rest of the test on the function pointer call for the function. This patch fixes two PowerPC test failures in each of the tests gdb.reverse/finish-reverse-bkpt.exp and gdb.reverse/next-reverse-bkpt-over-sr.exp. Patch tested on PowerPC and Intel X86-64 with no regressions. Reviewed-By: Bruno Larsen <blarsen@redhat.com>
* Remove call to registers_changed from windows-nat.cTom Tromey2022-12-011-1/+0
| | | | | | | | I noticed that windows_nat_target::interrupt calls registers_changed. However, I don't think there's any reason to do this, because this will happen automatically when the inferior stop is processed. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* Remove the_windows_nat_target globalTom Tromey2022-12-011-7/+4
| | | | | | | | | | I belatedly realized that the "the_windows_nat_target" global isn't really necessary. It's only used in one place, where 'this' would be simpler and clearer. This patch removes the global entirely. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* gdb: make frame_register staticSimon Marchi2022-12-012-12/+6
| | | | | | It is only used inside frame.c. Change-Id: I44eb46a5992412f8f8b4954b2284b0ef3b549504
* Add name canonicalization for CTom Tromey2022-12-018-26/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR symtab/29105 shows a number of situations where symbol lookup can result in the expansion of too many CUs. What happens is that lookup_signed_typename will try to look up a type like "signed int". In cooked_index_functions::expand_symtabs_matching, when looping over languages, the C++ case will canonicalize this type name to be "int" instead. Then this method will proceed to expand every CU that has an entry for "int" -- i.e., nearly all of them. A crucial component of this is that the caller, objfile::lookup_symbol, does not do this canonicalization, so when it tries to find the symbol for "signed int", it fails -- causing the loop to continue. This patch fixes the problem by introducing name canonicalization for C. The idea here is that, by making C and C++ agree on the canonical name when a symbol name can have multiple spellings, we avoid the bad behavior in objfile::lookup_symbol (and any other such code -- I don't know if there is any). Unlike C++, C only has a few situations where canonicalization is needed. And, in particular, due to the lack of overloading (thus avoiding any issues in linespec) and due to the way c-exp.y works, I think that no canonicalization is needed during symbol lookup -- only during symtab construction. This explains why lookup_name_info is not touched. The stabs reader is modified on a "best effort" basis. The DWARF reader needed one small tweak in dwarf2_name to avoid a regression in dw2-unusual-field-names.exp. I think this is adequately explained by the comment, but basically this is a scenario that should not occur in real code, only the gdb test suite. lookup_signed_typename is simplified. It used to search for two different type names, but now gdb can search just for the canonical form. gdb.dwarf2/enum-type.exp needed a small tweak, because the canonicalizer turns "unsigned integer" into "unsigned int integer". It seems better here to use the correct C type name. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29105 Tested-by: Simon Marchi <simark@simark.ca> Reviewed-by: Andrew Burgess <aburgess@redhat.com>
* Refactor cooked_index::do_finalizeTom Tromey2022-12-011-26/+23
| | | | | | | | | | This refactors cooked_index::do_finalize, reordering an 'if' to make it a little less redundant. This change makes a subsequent patch easier to read. Reviewed-by: Andrew Burgess <aburgess@redhat.com>
* Remove language check from dwarf2_compute_nameTom Tromey2022-12-011-5/+3
| | | | | | | | | | dwarf2_compute_name has a redundant check of the CU's language -- this is also checked in dwarf2_canonicalize_name. Removing this slightly simplifies a future patch. Reviewed-by: Andrew Burgess <aburgess@redhat.com>
* gdb/dwarf: add some QUIT macrosSimon Marchi2022-12-011-0/+4
| | | | | | | | | | | | | While testing the fix for PR 29105, I noticed I couldn't ctrl-C my way out of GDB expanding many symtabs. GDB was busy in a loop in cooked_index_functions::expand_symtabs_matching. Add a QUIT there. I also happened to see a spot in cooked_index_functions::expand_matching_symbols where a QUIT would be useful too, since we iterate over a potentially big number of index entries and expand CUs in the loop. Add one there too. Change-Id: Ie1d650381df7f944c16d841b3e592d2dce7306c3 Approved-By: Kevin Buettner <kevinb@redhat.com>
* gdb: remove prune_threads in thread_db_target::update_thread_listSimon Marchi2022-12-011-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | Pedro mentioned that this prune_threads call in thread_db_target::update_thread_list was not needed, and it was probably an oversight to leave it there in the work following commit e8032dde10b ("Push pruning old threads down to the target"). That commit changed the "find new threads" target operation to "update thread list", making the target responsible of adding new threads and removing exited threads, rather than just adding new threads. Commit e8032dde10b moved the prune_threads calls previously done in common code into each target's update_thread_list method, in order to keep the existing behavior, which is why this prune_threads call ended up there. In the mean time, the linux-nat target was taught to update_thread_list, and thread_db_target::update_thread_list defers to that for any live inferior, so the prune_threads call is not needed there. Otherwise, the thread_db_target::update_thread_list implementation based on td_ta_thr_iter_p only knows how to add new threads, not how to delete exited threads, but that is only used for non-live inferiors, where threads can't exit anyway. So the prune_threads call is not needed for that case either. Change-Id: I127fd4f84c25086f97853dadf34c5cec6816840d Approved-By: Pedro Alves <pedro@palves.net>
* Avoid timeouts in gdb.compileTom Tromey2022-12-0117-70/+82
| | | | | | | | | | | | | | | | | | | | | | | | | PR compile/29541 points out that some of the C++ tests in gdb.compile will time out when the glibc debuginfo is installed. This was interfering with my hacking on gdb by making test runs extremely long, so I looked into it. Internally the bug seems to be that gdb tries to convert multiple symbols named "var" via the compiler interface; one such symbol (I didn't track it down too far) causes the C++ compiler plugin to crash. Unfortunately, the crash is reported as a timeout, as the gdb side of the plugin simply hangs. This seems like a bug in the plugin RPC mechanism and, worse, apparently when I wrote this stuff I didn't really consider error reporting very much at all, so gdb can't really detect failures in the first place. Anyway... this patch works around the timeout by compiling a simple test that should provoke this bug, and then using "untested" if it notices a GCC crash. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29541
* Remove obsolete check from skip_compile_feature_testsTom Tromey2022-12-011-3/+0
| | | | | | | | | skip_compile_feature_tests checks for "Command not supported on this host", but this error was removed by commit e8d8cce6 ("Import mkdtemp gnulib module, fix mingw build"). This patch removes the obsolete test.
* Remove one copy of skip_compile_feature_testsTom Tromey2022-12-018-20/+12
| | | | | | | | I noticed that there are two identical copies of skip_compile_feature_tests in the test suite. This removes one from gdb.exp, in favor of the one in compile-support.exp.
* [gdb/testsuite] Wait longer for core generationTom de Vries2022-12-011-7/+13
| | | | | | | | | | | | | | When I run the gdb testsuite on a powerpc64le-linux system with (slow) nfs file system, I run into timeouts due to core generation, like for instance: ... (gdb) gcore $outputs/gdb.ada/task_switch_in_core/crash.gcore^M FAIL: gdb.ada/task_switch_in_core.exp: save a corefile (timeout) ... Fix this by using with_timeout_factor 3 in gdb_gcore_cmd. Tested on powerpc64le-linux. Approved-By: Tom Tromey <tom@tromey.com>
* [gdb/testsuite] Fix gdb.ada/float-bits.exp for powerpc64leTom de Vries2022-12-011-0/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On powerpc64le-linux, I run into: ... (gdb) print 16llf#4000921fb54442d18469898cc51701b8#^M $9 = <invalid float value>^M (gdb) FAIL: gdb.ada/float-bits.exp: print \ 16llf#4000921fb54442d18469898cc51701b8# ... The problem is that we're using a hex string for the 128-bit IEEE quad long double format, but the actual long double float format is: ... gdbarch_dump: long_double_format = floatformat_ibm_long_double_little^M ... Fix this by using the hex string obtained by compiling test.c: ... long double a = 5.0e+25L; ... like so: ... $ gcc -mlittle test.c -c -g ... and running gdb: ... $ gdb -q -batch test.o -ex "p /x a" $1 = 0xc1e1c000000000004544adf4b7320335 ... and likewise for -mbig: ... $ gdb -q -batch test.o -ex "p /x a" $1 = 0x4544adf4b7320335c1e1c00000000000 ... Tested on powerpc64le-linux. I excercised the case of floatformat_ibm_long_double_big by using "set endian big" in the test-case. Note that for this patch to work correctly, recent commit aaa79cd62b8 ("[gdb] Improve printing of float formats") is required. PR testsuite/29816 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29816 Approved-By: Tom Tromey <tom@tromey.com>
* [gdb/testsuite] Fix DUPLICATEs in s390-multiarch.expTom de Vries2022-11-301-23/+27
| | | | | | | | | | | | | On s390x-linux, I run into: ... DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2 DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2 DUPLICATE: gdb.arch/s390-multiarch.exp: Linux v2 ... Fix this by using with_test_prefix. Tested on s390x-linux.
* [gdb/testsuite] Enable gdb.arch/s390-disassembler-options.exp for ↵Tom de Vries2022-11-301-16/+20
| | | | | | | | | | | | | | | | | | | | --enable-targets=all On s390x-linux, I run into: ... DUPLICATE: gdb.arch/s390-disassembler-options.exp: \ show disassembler-options esa ... First, reproduce this on x86_64-linux with --enable-targets=all, by replacing the test for 'istarget "s390*-*-*"' with a test for 'get_set_option_choices "set architecture" "s390"'. Fix the DUPLICATE by using with_test_prefix. Also modernize the test-case by using clean_restart instead of gdb_exit/gdb_start. Tested on x86_64-linux.
* Bounds check access to Ada task state namesTom Tromey2022-11-301-2/+31
| | | | | | | | | | | | | While looking into Ada tasking a little, I noticed that no bounds checking is done on accesses to the Ada task state names arrays. This isn't a problem currently, but if the runtime ever added numbers -- or if there was some kind of runtime corruption -- it could cause a gdb crash. This patch adds range checking. It also adds a missing _() call when printing from the 'task_states' array.
* Use ui_file_up in mi_interpTom Tromey2022-11-302-8/+6
| | | | | | | This changes mi_interp to use ui_file_up rather than explicit management. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* Rename fields of cli_interp_base::saved_output_filesTom Tromey2022-11-302-11/+14
| | | | | | | | | This renames the fields of cli_interp_base::saved_output_files, as requested by Simon. I tried to choose names that more obviously reflect what the field is used for. I also added a couple of comments. Approved-By: Simon Marchi <simon.marchi@efficios.com>
* [gdb] Improve printing of float formatsTom de Vries2022-11-303-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, on x86_64, a little endian target, I get: ... $ gdb -q -batch -ex "maint print architecture" | grep " = floatformat" gdbarch_dump: bfloat16_format = floatformat_bfloat16_big gdbarch_dump: double_format = floatformat_ieee_double_big gdbarch_dump: float_format = floatformat_ieee_single_big gdbarch_dump: half_format = floatformat_ieee_half_big gdbarch_dump: long_double_format = floatformat_i387_ext ... which suggests big endian. This is due to this bit of code in pformat: ... /* Just print out one of them - this is only for diagnostics. */ return format[0]->name; ... Fix this by using gdbarch_byte_order to pick the appropriate index, such that we have the more accurate: ... gdbarch_dump: bfloat16_format = floatformat_bfloat16_little gdbarch_dump: half_format = floatformat_ieee_half_little gdbarch_dump: float_format = floatformat_ieee_single_little gdbarch_dump: double_format = floatformat_ieee_double_little gdbarch_dump: long_double_format = floatformat_i387_ext ... Tested on x86_64-linux.
* [gdb/testsuite] Fix gdb.base/vla-optimized-out.exp for ppc64leTom de Vries2022-11-291-6/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On powerpc64le-linux, I run into: ... (gdb) PASS: gdb.base/vla-optimized-out.exp: o1: printed optimized out vla p sizeof (a)^M $2 = <optimized out>^M (gdb) FAIL: gdb.base/vla-optimized-out.exp: o1: \ printed size of optimized out vla ... The problem happens as follows. In order to find the size of the optimized out vla, gdb needs to evaluate: ... <155> DW_AT_upper_bound : 13 byte block: f3 1 53 23 1 8 20 24 8 20 26 31 1c \ (DW_OP_GNU_entry_value: (DW_OP_reg3 (r3)); DW_OP_plus_uconst: 1; DW_OP_const1u: 32; DW_OP_shl; DW_OP_const1u: 32; DW_OP_shra; DW_OP_lit1; DW_OP_minus) ... When trying to evaluate DW_OP_GNU_entry_value, it looks for a call site matching the pc, but doesn't find it: ... $ gdb -q -batch outputs/gdb.base/vla-optimized-out/vla-optimized-out-o1 \ -ex "break f1" -ex run -ex "set debug entry-values 1" -ex "print sizeof (a)" Breakpoint 1 at 0x1000067c: file vla-optimized-out.c, line 34. Breakpoint 1, f1 (i=5) at vla-optimized-out.c:34 34 } DW_OP_entry_value resolving cannot find DW_TAG_call_site 0x100006b0 in main $1 = <optimized out> .... The call site lookup fails because the call site label .LVL4: ... bl f1 # 11 *call_value_nonlocal_aixdi [length = 8] nop .LVL4: ... is not placed directly after the bl insn. This is gcc PR target/107909. However, after manually fixing the .s file we have instead: ... Cannot find matching parameter at DW_TAG_call_site 0x10000690 at main $1 = <optimized out> ... due to the fact that the call site has no call site parameters. The call site does have a reference to the corresponding function f1, with parameter i, for which we find location list entries: ... 0037 1000067c 10000680 (DW_OP_reg3 (r3)) 004a 10000680 10000690 (DW_OP_GNU_entry_value: (DW_OP_reg3 (r3)); DW_OP_stack_value) ... and we could use the fact that the current pc is in the 1000067c-10000680 range, and that that the range starts at the start of the function, to deduce that DW_OP_GNU_entry_value: (DW_OP_reg3 (r3)) == DW_OP_reg3 (r3). But that's a non-trivial enhancement, filed as enhancement PR symtab/29836. Fix this by allowing <optimized out> for target powerpc and the gcc compiler. Reviewed-By: Carl Love <cel@us.ibm.com> Tested-By: Carl Love <cel@us.ibm.com> PR testsuite/29813 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29813
* gdb/testsuite: make gdb_unload use gdb_test_multipleSimon Marchi2022-11-294-32/+24
| | | | | | | | | | | | | | | | | | | | | In the failure seen by Philippe here: https://inbox.sourceware.org/gdb-patches/20221120173024.3647464-1-philippe.waroquiers@skynet.be/ gdb_unload crashed GDB, leaving no trace in the test results. Change it to use gdb_test_multiple, so that it leaves an UNRESOLVED result. I think it is good practice anyway. Make it return the result of gdb_test_multiple directly, change gdb.python/py-objfile.exp accordingly. Change gdb.base/endian.exp as well to avoid duplicate test names. Change gdb.base/gnu-debugdata.exp to avoid recording a test result, since gdb_unload does it already now. Change-Id: I59a1e4947691330797e6ce23277942547c437a48 Approved-By: Tom de Vries <tdevries@suse.de>
* gdb/testsuite: make gdb_test_multiple return immediately if send_gdb failsSimon Marchi2022-11-291-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the failure seen by Philippe here: https://inbox.sourceware.org/gdb-patches/20221120173024.3647464-1-philippe.waroquiers@skynet.be/ ... the testsuite only outputs PASSes, and an ERROR, resulting from an uncaught exception. This is a bit sneaky, because ERRORs are not reported in the test summary. In certain circumstances, it can be easy to miss. Normally, gdb_test_multiple outputs an UNRESOLVED when GDB crashes. But this is only if it manages to send the command, and it's that command that crashes GDB. Here, the ERROR is due to the fact that GDB had already crashed by the time we entered gdb_test_multiple and tried to send a command. GDB was crashed by the previous "file" command, sent by gdb_unload. Because gdb_unload uses bare expect, it didn't record a test failure when crashing GDB (this will be addressed separately). In this patch, I propose to make gdb_test_multiple call unresolved directly and return -1 send_gdb fails. This way, if GDB is already crashed by the time we enter gdb_test_multiple, it will leave a trace in the test results in the form of an UNRESOLVED. It will also spare us the not-so-useful-in-my-opinion TCL backtrace. Before, it looks like: ERROR: Couldn't send python print(objfile.filename) to GDB. ERROR: : spawn id exp9 not open while executing "expect { -i exp9 -timeout 10 -re ".*A problem internal to GDB has been detected" { fail "$message (GDB internal error)" gdb_internal_error..." ("uplevel" body line 1) invoked from within "uplevel $body" NONE : spawn id exp9 not open And after: Couldn't send python print(objfile.filename) to GDB. UNRESOLVED: gdb.python/py-objfile.exp: objfile.filename after objfile is unloaded Change-Id: I72af8dc0d687826fc3f76911c27a9e5f91b677ba Approved-By: Tom de Vries <tdevries@suse.de>
* gdb/testsuite: remove use of then keyword from library filesAndrew Burgess2022-11-2811-109/+109
| | | | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the testsuite library files (in boards/, config/, and lib/). Previous commits have removed all uses of the 'then' keyword from the test script files, this commit just cleans up the library files. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.*/*.exp scriptsAndrew Burgess2022-11-2829-44/+44
| | | | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the remaining gdb.*/*.exp scripts. Previous commits have done the bulk of this removal, this commit just handles the remaining directories that each contain a low number of instances. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.multi/*.expAndrew Burgess2022-11-289-18/+18
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.multi/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.fortran/*.expAndrew Burgess2022-11-2823-23/+23
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.fortran/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.disasm/*.expAndrew Burgess2022-11-2813-26/+26
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.disasm/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.reverse/*.expAndrew Burgess2022-11-2815-31/+31
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.reverse/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.trace/*.expAndrew Burgess2022-11-2822-38/+38
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.trace/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.threads/*.expAndrew Burgess2022-11-2838-60/+60
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.threads/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.python/*.expAndrew Burgess2022-11-2838-66/+66
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.python/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.cp/*.expAndrew Burgess2022-11-2866-79/+79
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.cp/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.arch/*.expAndrew Burgess2022-11-2894-142/+142
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.arch/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.base/*.expAndrew Burgess2022-11-28216-435/+435
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.base/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove use of then keyword from gdb.ada/*.expAndrew Burgess2022-11-2851-55/+55
| | | | | | | | | | | | The canonical form of 'if' in modern TCL is 'if {} {}'. But there's still a bunch of places in the testsuite where we make use of the 'then' keyword, and sometimes these get copies into new tests, which just spreads poor practice. This commit removes all use of the 'then' keyword from the gdb.ada/ test script directory. There should be no changes in what is tested after this commit.
* gdb/testsuite: remove DOS line endings from a test scriptAndrew Burgess2022-11-281-92/+92
| | | | | | | | | The gdb.fortran/nested-funcs.exp test script has DOS line endings. I can see no reason why this script needs DOS line endings. Convert to UNIX line endings. There should be no change in what is tested after this commit.
* Don't let gdb_stdlog use pagerTom Tromey2022-11-282-10/+15
| | | | | | | | | | | | | | When using the "set logging" commands, cli_interp_base::set_logging will send gdb_stdlog output (among others) to the tee it makes for gdb_stdout. However, this has the side effect of also causing logging to use the pager. This is PR gdb/29787. This patch fixes the problem by keeping stderr and stdlog separate from stdout, preserving the rule that only gdb_stdout should page. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=29787
* Don't let tee_file own a streamTom Tromey2022-11-286-21/+20
| | | | | | | | | Right now, tee_file owns the second stream it writes to. This is done for the convenience of the users. In a subsequent patch, this will no longer be convenient, so this patch moves the responsibility for ownership to the users of tee_file.
* Remove 'saved_output' globalTom Tromey2022-11-282-30/+33
| | | | | | | | CLI redirect uses a global variable, 'saved_output'. However, globals are generally bad, and there is no need for this one -- it can be a member of cli_interp_base. This patch makes this change.
* Remove no longer used jump labelHannes Domani2022-11-281-1/+0
| | | | The out label is unused since wait_for_debug_event is in a different thread.