aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/lib
AgeCommit message (Collapse)AuthorFilesLines
2013-09-16 * lib/gdb.exp (using_fission): New proc.Doug Evans1-0/+10
* gdb.base/info-macros.exp: Skip test if using Fission.
2013-08-27gdb/testsuite/Yao Qi1-1/+6
* lib/gdb.exp (gdb_remote_download): Don't pass $tofile to remote_download if it is empty.
2013-08-26 * lib/gdb.exp (run_on_host): Moved here from gnu-debugdata.exp.Doug Evans1-0/+25
* gdb.base/gnu-debugdata.exp (run): Moved to gdb.exp and renamed to run_on_host. All callers updated.
2013-08-24gdb/testsuite/Yao Qi1-0/+8
* lib/dwarf.exp (_location): Handle DW_OP_deref_size. * gdb.trace/entry-values.c: New. * gdb.trace/entry-values.exp: New.
2013-08-22fix dwz.exp on 32-bit targetsTom Tromey2-6/+48
This fixes dwz.exp on 32-bit targets. It does so by introducing a new "default" setting for the address size in the DWARF assembler. Built and regtested on x86-64 Fedora 18. I also ran the gdb.dwarf2 tests on an x86 machine (gcc45). * lib/dwarf.exp (cu, tu): Handle addr_size of "default". Change default addr_size. * lib/gdb.exp (is_64_target): New gdb_caching_proc.
2013-08-22convert one more caching procTom Tromey1-21/+17
I noticed that skip_btrace_tests is a classic "caching proc" that I missed when I added gdb_caching_proc. This patch converts it. Built and regtested on x86-64 Fedora 18. * lib/gdb.exp (skip_btrace_tests): Use gdb_caching_proc and standard_temp_file.
2013-08-22use standard_temp_file in another caching procTom Tromey1-4/+4
In an earlier patch I forgot to change the caching proc in cell.exp to use standard_temp_file. This fixes the oversight. Tested on x86-64 Fedora 18. * lib/cell.exp (skip_cell_tests): Use standard_temp_file.
2013-08-22introduce gdb_remote_download and finish parallel fixes in gdb.dwarf2Tom Tromey1-0/+12
This finishes making gdb.dwarf2 parallel-safe. To do this, this patch introduces a new gdb_remote_download proc, that works somewhat differently in the one specific case where it matters: for a copy to "host", if no destination was given, and the host is not actually remote, then standard_output_file is used. In parallel mode this guarantees that the resulting file will end up in a parallel-safe location. Tested on x86-64 Fedora 18. * gdb.dwarf2/dw2-basic.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-compressed.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-intercu.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-intermix.exp: Use gdb_remote_download. * gdb.dwarf2/dw2-producer.exp: Use gdb_remote_download. * gdb.dwarf2/mac-fileno.exp: Use gdb_remote_download. * lib/gdb.exp (gdb_remote_download): New proc.
2013-08-16 * lib/prelink-support.exp (prelink_yes): Flag test as unsupported ifDoug Evans1-0/+5
prelink complains about an unhandled DWARF version.
2013-08-13introduce parallel modeTom Tromey2-3/+91
This introduces parallel mode for the test suite. It doesn't fully work yet in the sense that if you do a fully parallel run, you will encounter some file-name clashes, but this has to start somewhere, and it seemed best to add some infrastructure now, so that you can follow along and test subsequent patches if you care to. This patch has two parts. First, it checks for the GDB_PARALLEL variable. If this is set (say, on the runtest command line), then the test suite assumes "parallel mode". In this mode, files are put into a subdirectory named after the test. That is, for DIR/TEST.exp, the outputs are put into ./outputs/DIR/TEST/. This first part has various follow-on changes coming in subsequent patches. This is why the code in this patch also makes "temp" and "cache" directories. Second, this adds an "inotify" mode. If you have the inotifywait command (part of inotify-tools), you can set the GDB_INOTIFY variable. This will tell the test suite to watch for changes outside of the allowed output directories. This mode is useful for debugging the test suite, as it issues a report whenever a possibly parallel-unsafe file open is done. 2013-08-13 Tom Tromey <tromey@redhat.com> Yao Qi <yao@codesourcery.com> * lib/cache.exp (gdb_do_cache): Handle GDB_PARALLEL. * lib/gdb.exp: Handle GDB_PARALLEL. (default_gdb_version): Kill inotify_pid if it exists. (default_gdb_exit): Emit warning if the inotify log is not empty. (standard_output_file): Respect GDB_PARALLEL. (standard_temp_file): Likewise. (gdb_init): Start inotifywait if requested. * gdbint.texinfo (Testsuite): Use @table, not @itemize. Document GDB_PARALLEL and GDB_INOTIFY.
2013-08-13add caching procs to test suiteTom Tromey4-114/+104
In the fully parallel mode, each .exp file can be run in parallel (at least conceptually -- the actual split may not be so severe). This means that procs that compute a result and cache it are not going to function very well. The test they run will be invoked over and over. This patch introduces a generic caching mechanism and changes various result-caching procs to use it. This is a cleanup to introduce the basic change; the results aren't written to disk yet. A caching proc is defined using gdb_caching_proc, which works like "proc", except that it caches the result of the body. * lib/cache.exp: New file. * lib/cell.exp (skip_cell_tests): Use gdb_caching_proc. * lib/gdb.exp: Load cache.exp. (support_complex_tests, is_ilp32_target, is_lp64_target) (is_amd64_regs_target, skip_altivec_tests, skip_vsx_tests) (gdb_skip_xml_test): Use gdb_caching_proc. * lib/opencl.exp (skip_opencl_tests): Use gdb_caching_proc.
2013-08-13add standard_temp_fileTom Tromey1-12/+18
This adds a new helper proc, standard_temp_file. This proc takes a file name and returns a possibly-qualified form. This lets us make parallel runs use a directory other than ".", which helps the inotify mode. This initial patch introduces the proc and changes a few spots to use it. * lib/gdb.exp (standard_temp_file): New proc. (support_complex_tests, is_ilp32_target, is_lp64_target) (is_amd64_regs_target, skip_altivec_tests, skip_vsx_tests): Use standard_temp_file.
2013-08-13more uses of standard_output_fileTom Tromey2-5/+4
A few spots in lib make output files, either in "." or in $objdir/$subdir. This patch changes these spots to use standard_output_file. This help the parallelization project. * lib/gdb.exp (build_id_debug_filename_get): Use standard_output_file. * lib/prelink-support.exp (section_get) (build_executable_own_libs): Use standard_output_file.
2013-08-09 * lib/future.exp (gdb_find_ldd): New proc.Doug Evans2-2/+13
* lib/prelink-support.exp (build_executable_own_libs): Call it. Make "/usr/sbin/" in prelink path optional.
2013-07-18gdb/testsuite/Yao Qi1-2/+16
* lib/gdb.exp (gdb_compile_shlib): Pass the tail name of $dest to link options if host is remote. Move the generated file to $dest.a on host if host is remote.
2013-07-18gdb/testsuite/Yao Qi1-4/+4
* lib/future.exp (gdb_default_target_compile): Use tail name of $destfile as the output name of compile. Move the generated file to $destfile on build.
2013-07-18gdb/testsuite/Yao Qi1-3/+6
* lib/gdb.exp (gdb_compile): Set gdb_saved_set_unbuffered_mode_obj to set_unbuffered_mode_saved.o if host is remote. Invoke remote_download to copy $unbuf_obj to host.
2013-06-18Fix PR symtab/15391Tom Tromey1-1/+6
PR symtab/15391 is a failure with the DW_OP_GNU_implicit_pointer feature. I tracked it down to a logic error in read_pieced_value. The code truncates this_size_bits according to the type size and offset too early -- it should do it after taking bits_to_skip into account. This patch fixes the bug. While testing this, I also tripped across a latent bug because indirect_pieced_value does not sign-extend where needed. This patch fixes this bug as well. Finally, Pedro pointed out that a previous version implemented sign extension incorrectly. This version introduces a new gdb_sign_extend function for this. A couple of notes on this function: * It has the gdb_ prefix to avoid clashes with various libraries that felt free to avoid proper namespacing. There is a "sign_extend" function in a Tile GX header, in an SOM-related BFD header (and in sh64-tdep.c and as a macro in arm-wince-tdep.c, but those are ours...) * I looked at all the sign extensions in gdb and didn't see ones that I felt comfortable converting to use this function; in large part because I don't have a good way to test the conversion. Built and regtested on x86-64 Fedora 18. New test cases included; this required a minor addition to the DWARF assembler. Note that the DWARF CU made by implptrpiece.exp uses a funny pointer size in order to show the sign-extension bug on all platforms. * dwarf2loc.c (read_pieced_value): Truncate this_size_bits after taking bits_to_skip into account. Sign extend byte_offset. * utils.h (gdb_sign_extend): Declare. * utils.c (gdb_sign_extend): New function. * gdb.dwarf2/implptrpiece.exp: New file. * gdb.dwarf2/implptrconst.exp (d): New variable. Print d. * lib/dwarf2.exp (Dwarf::_location): Handle DW_OP_piece.
2013-06-18fix python-selftest.exp failure with gdbserverTom Tromey1-0/+5
python-selftest.exp fails with an error when using the native-gdbserver.exp board. The bug is that the selftest code doesn't work in this situation. It never has. This patch fixes the problem by pushing the needed check into do_self_tests. This helps prevent the problem in the future. * lib/selftest-support.exp (do_self_tests): Reject remote or non-native targets. * gdb.gdb/complaints.exp: Remove check. * gdb.gdb/observer.exp: Remove check. * gdb.gdb/xfullpath.exp: Remove check. * gdb.gdb/complaints.exp: Remove check.
2013-06-07Remove superfluous semicolons from testsuite throughout.Pedro Alves7-242/+242
A few months ago semicolons after "return" were removed throughout the testsuite. However, as I pointed out in review, they're unnecessary not just after "return", but pretty much after any tcl command. ';' is the command separator, and you only need it if there's another command on the same line afterwards. This patch was written by running: $ find . -name "*.exp" | xargs grep -l ";\s*$" | xargs sed -i 's/\([^#][^\s*;]*\)\s*;\s*$/\1/' and then undoing changes to comments, and lib/future.exp. Tested on x86_64 Fedora 17. gdb/testsuite/ 2013-06-07 Pedro Alves <palves@redhat.com> * boards/native-extended-gdbserver.exp: Remove semicolon. * config/arm-ice.exp: Likewise. * config/bfin.exp: Likewise. * config/cygmon.exp: Likewise. * config/h8300.exp: Likewise. * config/monitor.exp: Likewise. * config/sid.exp: Likewise. * config/sim.exp: Likewise. * config/slite.exp: Likewise. * config/vx.exp: Likewise. * gdb.arch/i386-bp_permanent.exp: Likewise. * gdb.asm/asm-source.exp: Likewise. * gdb.base/args.exp: Likewise. * gdb.base/attach-pie-misread.exp: Likewise. * gdb.base/auxv.exp: Likewise. * gdb.base/bigcore.exp: Likewise. * gdb.base/bitfields2.exp: Likewise. * gdb.base/bitfields.exp: Likewise. * gdb.base/break.exp: Likewise. * gdb.base/break-interp.exp: Likewise. * gdb.base/callfuncs.exp: Likewise. * gdb.base/call-sc.exp: Likewise. * gdb.base/commands.exp: Likewise. * gdb.base/corefile.exp: Likewise. * gdb.base/dbx.exp: Likewise. * gdb.base/ending-run.exp: Likewise. * gdb.base/exprs.exp: Likewise. * gdb.base/funcargs.exp: Likewise. * gdb.base/hbreak2.exp: Likewise. * gdb.base/huge.exp: Likewise. * gdb.base/list.exp: Likewise. * gdb.base/memattr.exp: Likewise. * gdb.base/overlays.exp: Likewise. * gdb.base/printcmds.exp: Likewise. * gdb.base/recurse.exp: Likewise. * gdb.base/remotetimeout.exp: Likewise. * gdb.base/reread.exp: Likewise. * gdb.base/savedregs.exp: Likewise. * gdb.base/scope.exp: Likewise. * gdb.base/sepdebug.exp: Likewise. * gdb.base/setshow.exp: Likewise. * gdb.base/setvar.exp: Likewise. * gdb.base/sigaltstack.exp: Likewise. * gdb.base/siginfo-addr.exp: Likewise. * gdb.base/siginfo.exp: Likewise. * gdb.base/siginfo-obj.exp: Likewise. * gdb.base/sigrepeat.exp: Likewise. * gdb.base/sigstep.exp: Likewise. * gdb.base/structs.exp: Likewise. * gdb.base/testenv.exp: Likewise. * gdb.base/twice.exp: Likewise. * gdb.base/valgrind-db-attach.exp: Likewise. * gdb.base/valgrind-infcall.exp: Likewise. * gdb.base/varargs.exp: Likewise. * gdb.base/watchpoint.exp: Likewise. * gdb.cp/gdb1355.exp: Likewise. * gdb.cp/misc.exp: Likewise. * gdb.disasm/hppa.exp: Likewise. * gdb.disasm/t01_mov.exp: Likewise. * gdb.disasm/t02_mova.exp: Likewise. * gdb.disasm/t03_add.exp: Likewise. * gdb.disasm/t04_sub.exp: Likewise. * gdb.disasm/t05_cmp.exp: Likewise. * gdb.disasm/t06_ari2.exp: Likewise. * gdb.disasm/t07_ari3.exp: Likewise. * gdb.disasm/t08_or.exp: Likewise. * gdb.disasm/t09_xor.exp: Likewise. * gdb.disasm/t10_and.exp: Likewise. * gdb.disasm/t11_logs.exp: Likewise. * gdb.disasm/t12_bit.exp: Likewise. * gdb.disasm/t13_otr.exp: Likewise. * gdb.gdb/selftest.exp: Likewise. * gdb.hp/gdb.base-hp/callfwmall.exp: Likewise. * gdb.mi/mi-reverse.exp: Likewise. * gdb.pascal/floats.exp: Likewise. * gdb.python/py-inferior.exp: Likewise. * gdb.threads/attach-into-signal.exp: Likewise. * gdb.threads/pthreads.exp: Likewise. * gdb.threads/thread_events.exp: Likewise. * gdb.threads/watchthreads.exp: Likewise. * gdb.trace/actions-changed.exp: Likewise. * gdb.trace/actions.exp: Likewise. * gdb.trace/ax.exp: Likewise. * gdb.trace/backtrace.exp: Likewise. * gdb.trace/change-loc.exp: Likewise. * gdb.trace/deltrace.exp: Likewise. * gdb.trace/disconnected-tracing.exp: Likewise. * gdb.trace/ftrace.exp: Likewise. * gdb.trace/infotrace.exp: Likewise. * gdb.trace/passc-dyn.exp: Likewise. * gdb.trace/passcount.exp: Likewise. * gdb.trace/pending.exp: Likewise. * gdb.trace/qtro.exp: Likewise. * gdb.trace/range-stepping.exp: Likewise. * gdb.trace/report.exp: Likewise. * gdb.trace/save-trace.exp: Likewise. * gdb.trace/status-stop.exp: Likewise. * gdb.trace/strace.exp: Likewise. * gdb.trace/tfile.exp: Likewise. * gdb.trace/tfind.exp: Likewise. * gdb.trace/trace-break.exp: Likewise. * gdb.trace/tracecmd.exp: Likewise. * gdb.trace/trace-mt.exp: Likewise. * gdb.trace/tspeed.exp: Likewise. * gdb.trace/tsv.exp: Likewise. * gdb.trace/while-stepping.exp: Likewise. * lib/gdb.exp: Likewise. * lib/gdbserver-support.exp: Likewise. * lib/java.exp: Likewise. * lib/mi-support.exp: Likewise. * lib/pascal.exp: Likewise. * lib/prompt.exp: Likewise. * lib/trace-support.exp: Likewise.
2013-06-042013-06-04 Jan Kratochvil <jan.kratochvil@redhat.com>Gary Benson2-31/+56
Gary Benson <gbenson@redhat.com> * lib/gdb.exp (build_executable_from_specs): Use gdb_compile_pthread, gdb_compile_shlib or gdb_compile_shlib_pthreads where appropriate. * lib/prelink-support.exp (build_executable_own_libs): Allow INTERP to be set to "no" to indicate that no ld.so copy should be made. * gdb.base/break-interp.exp (solib_bp): New constant. (reach_1): Use the above instead of "_dl_debug_state". (test_attach): Likewise. (test_ld): Likewise. * gdb.threads/dlopen-libpthread.exp: New file. * gdb.threads/dlopen-libpthread.c: Likewise. * gdb.threads/dlopen-libpthread-lib.c: Likewise. * gdb.base/solib-corrupted.exp: Disable test if GDB is using probes.
2013-05-24gdb/testsuite/Yao Qi1-1/+5
* gdb.base/range-stepping.exp: Skip the rest of tests if the test fails. * lib/range-stepping-support.exp (exec_cmd_expect_vCont_count): Return 0 if the test passes, otherwise return 1.
2013-05-23range stepping: testsPedro Alves1-0/+50
This adds tests to verify range stepping is used as expected, by inspecting the RSP traffic, looking for vCont;s and vCont;r packets. gdb/testsuite/ 2013-05-23 Yao Qi <yao@codesourcery.com> Pedro Alves <palves@redhat.com> * gdb.base/range-stepping.c: New file. * gdb.base/range-stepping.exp: New file. * gdb.trace/range-stepping.c: New file. * gdb.trace/range-stepping.exp: New file. * lib/range-stepping-support.exp: New file.
2013-05-20 * lib/dwarf.exp (Dwarf): New variable _abbrev_section.Doug Evans1-42/+102
(_handle_DW_TAG): Use it. (cu, tu): Replace parameters is_64, version, addr_size with options. All callers updated. Add Fission support. * gdb.dwarf2/implptrconst.exp: Update callers of "cu". * gdb.dwarf2/method-ptr.exp: Ditto. * gdb.dwarf2/nostaticblock.exp: Ditto. * gdb.dwarf2/subrange.exp: Ditto. * gdb.dwarf2/missing-sig-type.exp: Update callers of "cu", "tu".
2013-05-07 * lib/selftest-support.exp: New file.Tom Tromey1-0/+144
* gdb.gdb/complaints.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. * gdb.gdb/observer.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. (test_observer): Don't call setup_test. Remove argument. * gdb.gdb/selftest.exp: Load selftest-support.exp. (find_gdb): Remove. * gdb.gdb/complaints.exp: Load selftest-support.exp. Use do_self_tests. (setup_test, find_gdb): Remove. (test_with_self): Don't call setup_test. Remove argument.
2013-05-06 * lib/gdb.exp (gdb_core_cmd): New function.Doug Evans1-0/+43
* gdb.arch/system-gcore.exp: Use it. * gdb.arch/vsx-regs.exp: Ditto. * gdb.base/gcore.exp: Ditto. * gdb.threads/gcore-thread.exp: Ditto.
2013-05-06 * dwarf2loc.c (invalid_synthetic_pointer): Move earlier.Tom Tromey1-3/+27
(indirect_pieced_value): Call dwarf2_fetch_constant_bytes if needed. * dwarf2loc.h (dwarf2_fetch_constant_bytes): Declare. * dwarf2read.c (write_constant_as_bytes) (dwarf2_fetch_constant_bytes): New functions. gdb/testsuite * gdb.dwarf2/implptrconst.c: New file. * gdb.dwarf2/implptrconst.exp: New file. * lib/dwarf.exp (Dwarf::_nz_quote): New proc. (Dwarf::_handle_DW_FORM): Handle DW_FORM_block1. (Dwarf::_location): Handle DW_OP_GNU_implicit_pointer.
2013-04-17 * lib/dwarf.exp (Dwarf): New proc "tu".Doug Evans1-0/+73
* gdb.dwarf2/missing-sig-type.exp: New file.
2013-04-152013-04-15 Siva Chandra Reddy <sivachandra@google.com>Siva Chandra Reddy1-5/+15
Add option to link testcases with Pthreads library when using 'prepare_for_testing' in tests. testsuite/ * lib/gdb.exp (build_executable_from_specs): Use gdb_compile_pthreads to compile if option "pthreads" is specified.
2013-04-15 PR c++/15176:Tom Tromey1-0/+18
* NEWS: Update. * break-catch-throw.c (compute_exception): New function. (exception_funcs): New global. (_initialize_break_catch_throw): Create $_exception. * cp-abi.c (cplus_type_from_type_info): New function. * cp-abi.h (cplus_type_from_type_info): Declare. (struct cp_abi_ops) <get_type_from_type_info>: New field. * gnu-v3-abi.c (gnuv3_get_typename_from_type_info) (gnuv3_get_type_from_type_info): New functions. (init_gnuv3_ops): Set get_type_from_type_info ABI field. gdb/doc * gdb.texinfo (Set Catchpoints): Document $_exception. (Convenience Vars): Mention $_exception. gdb/testsuite * gdb.base/default.exp: Update for $_exception. * gdb.cp/exceptprint.cc: New file. * gdb.cp/exceptprint.exp: New file. * lib/gdb.exp (skip_libstdcxx_probe_tests): New proc.
2013-04-04tracepoint->step_count fixesPedro Alves1-5/+19
If a tracepoint's actions list includes a while-stepping action, and then the actions are changed to a list without any while-stepping action, the tracepoint's step_count will be left with a stale value. For example: (gdb) trace subr Tracepoint 1 at 0x4004d9: file ../../../src/gdb/testsuite//actions-changed.c, line 31. (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $reg >end (gdb) set debug remote 1 (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:0:0-#a3...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF#2b...Packet received: OK (gdb) tstop Sending packet: $QTStop#4b...Packet received: OK Sending packet: $QTNotes:#e8...Packet received: OK (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $reg >while-stepping 1 >collect $reg >end >end (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:1:0-#a4...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF-#58...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:SR03FFFFFFFFFFFFFFFFFF#7e...Packet received: OK (gdb) tstop Sending packet: $QTStop#4b...Packet received: OK Sending packet: $QTNotes:#e8...Packet received: OK (gdb) actions Enter actions for tracepoint 1, one per line. End with a line saying just "end". >collect $regs >end (gdb) tstart Sending packet: $QTinit#59...Packet received: OK Sending packet: $QTDP:1:00000000004004d9:E:1:0-#a4...Packet received: OK Sending packet: $QTDP:-1:00000000004004d9:R03FFFFFFFFFFFFFFFFFF#2b...Packet received: OK The last "$QTDP:1:00000000004004d9:E:1:0-#a4" should be "$QTDP:1:00000000004004d9:E:0:0-#a3". In pseudo-diff: -$QTDP:1:00000000004004d9:E:1:0-#a4 +$QTDP:1:00000000004004d9:E:0:0-#a3 A related issue is that the "commands" command actually supports setting commands to a range of breakpoints/tracepoints at once. But, hacking "maint info breakpoints" to print t->step_count, reveals: (gdb) trace main Tracepoint 5 at 0x45a2ab: file ../../src/gdb/gdb.c, line 29. (gdb) trace main Note: breakpoint 5 also set at pc 0x45a2ab. Tracepoint 6 at 0x45a2ab: file ../../src/gdb/gdb.c, line 29. (gdb) commands 5-6 Type commands for breakpoint(s) 5-6, one per line. End with a line saying just "end". > while-stepping 5 >end > end (gdb) maint info breakpoints 5 Num Type Disp Enb Address What 5 tracepoint keep y 0x000000000045a2ab in main at ../../src/gdb/gdb.c:29 inf 1 step_count=5 ^^^^^^^^^^^^ while-stepping 5 end not installed on target (gdb) maint info breakpoints 6 Num Type Disp Enb Address What 6 tracepoint keep y 0x000000000045a2ab in main at ../../src/gdb/gdb.c:29 inf 1 step_count=0 ^^^^^^^^^^^^ while-stepping 5 end not installed on target (gdb) that tracepoint 6 doesn't end up with the correct step_count. The issue is that here: static void do_map_commands_command (struct breakpoint *b, void *data) { struct commands_info *info = data; if (info->cmd == NULL) { struct command_line *l; if (info->control != NULL) l = copy_command_lines (info->control->body_list[0]); else { struct cleanup *old_chain; char *str; str = xstrprintf (_("Type commands for breakpoint(s) " "%s, one per line."), info->arg); old_chain = make_cleanup (xfree, str); l = read_command_lines (str, info->from_tty, 1, (is_tracepoint (b) ? check_tracepoint_command : 0), b); do_cleanups (old_chain); } info->cmd = alloc_counted_command_line (l); } validate_actionline is never called for tracepoints other than the first (the copy_command_lines path). Right below, we have: /* If a breakpoint was on the list more than once, we don't need to do anything. */ if (b->commands != info->cmd) { validate_commands_for_breakpoint (b, info->cmd->commands); incref_counted_command_line (info->cmd); decref_counted_command_line (&b->commands); b->commands = info->cmd; observer_notify_breakpoint_modified (b); } And validate_commands_for_breakpoint looks like the right place to put a call; if we reset step_count there too, we have a nice central fix for the first issue as well, because trace_actions_command calls breakpoint_set_commands that also calls validate_commands_for_breakpoint. We end up calling validate_actionline twice for the first tracepoint, since read_command_lines calls it too, through check_tracepoint_command, but that should be harmless. 2013-04-04 Pedro Alves <palves@redhat.com> Hui Zhu <hui@codesourcery.com> * breakpoint.c (validate_commands_for_breakpoint): If validating a tracepoint, reset its STEP_COUNT and call validate_actionline. 2013-04-04 Stan Shebs <stan@codesourcery.com> Pedro Alves <palves@redhat.com> * gdb.trace/Makefile.in (PROGS): Add actions-changed. * gdb.trace/actions-changed.c: New file. * gdb.trace/actions-changed.exp: New file. * lib/trace-support.exp (gdb_trace_setactions): Rename to ... (gdb_trace_setactions_command): ... this. Add "actions_command" parameter, and handle it. (gdb_trace_setactions, gdb_trace_setcommands): New procedures.
2013-03-26Get rid of "No such file or directory" in the testsuite's btrace support ↵Pedro Alves1-1/+3
detection. When I tried running the btrace tests, I noticed something odd in the gdb.log file: (gdb) run Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.x Breakpoint 1, main () at /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.c:1 1 /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace22343.c: No such file or directory. ^^^^^^^^^^^^^^^^^^^^^^^^^ (gdb) record btrace Target does not support branch tracing. (gdb) testcase ../../../src/gdb/testsuite/gdb.btrace/enable.exp completed in 0 seconds I knew that the btrace tests on my machine weren't supposed to work, but still, that error made me wonder if the test had something broken, and waste a few minutes looking up where that is coming from. The issue is that the btrace detection deletes the source file right after compiling it, and before GDB has a chance to open it. It's really harmless, but I'd rather spare others from going through the same exercise. We now get the regular: (gdb) run Starting program: /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace24210.x ... Breakpoint 1, main () at /home/pedro/gdb/mygit/build/gdb/testsuite/gdb.btrace/btrace24210.c:1 1 int main(void) { return 0; } ... gdb/testsuite/ 2013-03-26 Pedro Alves <palves@redhat.com> * lib/gdb.exp (skip_btrace_tests): Delay deleting the source file until after GDB has run.
2013-03-14gdb/testsuite/Yao Qi8-63/+63
* config/monitor.exp (gdb_target_cmd): Remove semicolon after 'return'. (gdb_target_monitor, gdb_load): Likewise. * config/sid.exp (gdb_load): Likewise. * config/slite.exp (gdb_load): Likewise. * config/vx.exp (gdb_start, spawn_vxgdb): Likewise. * gdb.ada/arrayidx.exp, gdb.ada/null_array.exp: Likewise. * gdb.arch/mips-octeon-bbit.exp (single_step): Likewise. (single_step_until): Likewise. * gdb.arch/powerpc-d128-regs.exp: Likewise. * gdb.arch/system-gcore.exp: Likewise. * gdb.base/bigcore.exp (extract_heap): Likewise. * gdb.base/break-on-linker-gcd-function.exp: Likewise. * gdb.base/call-ar-st.exp: Likewise. * gdb.base/call-rt-st.exp: Likewise. * gdb.base/call-sc.exp, gdb.base/call-strs.exp: Likewise. * gdb.base/callfuncs.exp, gdb.base/completion.exp: Likewise. * gdb.base/condbreak.exp, gdb.base/constvars.exp: Likewise. * gdb.base/corefile.exp: Likewise. * gdb.base/dbx.exp (gdb_file_cmd): Likewise. * gdb.base/exprs.exp, gdb.base/fileio.exp: Likewise. * gdb.base/fixsection.exp: Likewise. * gdb.base/funcargs.exp: Likewise. * gdb.base/gcore-buffer-overflow.exp: Likewise. * gdb.base/gcore-relro.exp: Likewise. * gdb.base/gcore.exp, gdb.base/gdb11530.exp: Likewise. * gdb.base/gdb11531.exp, gdb.base/gnu-ifunc.exp: Likewise. * gdb.base/info-os.exp, gdb.base/info-proc.exp: Likewise. * gdb.base/interp.exp, gdb.base/langs.exp:: Likewise. * gdb.base/list.exp: Likewise. (set_listsize): Likewise. * gdb.base/logical.exp, gdb.base/mips_pro.exp: Likewise. * gdb.base/miscexprs.exp, gdb.base/nodebug.exp: Likewise. * gdb.base/opaque.exp, gdb.base/pointers.exp: Likewise. * gdb.base/psymtab.exp, gdb.base/ptype.exp: Likewise. * gdb.base/relational.exp, gdb.base/scope.exp: Likewise. * gdb.base/setvar.exp: Likewise. (test_set): Likewise. * gdb.base/signals.exp, gdb.base/sizeof.exp: Likewise. * gdb.base/solib-overlap.exp: Likewise. * gdb.base/store.exp, gdb.base/structs.exp: Likewise. * gdb.base/structs2.exp, gdb.base/volatile.exp: Likewise. * gdb.base/watchpoint.exp (initialize): Likewise. (test_simple_watchpoint): Likewise. (test_disabling_watchpoints): Likewise. (test_watchpoint_triggered_in_syscall): Likewise. * gdb.base/whatis.exp, gdb.cp/ambiguous.exp: Likewise. * gdb.cp/casts.exp, gdb.cp/ctti.exp: Likewise. * gdb.cp/namespace.exp, gdb.cp/nsdecl.exp: Likewise. * gdb.cp/psmang.exp, gdb.dwarf2/dw2-ranges.exp: Likewise. * gdb.hp/gdb.aCC/optimize.exp: Likewise. * gdb.hp/gdb.aCC/watch-cmd.exp: Likewise. * gdb.hp/gdb.base-hp/callfwmall.exp: Likewise. * gdb.hp/gdb.base-hp/pxdb.exp: Likewise. * gdb.hp/gdb.compat/xdb1.exp: Likewise. * gdb.hp/gdb.compat/xdb2.exp: Likewise. * gdb.hp/gdb.compat/xdb3.exp: Likewise. * gdb.hp/gdb.defects/bs14602.exp: Likewise. * gdb.hp/gdb.defects/solib-d.exp: Likewise. * gdb.mi/gdb792.exp: Likewise. * gdb.mi/mi-inheritance-syntax-error.exp: Likewise. * gdb.mi/mi-logging.exp, gdb.mi/mi-var-cp.exp : Likewise. * gdb.mi/mi-var-rtti.exp, gdb.python/py-type.exp: Likewise. * gdb.threads/gcore-thread.exp: Likewise. (load_core): Likewise. * gdb.threads/pthreads.exp (all_threads_running): Likewise. (test_startup, check_control_c): Likewise. * gdb.threads/sigstep-threads.exp: Likewise. * gdb.threads/thread_check.exp: Likewise. * gdb.trace/backtrace.exp, gdb.trace/change-loc.exp: Likewise. * gdb.trace/circ.exp (run_trace_experiment): Likewise. (set_a_tracepoint, trace_buffer_normal): Likewise. (gdb_trace_circular_tests): Likewise. * gdb.trace/collection.exp: Likewise. * gdb.trace/disconnected-tracing.exp: Likewise. * gdb.trace/infotrace.exp: Likewise. * gdb.trace/mi-traceframe-changed.exp: Likewise. * gdb.trace/mi-tracepoint-changed.exp: Likewise. * gdb.trace/mi-tsv-changed.exp (test_create_delete_modify_tsv): Likewise. * gdb.trace/packetlen.exp, gdb.trace/passc-dyn.exp: Likewise. * gdb.trace/pending.exp, gdb.trace/report.exp: Likewise. * gdb.trace/stap-trace.exp: Likewise. * gdb.trace/status-stop.exp,gdb.trace/strace.exp: Likewise. * gdb.trace/tfind.exp, gdb.trace/trace-break.exp: Likewise. * gdb.trace/trace-buffer-size.exp: Likewise. * gdb.trace/tspeed.exp, gdb.trace/tsv.exp: Likewise. * gdb.trace/unavailable.exp: Likewise. * gdb.trace/while-dyn.exp: Likewise. * lib/fortran.exp (set_lang_fortran): Likewise. * lib/gdb.exp (default_gdb_version, gdb_start_cmd): Likewise. (gdb_breakpoint, gdb_reinitialize_dir): Likewise. (default_gdb_start, get_compiler_info): Likewise. (gdb_compile, gdb_compile_objc, gdb_reload, gdb_init): Likewise. (get_debug_format, setup_xfail_format): Likewise. (rerun_to_main, gdb_skip_float_test): Likewise. (build_id_debug_filename_get, get_remotetimeout): Likewise. * lib/java.exp (set_lang_java): Likewise. * lib/mi-support.exp (default_mi_gdb_start): Likewise. (mi_gdb_reinitialize_dir, mi_gdb_target_cmd): Likewise. (mi_gdb_file_cmd, mi_gdb_test): Likewise. (mi_run_cmd_full, mi_expect_interrupt): Likewise. * lib/objc.exp (set_lang_objc): Likewise. * lib/pascal.exp (set_lang_pascal): Likewise. * lib/prompt.exp (default_prompt_gdb_start): Likewise. * lib/trace-support.exp (gdb_trace_setactions, gdb_tfind_test): Likewise. (gdb_readexpr, gdb_gettpnum, gdb_find_recursion_test_baseline): Likewise.
2013-03-11Add tests for the new record-btrace target.Markus Metzger1-0/+68
testsuite/ * Makefile.in: Add btrace testsuite. * configure: Regenerated. * configure.ac: Add btrace testsuite. * gdb.btrace/Makefile.in: New file. * gdb.btrace/enable.c: New file. * gdb.btrace/enable.exp: New file. * gdb.btrace/function_call_history.c: New file. * gdb.btrace/function_call_history.exp: New file. * gdb.btrace/instruction_history.c: New file. * gdb.btrace/instruction_history.exp: New file. * gdb.btrace/instruction_history.S: New file. * lib/gdb.exp: Add btrace skip proc.
2013-02-02gdb/testsuite/Jan Kratochvil1-1/+1
* lib/java.exp (compile_java_from_source): Initialize ARGS as a list.
2013-02-012013-02-01 Jan Kratochvil <jan.kratochvil@redhat.com>Tom Tromey1-0/+1
Tom Tromey <tromey@redhat.com> * gdb.dwarf2/method-ptr.exp: Link with c++. * lib/dwarf.exp (Dwarf::assemble): Declare _cu_count.
2013-01-31 * lib/dwarf.exp (namespace Dwarf): New.Tom Tromey1-0/+728
2013-01-212013-01-21 Marc Khouzam <marc.khouzam@ericsson.com>Marc Khouzam1-4/+4
* breakpoint.c (print_one_breakpoint_location): Add MI field 'thread-groups' when printing a breakpoint. (output_thread_groups): New function. 2013-01-21 Marc Khouzam <marc.khouzam@ericsson.com> * gdb.texinfo (GDB/MI Breakpoint Commands): Document new 'thread-groups' field when printing a breakpoint in MI. 2013-01-21 Marc Khouzam <marc.khouzam@ericsson.com> * gdb.mi/mi-break.exp: Expect new 'thread-groups' field. * gdb.mi/mi-nsmoribund.exp: Expect new 'thread-groups' field. Also handle 'thread' field. * gdb.mi/mi-simplerun.exp: Expect new 'thread-groups' field. * gdb.mi/mi-watch.exp: Ditto. * lib/mi-support.exp: Ditto.
2013-01-01Update years in copyright notice for the GDB files.Joel Brobecker25-29/+25
Two modifications: 1. The addition of 2013 to the copyright year range for every file; 2. The use of a single year range, instead of potentially multiple year ranges, as approved by the FSF.
2012-12-102012-12-10 Paul Koning <paul_koning@dell.com>Paul Koning1-1/+24
* gdb.base/charset.exp: Change print syntax for Python 3 compatibility. * gdb.python/py-block.exp: Ditto. * gdb.python/py-breakpoint.exp: Ditto. * gdb.python/py-cmd.exp: Ditto. * gdb.python/py-events.py: Ditto. * gdb.python/py-finish-breakpoint.py: Ditto. * gdb.python/py-finish-breakpoint2.exp: Ditto. * gdb.python/py-finish-breakpoint2.py: Ditto. * gdb.python/py-frame-inline.exp: Ditto. * gdb.python/py-frame.exp: Ditto. * gdb.python/py-infthread.exp: Ditto. * gdb.python/py-objfile.exp: Ditto. * gdb.python/py-parameter.exp: Ditto. * gdb.python/py-progspace.exp: Ditto. * gdb.python/py-prompt.exp: Ditto. * gdb.python/py-symbol.exp: Ditto. * gdb.python/py-symtab.exp: Ditto. * gdb.python/py-template.exp: Ditto. * gdb.python/py-value-cc.exp: Ditto. * gdb.python/python.exp: Ditto. * gdb.python/source2.py: Ditto. * gdb.python/lib-types.exp: Change print syntax for Python 3 compatibility. Use sorted() function rather than sort() method. Accept either int or long values for enum values. * gdb.python/py-events.exp: Use exec(open(...).read()) instead of execfile for Python 3 compatibility. * gdb.python/py-evsignal.exp: Ditto. * gdb.python/py-evthreads.exp: Ditto. * gdb.python/py-mi.exp: Ditto. * gdb.python/py-pp-maint.exp: Ditto. * gdb.python/py-prettyprint.exp: Ditto. * gdb.python/py-finish-breakpoint.exp: Change print syntax for Python 3 compatibility. Skip tests for Python 2.4. * gdb.python/py-inferior.exp: Change print syntax for Python 3 compatibility. Use byte string rather than character string in memory write test if Python 3. * gdb.python/py-pp-maint.py: Change class declarations to "new class" syntax. * gdb.python/py-prettyprint.py: Change iterator class to generator function for Python 3 compatibility. Make all classes "new style". Fix indentation issue and stray semicolon. * gdb.python/py-shared.expChange print syntax for Python 3 compatibility. Define "long" if Python 3. * gdb.python/py-type.exp: Change print syntax for Python 3 compatibility. Accept either int or long values for enum values. * gdb.python/py-value.exp: Change print syntax for Python 3 compatibility. Skip "long" and "unicode" tests if Python 3. Accept either "type" or "class" in type checks. * lib/gdb.exp (gdb_py_is_py3k): New flag set if Python 3. (gdb_py_is_py24): New flag set if Python 2.4 or 2.5.
2012-11-262012-11-26 Alexander Larsson <alexl@redhat.com>Tom Tromey1-0/+9
Jan Kratochvil <jan.kratochvil@redhat.com> Tom Tromey <tromey@redhat.com> * NEWS: Mention mini debuginfo feature. * minidebug.c: New file. * configure.ac: Check for lzma. * configure, config.in: Rebuild. * Makefile.in (LIBLZMA): New variable. (CLIBS): Include LIBLZMA. (SFILES): Mention minidebug.c. (COMMON_OBS): Mention minidebug.o. * symfile.c (read_symbols): New function. (syms_from_objfile, reread_symbols): Call it. * symfile.h (find_separate_debug_file_in_section): Declare. doc * gdb.texinfo (MiniDebugInfo): New node. (GDB Files): Update. testsuite * gdb.base/gnu-debugdata.exp: New file. * gdb.base/gnu-debugdata.c: New file. * lib/gdb.exp (gdb_file_cmd): Handle LZMA warning. (gdb_unload): Return 0 on success.
2012-11-12 * c-typeprint.c (find_typedef_for_canonicalize,Tom Tromey1-7/+10
print_name_maybe_canonical): New functions. (c_print_type): Look up type name. (cp_type_print_derivation_info): Add flags argument. Use print_name_maybe_canonical. (cp_type_print_method_args): Add wrapping. (c_type_print_varspec_prefix): Use print_name_maybe_canonical. (c_type_print_template_args): New function. (c_type_print_base): Change wrapping. Use print_name_maybe_canonical. <TYPE_CODE_STRUCT>: Possibly create a typedef hash, and do type name lookups. * gdbtypes.c (types_equal): No longer static. * gdbtypes.h (types_equal): Declare. * typeprint.c (type_print_raw_options, default_ptype_flags): Update. (struct typedef_hash_table): New. (hash_typedef_field, eq_typedef_field, recursively_update_typedef_hash, add_template_parameters, create_typedef_hash, free_typedef_hash, do_free_typedef_hash, make_cleanup_free_typedef_hash, copy_typedef_hash_element, copy_typedef_hash, find_typedef_in_hash): New functions. * typeprint.h (struct type_print_options) <local_typedefs>: New field. (recursively_update_typedef_hash, add_template_parameters, create_typedef_hash, free_typedef_hash, make_cleanup_free_typedef_hash, copy_typedef_hash, find_typedef_in_hash): Declare. testsuite * gdb.base/call-sc.exp: Use "ptype/r". * gdb.base/volatile.exp: Don't expect "int". * gdb.cp/ptype-flags.cc: New file. * gdb.cp/ptype-flags.exp: New file. * gdb.cp/templates.exp: Use ptype/r. (test_ptype_of_templates, test_template_typedef): Likewise. * lib/cp-support.exp (cp_test_ptype_class): Add in_ptype_arg argument. Handle template names and template parameters. * gdb.mi/mi-var-cmd.exp: Accept "long". * gdb.mi/mi-var-child.exp: Accept "long". * gdb.mi/mi-var-display.exp: Accept "long". * gdb.mi/mi2-var-child.exp: Accept "long".
2012-11-12 * gdb.cp/classes.exp (test_ptype_class_objects): RemoveTom Tromey1-4/+7
"ptype" from calls to cp_test_ptype_class. (test_enums): Likewise. * gdb.cp/derivation.exp: Remove "ptype" from calls to cp_test_ptype_class. * gdb.cp/inherit.exp (test_ptype_si): Remove "ptype" from calls to cp_test_ptype_class. (test_ptype_mi, test_ptype_vi, test_ptype_mvi): Likewise. * gdb.cp/virtfunc.exp (test_ptype_of_classes): Remove "ptype" from calls to cp_test_ptype_class. * lib/cp-support.exp (cp_test_ptype_class): Supply "ptype" command here. Change "in_command" argument to "in_exp".
2012-11-06 * gdb.threads/gcore-thread.exp: Use gdb_gcore_cmd.Tom Tromey1-0/+30
* gdb.python/py-strfns.exp (test_strfns_core_file): Use gdb_gcore_cmd. * gdb.cell/gcore.exp: Use gdb_gcore_cmd. * gdb.base/gcore.exp: Use gdb_gcore_cmd. * gdb.base/gcore-relro.exp: Use gdb_gcore_cmd. * gdb.base/gcore-buffer-overflow.exp: Use gdb_gcore_cmd. * gdb.base/auxv.exp: Use gdb_gcore_cmd. * gdb.arch/vsx-regs.exp: Use gdb_gcore_cmd. * gdb.arch/system-gcore.exp: Use gdb_gcore_cmd. * gdb.arch/pa-nullify.exp (test_core_bt): Use gdb_gcore_cmd. * lib/gdb.exp (gdb_gcore_cmd): New proc.
2012-10-25gdb/testsuite:Yao Qi1-8/+0
* gdb.trace/ftrace.exp (test_fast_tracepoints): Use 'setup_kfail' instead of 'setup_kfail_for_target'. * gdb.base/varargs.exp: Likewise. * lib/gdb.exp (setup_kfail_for_target): Remove.
2012-10-15 * lib/cp-support.exp (cp_test_ptype_class): Add supportKeith Seitz1-0/+28
for class typedefs. * gdb.cp/derivation.exp: Add tests for g_instance.
2012-10-15 * lib/gdb.exp (runto): Fix call to gdb_breakpoint.Doug Evans1-1/+4
2012-10-11 * lib/gdb.exp (gdb_breakpoint): Fix varargs scan.Doug Evans1-23/+95
Recognize "message" -> print pass and fail. Add eof case. (runto): Recognize message, no-message. Print pass/fail if requested, with same treatment as gdb_breakpoint. (runto_main): Pass no-message to runto. (gdb_internal_error_resync): Add log message. (gdb_file_cmd): Tweak internal error fail text for consistency.
2012-10-02 * lib/gdb.exp (gdb_unload): Change wording of perror text to beDoug Evans1-9/+14
more consistent. (runto,gdb_debug_format): Ditto. (gdb_file_cmd): Watch for eof in nested gdb_expect. Clean up logging and error messages.
2012-09-21gdb/Jan Kratochvil1-0/+5
Fix internal error on canonicalization of clang types. * cp-name-parser.y (operator): New comment at make_operator call for new, delete, new[] and delete[]. (exp): Use "sizeof ". Add new comment at make_operator call. gdb/testsuite/ Fix internal error on canonicalization of clang types. * gdb.dwarf2/dw2-canonicalize-type.S: New file. * gdb.dwarf2/dw2-canonicalize-type.exp: New file. * lib/gdb.exp (gdb_file_cmd): Catch also GDB internal error.