aboutsummaryrefslogtreecommitdiff
path: root/gdb
AgeCommit message (Collapse)AuthorFilesLines
2013-11-112013-11-11 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon13-1/+1241
PR python/15629 * NEWS: Add linetable feature. * Makefile.in (SUBDIR_PYTHON_OBS): Add py-linetable entries. * python/py-linetable.c: New file. * python/py-symtab.c (stpy_get_linetable): New function. * python/python-internal.h (symtab_to_linetable_object): Declare. (gdbpy_initialize_linetable): Ditto. * python/python.c (_initialize_python): Call gdbpy_initialize_linetable. 2013-11-11 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-linetable.S: New file. * gdb.python/py-linetable.c: New file. * gdb.python/py-linetable.exp: New file. 2013-11-11 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Symbol Tables In Python): Add linetable method entry. (Line Tables In Python): New node.
2013-11-11Dandling memory pointers in Ada catchpoints with GDB/MI.Joel Brobecker7-5/+174
When using the GDB/MI commands to insert a catchpoint on a specific Ada exception, any re-evaluation of that catchpoint (for instance a re-evaluation performed after a shared library got mapped by the inferior) fails. For instance, with any Ada program: (gdb) -catch-exception -e program_error ^done,bkptno="1",bkpt={[...]} (gdb) -exec-run =thread-group-started,id="i1",pid="28315" =thread-created,id="1",group-id="i1" ^running *running,thread-id="all" (gdb) =library-loaded,[...] &"warning: failed to reevaluate internal exception condition for catchpoint 1: No definition of \"exec\" in current context.\n" &"warning: failed to reevaluate internal exception condition for catchpoint 1: No definition of \"exec\" in current context.\n" [...] The same is true if using an Ada exception catchpoint. The problem comes from the fact that that we deallocate the strings given as arguments to create_ada_exception_catchpoint, while the latter just makes shallow copies of those strings, thus creating dandling pointers. This patch fixes the issue by passing freshly allocated strings to create_ada_exception_catchpoint, while at the same time updating create_ada_exception_catchpoint's documentation to make it clear that deallocating the strings is no longer the responsibility of the caller. gdb/ChangeLog: * ada-lang.c (create_ada_exception_catchpoint): Enhance the documentation of fields "except_string" and "condition". * mi/mi-cmd-catch.c (mi_cmd_catch_assert): Reallocate CONDITION on the heap before passing it to create_ada_exception_catchpoint. (mi_cmd_catch_exception): Likewise for EXCEPTION_NAME and CONDITION. gdb/testsuite/ChangeLog: * gdb.ada/mi_ex_cond: New testcase. Tested on x86_64-linux. The "-break-list" test FAILs without this patch.
2013-11-11fix "tkill" checkTom Tromey3-3/+15
An earlier patch removed the check for "syscall" since the results were not used in the C code. However, the result was used, via the cache variable, elsewhere in configure. This patch fixes the problem by checking for "syscall" at the point at which HAVE_TKILL_SYSCALL is defined. 2013-11-11 Tom Tromey <tromey@redhat.com> * config.in, configure: Rebuild. * configure.ac (HAVE_TKILL_SYSCALL): Check for "syscall".
2013-11-11Minor reformatting in remote-sim.c (gdbsim_detach declaration).Joel Brobecker2-1/+7
gdb/ChangeLog: * remote-sim.c (gdbsim_detach): Break declaration into shorter lines. No code change.
2013-11-11Fix argument type on gdbsim_detach prototype.Edjunior Barbosa Machado2-1/+5
2013-11-11 Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com> * remote-sim.c (gdbsim_detach): Fix prototype.
2013-11-08Change "set debug dwarf2-read" to take a verbosity level.Doug Evans4-11/+37
* dwarf2read.c (dwarf2_read_debug): Change to unsigned int. (create_debug_types_hash_table): Only print debugging messages for each TU if dwarf2-read >= 2. (process_queue): Ditto. (_initialize_dwarf2_read): Make "set debug dwarf2-read" a zuinteger. Update doc string. doc/ * gdb.texinfo (Debugging Output): Update text for "set debug dwarf2-read".
2013-11-08remove unused gdbserver configuryTom Tromey4-94/+11
This updates gdbserver's configure.ac to remove checks that aren't directly needed by gdbserver. 2013-11-08 Tom Tromey <tromey@redhat.com> * configure, config.in: Rebuild. * configure.ac: Remove unused configury.
2013-11-08fix a comment in configure.acTom Tromey3-6/+8
My grepping around showed that HAVE_MULTIPLE_PROC_FDS is only ever mentioned in a comment in configure.ac. Since the macro is long dead, let's remove the last mention. 2013-11-08 Tom Tromey <tromey@redhat.com> * configure: Rebuild. * configure.ac: Remove mentions of HAVE_MULTIPLE_PROC_FDS.
2013-11-08gdb configure updatesTom Tromey4-252/+22
Now that the configury needed for the "common" and "target" directories is in common.m4, some code in gdb's configure.ac is redundant. I ran this script after making an "ID" file using mkid: sed -n 's/^.*\(HAVE_[A-Z0-9_]*\).*$/\1/p' config.in | while read x; do echo ===== $x gid $x | egrep -v '^(testsuite|gnulib|common|target|gdbserver)/' done This finds all the spots using HAVE_ defines, and, more importantly, makes it clear which defines aren't used in the main parts of gdb. From this I came up with this patch to remove all the unused bits. There are a few that are subtly used -- for example the configure script sometimes checks internal configure cache variables, meaning some checks cannot be removed. 2013-11-08 Tom Tromey <tromey@redhat.com> * configure, config.in: Rebuild. * configure.ac: Remove unused configury.
2013-11-08use gdb_string.h in m32c-tdep.cTom Tromey2-4/+5
m32c-tdep.c is the last user of HAVE_STRING_H in gdb proper. It really ought to be using gdb_string.h instead, as the rest of gdb does. 2013-11-08 Tom Tromey <tromey@redhat.com> * m32c-tdep.c: Use gdb_string.h.
2013-11-08remove link.h checksTom Tromey4-266/+5
The removal of solib-sunos.c also removed the last user of various macros defined by configure. This patch removes the corresponding configure code. 2013-11-08 Tom Tromey <tromey@redhat.com> * configure, config.in: Rebuild. * configure.ac: Remove all link.h-related checks.
2013-11-08introduce common.m4Tom Tromey10-0/+1178
It has bothered me for a while that files in common/ use macros defined via autoconf checks, but rely on each configure.ac doing the proper checks independently. This patch introduces common/common.m4 which consolidates the checks assumed by code in common. The rule I propose is that if something is needed or used by common, it should be checked for by common.m4. However, if the check is also needed by gdb or gdbserver, then it should be duplicated there. Built and regtested on x86-64 Fedora 18 (though this is hardly the most strenuous case) and using the Fedora 18 mingw cross compilers. I also examined the config.in diffs to ensure that symbols did not go missing. 2013-11-08 Tom Tromey <tromey@redhat.com> * acinclude.m4: Include common.m4. * common/common.m4: New file. * configure, config.in: Rebuild. * configure.ac: Use GDB_AC_COMMON. 2013-11-08 Tom Tromey <tromey@redhat.com> * acinclude.m4: Include common.m4, codeset.m4. * configure, config.in: Rebuild. * configure.ac: Use GDB_AC_COMMON.
2013-11-08Change "set debug symtab-create" to take a verbosity level.Doug Evans10-16/+66
* NEWS: Mention that "set debug symtab-create" now accepts a verbosity level. * buildsym.c (end_symtab_from_static_block): Call set_symtab_primary to set the symtab's primary flag. * jit.c (finalize_symtab): Ditto. * mdebugread.c (psymtab_to_symtab_1): Ditto. * symfile.c (allocate_symtab): Only print debugging messages for symtab_create_debug levels 2 and higher. * symtab.c (symtab_create_debug): Change type to unsigned int. (set_symtab_primary): New function. (_initialize_symtab): Change "set debug symtab-create" to a zuinteger option. * symtab.h (set_symtab_primary): Declare. (symtab_create_debug): Update decl. doc/ * gdb.texinfo (Debugging Output): Update text for "set debug symtab-create".
2013-11-08constify to_detachTom Tromey26-38/+67
This patch constifies the target_ops method to_detach. This is a small cleanup, but also, I think, a bug-prevention fix, since gdb already acts as if the "args" argument here was const. In particular, top.c:quit_force calls kill_or_detach via iterate_over_inferiors. kill_or_detach calls target_detach, passing the same argument each time. So, if one of these methods was not const-correct, then kill_or_detach would change its behavior in a strange way. I could not build every target I modified in this patch. I've inspected them all by hand, though. Many targets do not use the "args" parameter; a couple pass it to atoi; and a few pass it on to the to_detach method of the target beneath. The only code that required a real change was in linux-nat.c, and that only needed the introduction of a temporary variable for const-correctness. 2013-11-08 Tom Tromey <tromey@redhat.com> * aix-thread.c (aix_thread_detach): Update. * corelow.c (core_detach): Update. * darwin-nat.c (darwin_detach): Update. * dec-thread.c (dec_thread_detach): Update. * gnu-nat.c (gnu_detach): Update. * go32-nat.c (go32_detach): Update. * inf-ptrace.c (inf_ptrace_detach): Update. * inf-ttrace.c (inf_ttrace_detach): Update. * linux-fork.c (linux_fork_detach): Update. * linux-fork.h (linux_fork_detach): Update. * linux-nat.c (linux_nat_detach): Update. Introduce "tem" local for const-correctness. * linux-thread-db.c (thread_db_detach): Update. * monitor.c (monitor_detach): Update. * nto-procfs.c (procfs_detach): Update. * procfs.c (procfs_detach): Update. * record.c (record_detach): Update. * record.h (record_detach): Update. * remote-m32r-sdi.c (m32r_detach): Update. * remote-mips.c (mips_detach): Update. * remote-sim.c (gdbsim_detach): Update. * remote.c (remote_detach_1, remote_detach) (extended_remote_detach): Update. * sol-thread.c (sol_thread_detach): Update. * target.c (target_detach): Make "args" const. (init_dummy_target): Update. * target.h (struct target_ops) <to_detach>: Make argument const. (target_detach): Likewise. * windows-nat.c (windows_detach): Update.
2013-11-07Fix email address in earlier entry.Doug Evans1-1/+1
2013-11-07PR 11786Doug Evans5-0/+172
* solib-svr4.c (svr4_exec_displacement): Ignore filesz, memsz, flags and align fields for PT_GNU_RELRO segments. testsuite/ * gdb.base/gcore-relro-pie.c: New file. * gdb.base/gcore-relro-pie.exp: New file.
2013-11-072013-11-07 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon1-2/+0
* ChangeLog: Fix blank lines between entry and PR.
2013-11-072013-11-07 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon7-4/+90
PR python/15747 * python/py-cmd.c: Add COMPLETE_EXPRESSION constant. 2013-11-07 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-cmd.exp: Add COMPLETE_EXPRESSION tests. * gdb.python/py-cmd.c: New File. 2013-11-07 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Commands In Python): Document COMPLETE_EXPRESSION constant.
2013-11-072013-11-07 Phil Muldoon <pmuldoon@redhat.com>Phil Muldoon7-20/+117
* python/py-breakpoint.c (bppy_get_temporary): New function. (bppy_init): New keyword: temporary. Parse it and set breakpoint to temporary if True. 2013-11-07 Phil Muldoon <pmuldoon@redhat.com> * gdb.python/py-breakpoint.exp: Add temporary breakpoint tests. 2013-11-07 Phil Muldoon <pmuldoon@redhat.com> * gdb.texinfo (Breakpoints In Python): Document temporary option in breakpoint constructor, and add documentation to the temporary attribute.
2013-11-072013-11-07 Jose E. Marchesi <jose.marchesi@oracle.com>Jose E. Marchesi2-1/+6
* sparc-tdep.c (sparc_analyze_control_transfer): Assertion removed to allow analyzing unconditional branch instructions with PC-relative offsets of zero.
2013-11-07Remove varobj_language_string, languages and varobj_languagesYao Qi6-55/+27
This patch does some cleanups, removing some language-related stuff. Note that mi_cmd_var_info_expression uses varobj_language_string, which is redundant, because we can get language name from lang->la_natural_name. varobj_language_string doesn't have "Ada", which looks like a bug to me. With this patch applied, this problem doesn't exist, because the language name is got from the same place (field la_natural_name). gdb: 2013-11-07 Yao Qi <yao@codesourcery.com> * mi/mi-cmd-var.c: Include "language.h". (mi_cmd_var_info_expression): Get language name from language_defn. * varobj.c (varobj_language_string): Remove. (variable_language): Remove declaration. (languages): Remove. (varobj_get_language): Change the type of return value. (variable_language): Remove. * varobj.h (enum varobj_languages): Remove. (varobj_language_string): Remove declaration. (varobj_get_language): Update declaration. gdb/doc: 2013-11-07 Yao Qi <yao@codesourcery.com> * gdb.texinfo (GDB/MI Variable Objects): Update doc about the output of "-var-info-expression".
2013-11-07New field 'la_natural_name' in struct language_defnYao Qi13-0/+39
This patch adds "natural name" of each supported languages, which will be used by the next patch. gdb: 2013-11-07 Yao Qi <yao@codesourcery.com> * language.h (struct language_defn) <la_natural_name>: New field. * ada-lang.c (ada_language_defn): Initialize field 'la_natural_name'. * c-lang.c (c_language_defn): Likewise. (cplus_language_defn, asm_language_defn): Likewise. * d-lang.c (d_language_defn): Likewise. * f-lang.c (f_language_defn): Likewise. * go-lang.c (go_language_defn): Likewise. * jv-lang.c (java_language_defn): Likewise. * language.c (unknown_language_defn ): Likewise. (auto_language_defn): Likewise. * m2-lang.c (m2_language_defn): Likewise. * objc-lang.c (objc_language_defn): Likewise. * opencl-lang.c (opencl_language_defn): Likewise. * p-lang.c (pascal_language_defn): Likewise.
2013-11-07Constify 'la_name' in struct language_defnYao Qi3-4/+11
Hi, When I add another name of language, I find field 'la_name' can be 'const char *'. This patch is to constify it. gdb: 2013-11-07 Yao Qi <yao@codesourcery.com> * language.c (language_str): Return const char *. (add_language): Add const to 'language_names' * language.h (struct language_defn) <la_name>: Add const. (language_str: Update declaration.
2013-11-06 * gdb.python/py-arch.exp: Tweak test name for bad memory access test.Doug Evans2-1/+5
2013-11-06S390: Fix TDB regset recognitionAndreas Arnez4-20/+44
When checking for the presence of the TDB regset, the current code interprets ENODATA from PTRACE_GETREGSET as an indication that the TDB regset *could* occur on this system, but the inferior stopped outside a transaction. However, the Linux kernel actually reports ENODATA even on systems without the transactional execution facility. Thus the logic is now changed to check the TE field in the HWCAP as well. This version also checks the existence of the TDB regset -- just to be on the safe side when running on TE-enabled hardware with a kernel that does not offer the TDB regset for some reason. gdb/ * s390-linux-nat.c (s390_read_description): Consider the TE field in the HWCAP for determining 'have_regset_tdb'. gdbserver/ * linux-s390-low.c (HWCAP_S390_TE): New define. (s390_arch_setup): Consider the TE field in the HWCAP for determining 'have_regset_tdb'.
2013-11-06gdb/dwarf2read.c: Sanity check DW_AT_sibling values.Will Newton2-2/+26
When reading objects with corrupt debug information it is possible that the sibling chain can form a loop, which leads to an infinite loop and memory exhaustion. Avoid this situation by disregarding and DW_AT_sibling values that point to a lower address than the current entry. gdb/ChangeLog: 2013-11-06 Will Newton <will.newton@linaro.org> PR gdb/12866 * dwarf2read.c (skip_one_die): Sanity check DW_AT_sibling values. (read_partial_die): Likewise.
2013-11-06Revert "2013-11-06 Muhammad Bilal <mbilal@codesourcery.com>"Muhammad Bilal2-6/+1
This reverts commit dd99d3d15a7d8f41e139dea7871c4fe44cd4b616.
2013-11-062013-11-06 Muhammad Bilal <mbilal@codesourcery.com>Muhammad Bilal2-1/+6
PR cli/15224 * top.c (init_main): 'set history save on' by default.
2013-11-06[DOC] shell startup files, clarifications and fixes.Pedro Alves2-11/+21
When Bash is started non-interactively, it runs the script pointed by the BASH_ENV environment variable, not .bashrc. While at it, mention Z shell in the warning too, and mention non-interactive mode explicitly. gdb/doc/ 2013-11-06 Pedro Alves <palves@redhat.com> * gdb.texinfo (Starting) <set/show startup-with-shell>: Mention non-interactive mode. (Environment) <shell startup files warning>: Mention non-interactive mode. Mention .zshenv for Z shell, and talk about BASH_ENV instead of .bashrc for BASH.
2013-11-062013-11-06 Muhammad Bilal <mbilal@codesourcery.com>Muhammad Bilal3-4/+9
PR cli/16122 * top.c (command_line_input): Unify interactivity tests to use input_from_terminal_p. * event-top.c (command_line_handler): Likewise.
2013-11-06Test on solib load and unloadYao Qi5-0/+260
This patch is to add a test case to on the performance of GDB handling load and unload of shared library. In V4: - Handle malloc and dlopen failure, - Document test parameters. In V3, there are some changes, - Adapt to perf test framework changes. - Measure load and unload separately. In V2, there are some changes, - A new proc gdb_produce_source to produce source files. I tried to move all source file generation code out of solib.exp, but compilation step still needs to know the generated file names. I have to hard-code the file names in compilation step, which is not good to me, so I give up on this moving. - SOLIB_NUMBER -> SOLIB_COUNT - New variable SOLIB_DLCLOSE_REVERSED_ORDER to control the order of iterating a list of shared libs to dlclose them. - New variable GDB_PERFORMANCE to enable these perf test cases. - Remove dlsym call in solib.c. - Update solib.py for the updated framework. gdb/testsuite/ * lib/gdb.exp (gdb_produce_source): New procedure. * gdb.perf/solib.c: New. * gdb.perf/solib.exp: New. * gdb.perf/solib.py: New.
2013-11-06Mention perf test in testsuite/READMEYao Qi2-0/+31
gdb/testsuite: 2013-11-06 Yao Qi <yao@codesourcery.com> * README: Mention performance tests.
2013-11-06Perf test frameworkYao Qi7-0/+491
This patch adds a basic framework to do performance testing for GDB. perftest.py is about the test case, testresult.py is about test results, and how are they saved. reporter.py is about how results are reported (in what format). measure.py is about measuring the execution of tests by a collection of measurements. In V5: - Simplify perftest.exp. In V4: - Rename MeasurementCPUTime to MeasurementCpuTime, - Add 'pass' in empty method, - Simplify string comparison in perftest.exp. - Rename GDB_PERFORMANCE to GDB_PERFTEST_MODE and rename GDB_PERFORMANCE_TIMEOUT to GDB_PERFTEST_TIMEOUT. In V3, there are some changes, - Add wall time measurement, cpu time measurement and vmsize measurement. - Rename SingleStatisticTestCase to TestCaseWithBasicMeasurements, which measures cpu time, wall time, and memory (vmsize). - GDB_PERFORMANCE=run|compile|both to control the mode of perf testing. - New GDB_PERFORMANCE_TIMEOUT to specify the timeout. - Split proc prepare to proc compile and startup. - Disable GC while doing measurements. In V2, there are several changes to address Doug and Sanimir's comments. - Add copyright header and docstring in perftest/__init__.py - Remove config.py. - Fix docstring format. - Rename classes "SingleVariable" to "SingleStatistic". - Don't extend gdb.Function in class TestCase. Add a new method run to run the test case so that we can pass parameters to test. - Allow to customize whether to warm up and to append test log. - Move time measurement into test harness. Add a new class Measurement for a specific measurement and a new class Measure to measure them for a given test case. - A new class ResultFactory to create instances of TestResult. - New file lib/perftest.exp, which is to do some preparations and cleanups to simplify each *.exp file. - Skip compilation step if GDB_PERFORMANCE_SKIP_COMPILE is set. gdb/testsuite/ 2013-11-06 Yao Qi <yao@codesourcery.com> * lib/perftest.exp: New. * gdb.perf/lib/perftest/__init__.py: New. * gdb.perf/lib/perftest/measure.py: New. * gdb.perf/lib/perftest/perftest.py: New. * gdb.perf/lib/perftest/reporter.py: New. * gdb.perf/lib/perftest/testresult.py: New.
2013-11-06New make target 'check-perf' and new dir gdb.perfYao Qi7-2/+41
We add a new dir gdb.perf in testsuite for all performance tests. However, current 'make check' logic will either run dejagnu in directory testsuite or iterate all gdb.* directories which has *.exp files. Both of them will run tests in gdb.perf. We want to achieve: 1) typical 'make check' should not run performance tests. In each perf test case, GDB_PERFTEST_MODE is checked. If it doesn't exist, return. 2) run perf tests easily. We add a new makefile target 'check-perf'. gdb: 2013-11-06 Yao Qi <yao@codesourcery.com> * Makefile.in (check-perf): New target. gdb/testsuite: 2013-11-06 Yao Qi <yao@codesourcery.com> * Makefile.in (check-perf): New target. * configure.ac (AC_OUTPUT): Output Makefile in gdb.perf. * configure: Re-generated. * gdb.perf/Makefile.in: New.
2013-11-05gdb/arm-tdep.c: Use filtered output in arm_print_float_info.Will Newton2-13/+19
gdb/ChangeLog: 2013-11-05 Will Newton <will.newton@linaro.org> PR gdb/7670 * arm-tdep.c (print_fpu_flags): Use filtered output routines. (arm_print_float_info): Likewise.
2013-11-04switch to fully parallel modeTom Tromey2-58/+56
This switches "make check" to fully parallel mode. One primary issue facing full parallelization is the overhead of "runtest". On my machine, if I "touch gdb.base/empty.exp", making a new file, and then "time runtest.exp", it takes 0.08 seconds. Multiply this by the 1008 (in my configuration) tests and you get ~80 seconds. This is the overhead that would theoretically be present if all tests were run in parallel. However, the problem isn't nearly as bad as this, for two reasons. First, you must divide by the number of jobs, assuming perfect parallelization -- reasonably true for small -j numbers, based on the results I see. Second, the current test suite parallelization approach bundles the tests, largely by directory, but also splitting up gdb.base into two halves. I was curious to see how the current bundling played out in practice, so I ran "make -j1 check RUNTEST='/bin/time runtest'". This invokes the parallel mode (thus the bundling) and then shows the time taken by each invocation of runtest. Then, I ran "/bin/time make -j3 check". (See below about -j2.) The time for the entire -j3 test run was the same as the time for "gdb.base1". What this means is that gdb.base1 is currently the time-limiting run, preventing further parallelization gains. So, I reason, whatever overhead we see from full parallelization will only be seen by "-j1" and "-j2". I then tried a -j2 test run. This does take longer than a -j3 build, meaning that the gdb.base1 job finishes and then proceeds to other runtest invocations. Finally I tried a -j2 test run with the appended patch. This was 9% slower than the -j2 run without the patch. I think that is a reasonable slowdown for what is probably a rare case. I believe this patch will yield faster test results for all -j values greater than 2. For -j3 on my machine, the test suite is a few seconds faster; I didn't try any larger -j values. For -j1, I went ahead and changed the Makefile so that, if no -j option is given, then the "check-single" mode is used. You can still use "make -j1 check" to get single-job parallel-mode, though of course there's no good reason to do so. This change is likely to speed up the plain "make check" scenario a little as we will now bypass dg-extract-results.sh. One drawback of this change is that "make -jN check" is now much more verbose. I generally only look at the .sum and .log files, but perhaps this will bother some. Another interesting question is scalability of the result. The slowest test, which limits the scalability, took 80.78 seconds. The mean of the remaining tests is 1.08 seconds. (Note that this is just a rough estimate, since there are still outliers.) This means we can run 80.78 / 1.08 =~ 74 tests in the time available. And, in this data set (slightly older than the above, but materially the same) there were 948 tests. So, I think the current test suite should scale ok up to about -j12. We could improve this number if need be by breaking up the biggest tests. 2013-11-04 Tom Tromey <tromey@redhat.com> * Makefile.in (TEST_DIRS): Remove. (TEST_TARGETS, check-parallel): Rewrite. (check-gdb.%, BASE1_FILES, BASE2_FILES, check-gdb.base%) (subdir_do, subdirs): Remove. (do-check-parallel, check/%): New targets. (clean): Remove outputs, temp, and cache directories. (saw_dash_j): New variable. (CHECK_TARGET): Use it. (check): Depend on all, site.exp. Rewrite. (check-single): Remove dependencies. (slow_tests, all_tests, reordered_tests): New variables.
2013-11-04fix some fission testsTom Tromey5-5/+28
A couple of Fission tests rely on the current directory layout. This assumption is not valid in parallel mode. This patch fixes the problem by removing the relative directory from the .S files and instead having the tests set debug-file-directory before opening the main file. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.dwarf2/fission-base.S: Remove "gdb.dwarf/". * gdb.dwarf2/fission-base.exp: Set debug-file-directory before loading binfile. * gdb.dwarf2/fission-loclists.S: Remove "gdb.dwarf/". * gdb.dwarf2/fission-loclists.exp: Set debug-file-directory before loading binfile.
2013-11-04fix some "exec" testsTom Tromey7-15/+36
A few tests run an inferior that execs some other program. The name of this exec'd program is compiled in. These tests assume the current test suite directory layout, but fail in parallel mode. This patch fixes these tests by letting the .exp files pass in the directory names at compile time. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/foll-exec.c (main): Use BASEDIR. * gdb.base/foll-exec.exp: Define BASEDIR during compilation. * gdb.base/foll-vfork.c (main): Use BASEDIR. * gdb.base/foll-vfork.exp: Define BASEDIR during compilation. * gdb.multi/bkpt-multi-exec.c (main): Use BASEDIR. * gdb.multi/bkpt-multi-exec.exp: Define BASEDIR during compilation.
2013-11-04fix argv0-symlink.exp for parallel modeTom Tromey2-2/+14
argv0-symlink.exp doesn't work properly if standard_output_file puts files into a per-test subdirectory. That's because it assumes that files appear in $subdir, which is no longer true. This patch fixes the problem by computing the correct directory at runtime. Tested both with and without GDB_PARALLEL on x86-64 Fedora 18. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/argv0-symlink.exp: Compute executable's directory dynamically.
2013-11-04make gdb.asm parallel-safeTom Tromey2-6/+13
This fixes gdb.asm to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.asm/asm-source.exp: Use standard_output_file.
2013-11-04fix up gdb.serverTom Tromey2-7/+18
This fixes gdb.server to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.server/file-transfer.exp: Use standard_output_file.
2013-11-04introduce relative_filename and use itTom Tromey6-28/+56
This introduces a new relative_filename proc to gdb.exp and changes some tests to use it. This helps make these tests parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/fullname.exp: Use standard_output_file, relative_filename. * gdb.base/hashline1.exp: Use standard_testfile, standard_output_file, relative_filename, clean_restart. * gdb.base/hashline2.exp: Use standard_testfile, standard_output_file. * gdb.base/hashline3.exp: Use standard_testfile, standard_output_file, relative_filename. * lib/gdb.exp (relative_filename): New proc.
2013-11-04update fileio testTom Tromey3-35/+52
This updates the fileio test to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/fileio.c (test_open, test_write, test_read) (test_lseek, test_close, test_stat, test_fstat) (test_isatty, test_system, test_rename, test_unlink): Use OUTDIR define. * gdb.base/fileio.exp: Define OUTDIR during compilation. Use standard_output_file.
2013-11-04update checkpoint testTom Tromey3-17/+26
This fixes the "checkpoint" test to use the standard output directory. This makes the test be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/checkpoint.c (main): Use PI_TXT and COPY1_TXT defines. * gdb.base/checkpoint.exp: Define PI_TXT and COPY1_TXT during compilation. Use prepare_for_testing, standard_output_file.
2013-11-04simple changes in gdb.baseTom Tromey15-139/+208
This makes more changes in gdb.base to make it parallel-safe. I think the changes in this particular patch are relatively straightforward, so I've grouped them all together. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.base/advance.exp: Use standard_testfile and prepare_for_testing. * gdb.base/bigcore.exp: Use standard_output_file. "cd" to appropriate directory when local. * gdb.base/dump.exp: Use standard_output_file. Update all "dump" and "restore" filenames. * gdb.base/interact.exp: Use standard_output_file. * gdb.base/jit-so.exp: Don't download file when local. * gdb.base/jit.exp (compile_jit_test): Don't download file when local. * gdb.base/list.exp: Use gdb_remote_download. * gdb.base/maint.exp: Use standard_output_file. * gdb.base/prelink.exp: Use standard_output_file. * gdb.base/save-bp.exp: Use standard_output_file. * gdb.base/sepdebug.exp: Use standard_testfile, standard_output_file. (test_different_dir): Don't declare objdir. * gdb.base/solib-search.exp: Use standard_output_file. * gdb.base/step-line.exp: Use gdb_remote_download. * gdb.base/trace-commands.exp: Use standard_output_file.
2013-11-04fix up gdb.traceTom Tromey4-25/+71
This fixes gdb.trace to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.trace/mi-traceframe-changed.exp: Pass -DTFILE_DIR to compilation. Use standard_output_file. (test_tfind_tfile): Update. * gdb.trace/tfile.c (write_basic_trace_file) (write_error_trace_file): Use TFILE_DIR. * gdb.trace/tfile.exp: Pass -DTFILE_DIR to compilation. Use standard_output_file.
2013-11-04fix up gdb.miTom Tromey4-11/+31
This fixes gdb.mi to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.mi/mi-cmd-param-changed.exp (test_command_param_changed): Use "dwarf2 always-disassemble" for the "maint set" test. * gdb.mi/mi-file-transfer.exp (test_file_transfer): Use standard_output_file. * gdb.mi/mi-logging.exp: Use standard_output_file.
2013-11-04fix up gdb.xmlTom Tromey3-20/+46
This fixes the gdb.xml tests to be parallel-safe. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.xml/tdesc-arch.exp: Use standard_output_file. Make downloads conditional on remote host. (set_arch): Likewise. * gdb.xml/tdesc-regs.exp: Use gdb_remote_download. (load_description): Use standard_output_file.
2013-11-04fix up gdb.gdbTom Tromey3-4/+22
This fixes the gdb.gdb tests to be parallel-safe, by ensuring that the new "xgdb" file ends up in the standard output directory during the tests. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.gdb/selftest.exp: Use standard_output_file. * lib/selftest-support.exp (do_self_tests): Use standard_output_file.
2013-11-04fix weird.exp for parallel testingTom Tromey2-1/+7
This fixes up gdb.stabs/weird.exp for parallel testing. This just means using gdb_remote_download and standard_output_file, so that the tests end up in the right place. 2013-11-04 Tom Tromey <tromey@redhat.com> * gdb.stabs/weird.exp: Use gdb_remote_download and standard_output_file.