summaryrefslogtreecommitdiff
path: root/gdb/testsuite
Commit message (Collapse)AuthorAgeFilesLines
* 2013-10-21 Jose E. Marchesi <jose.marchesi@oracle.com>jemarch2013-10-213-3/+16
| | | | | | | | | | | PR gdb/15986 * gdb.base/run.c (main): gdb_get_line_number tag added for commands.exp. (factorial): Likewise. * gdb.base/commands.exp (watchpoint_command_test): Use gdb_get_line_number in order to determine the locations in run.c where local_var is detected to go out of scope.
* 2013-10-21 Jose E. Marchesi <jose.marchesi@oracle.com>jemarch2013-10-212-1/+19
| | | | | * gdb.base/gnu_vector.exp: Care about endianness when casting scalars to vectors.
* * lib/gdb.exp (build_executable_from_specs): Remove duplicate setTom Tromey2013-10-182-2/+5
| | | | of "binfile".
* Hardware watchpoints turned off, inferior not yet started.aburgess2013-10-182-0/+28
| | | | | | | | | | | | | | | | | https://sourceware.org/ml/gdb-patches/2013-10/msg00477.html gdb/ChangeLog * breakpoint.c (update_watchpoint): If hardware watchpoints are forced off, downgrade them to software watchpoints if possible, and error out if not possible. (watch_command_1): Move watchpoint type selection closer to watchpoint creation, and extend the comments. gdb/testsuite/ChangeLog * gdb.base/watchpoints.exp: Add test for setting software watchpoints of different types before starting the inferior.
* [gdb/16062] stepi sometimes doesn't make progressPedro Alves2013-10-183-0/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I noticed something odd while doing "stepi" over a fork syscall: ... (gdb) set disassemble-next-line on ... (gdb) si 0x000000323d4ba7c2 131 pid = ARCH_FORK (); 0x000000323d4ba7a4 <__libc_fork+132>: 64 4c 8b 04 25 10 00 00 00 mov %fs:0x10,%r8 0x000000323d4ba7ad <__libc_fork+141>: 31 d2 xor %edx,%edx 0x000000323d4ba7af <__libc_fork+143>: 4d 8d 90 d0 02 00 00 lea 0x2d0(%r8),%r10 0x000000323d4ba7b6 <__libc_fork+150>: 31 f6 xor %esi,%esi 0x000000323d4ba7b8 <__libc_fork+152>: bf 11 00 20 01 mov $0x1200011,%edi 0x000000323d4ba7bd <__libc_fork+157>: b8 38 00 00 00 mov $0x38,%eax => 0x000000323d4ba7c2 <__libc_fork+162>: 0f 05 syscall 0x000000323d4ba7c4 <__libc_fork+164>: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 0x000000323d4ba7ca <__libc_fork+170>: 0f 87 2b 01 00 00 ja 0x323d4ba8fb <__libc_fork+475> (gdb) si 0x000000323d4ba7c4 131 pid = ARCH_FORK (); 0x000000323d4ba7a4 <__libc_fork+132>: 64 4c 8b 04 25 10 00 00 00 mov %fs:0x10,%r8 0x000000323d4ba7ad <__libc_fork+141>: 31 d2 xor %edx,%edx 0x000000323d4ba7af <__libc_fork+143>: 4d 8d 90 d0 02 00 00 lea 0x2d0(%r8),%r10 0x000000323d4ba7b6 <__libc_fork+150>: 31 f6 xor %esi,%esi 0x000000323d4ba7b8 <__libc_fork+152>: bf 11 00 20 01 mov $0x1200011,%edi 0x000000323d4ba7bd <__libc_fork+157>: b8 38 00 00 00 mov $0x38,%eax 0x000000323d4ba7c2 <__libc_fork+162>: 0f 05 syscall => 0x000000323d4ba7c4 <__libc_fork+164>: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 0x000000323d4ba7ca <__libc_fork+170>: 0f 87 2b 01 00 00 ja 0x323d4ba8fb <__libc_fork+475> (gdb) si 0x000000323d4ba7c4 131 pid = ARCH_FORK (); 0x000000323d4ba7a4 <__libc_fork+132>: 64 4c 8b 04 25 10 00 00 00 mov %fs:0x10,%r8 0x000000323d4ba7ad <__libc_fork+141>: 31 d2 xor %edx,%edx 0x000000323d4ba7af <__libc_fork+143>: 4d 8d 90 d0 02 00 00 lea 0x2d0(%r8),%r10 0x000000323d4ba7b6 <__libc_fork+150>: 31 f6 xor %esi,%esi 0x000000323d4ba7b8 <__libc_fork+152>: bf 11 00 20 01 mov $0x1200011,%edi 0x000000323d4ba7bd <__libc_fork+157>: b8 38 00 00 00 mov $0x38,%eax 0x000000323d4ba7c2 <__libc_fork+162>: 0f 05 syscall => 0x000000323d4ba7c4 <__libc_fork+164>: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax 0x000000323d4ba7ca <__libc_fork+170>: 0f 87 2b 01 00 00 ja 0x323d4ba8fb <__libc_fork+475> (gdb) si 0x000000323d4ba7ca 131 pid = ARCH_FORK (); 0x000000323d4ba7a4 <__libc_fork+132>: 64 4c 8b 04 25 10 00 00 00 mov %fs:0x10,%r8 0x000000323d4ba7ad <__libc_fork+141>: 31 d2 xor %edx,%edx 0x000000323d4ba7af <__libc_fork+143>: 4d 8d 90 d0 02 00 00 lea 0x2d0(%r8),%r10 0x000000323d4ba7b6 <__libc_fork+150>: 31 f6 xor %esi,%esi 0x000000323d4ba7b8 <__libc_fork+152>: bf 11 00 20 01 mov $0x1200011,%edi 0x000000323d4ba7bd <__libc_fork+157>: b8 38 00 00 00 mov $0x38,%eax 0x000000323d4ba7c2 <__libc_fork+162>: 0f 05 syscall 0x000000323d4ba7c4 <__libc_fork+164>: 48 3d 00 f0 ff ff cmp $0xfffffffffffff000,%rax => 0x000000323d4ba7ca <__libc_fork+170>: 0f 87 2b 01 00 00 ja 0x323d4ba8fb <__libc_fork+475> Notice how the third "si" didn't actually make progress. Turning on infrun and lin-lwp debug, we see: (gdb) infrun: clear_proceed_status_thread (process 5252) infrun: proceed (addr=0xffffffffffffffff, signal=144, step=1) infrun: resume (step=1, signal=0), trap_expected=0, current thread [process 5252] at 0x323d4ba7c4 LLR: Preparing to step process 5252, 0, inferior_ptid process 5252 RC: Not resuming sibling process 5252 (not stopped) LLR: PTRACE_SINGLESTEP process 5252, 0 (resume event thread) sigchld infrun: wait_for_inferior () linux_nat_wait: [process -1], [] LLW: enter LNW: waitpid(-1, ...) returned 5252, No child processes LLW: waitpid 5252 received Child exited (stopped) LLW: Candidate event Child exited (stopped) in process 5252. SEL: Select single-step process 5252 LLW: exit infrun: target_wait (-1, status) = infrun: 5252 [process 5252], infrun: status->kind = stopped, signal = SIGCHLD infrun: infwait_normal_state infrun: TARGET_WAITKIND_STOPPED infrun: stop_pc = 0x323d4ba7c4 infrun: random signal 20 infrun: stepi/nexti infrun: stop_stepping So the inferior got a SIGCHLD (because the fork child exited while we're doing 'si'), and since that signal is set to "nostop noprint pass" (by default), it's considered a random signal, so it should not cause a stop. But, it resulted in an immediate a stop_stepping call anyway. So the single-step never really finished. This is a regression caused by: [[PATCH] Do not respawn signals, take 2.] https://sourceware.org/ml/gdb-patches/2012-06/msg00702.html Specifically, caused by this change (as mentioned in the "the lost step issue first" part of that mail): diff --git a/gdb/infrun.c b/gdb/infrun.c index 53db335..3e8dbc8 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -4363,10 +4363,8 @@ process_event_stop_test: (leaving the inferior at the step-resume-breakpoint without actually executing it). Either way continue until the breakpoint is really hit. */ - keep_going (ecs); - return; } - + else /* Handle cases caused by hitting a breakpoint. */ { That made GDB fall through to the > /* In all-stop mode, if we're currently stepping but have stopped in > some other thread, we need to switch back to the stepped thread. */ > if (!non_stop) part. However, if we don't have a stepped thread to get back to, we'll now also fall through to all the "stepping" tests. For line stepping, that'll turn out okay, as we'll just end up realizing the thread is still in the stepping range, and needs to be re-stepped. However, for stepi/nexti, we'll reach: if (ecs->event_thread->control.step_range_end == 1) { /* It is stepi or nexti. We always want to stop stepping after one instruction. */ if (debug_infrun) fprintf_unfiltered (gdb_stdlog, "infrun: stepi/nexti\n"); ecs->event_thread->control.stop_step = 1; print_end_stepping_range_reason (); stop_stepping (ecs); return; } and stop, even though the thread actually made no progress. The fix is to restore the keep_going call, but put it after the "switch back to the stepped thread" code, and before the stepping tests. Tested on x86_64 Fedora 17, native and gdbserver. New test included. gdb/ 2013-10-18 Pedro Alves <palves@redhat.com> PR gdb/16062 * infrun.c (handle_inferior_event): Keep going if we got a random signal we should not stop for, instead of falling through to the step tests. gdb/testsuite/ 2013-10-18 Pedro Alves <palves@redhat.com> PR gdb/16062 * gdb.threads/stepi-random-signal.c: New file. * gdb.threads/stepi-random-signal.exp: New file.
* * gdb.mi/mi-breakpoint-changed.exp (test_insert_delete_modify):Maciej W. Rozycki2013-10-173-2/+8
| | | | | Fix comment typo. * lib/gdb.exp (gdb_init): Likewise.
* fix for PR gdb/15995Tom Tromey2013-10-172-0/+10
| | | | | | | | | | | | | | | | | | | | | This patch fixes PR gdb/15995. The bug here is that gdb's printf command does not flush the output stream. This makes a printf that is not newline-terminated interleave incorrectly with other forms of output, such as that generated via a call to an external program using "shell". I note that the "output" command already does this flushing. The fix is to call gdb_flush in printf_command. Built and regtested on x86-64 Fedora 18. New test case included. PR gdb/15995: * printcmd.c (printcmd): Call gdb_flush. * gdb.base/printcmds.exp (test_printf): Test printf flushing.
* * gdb.dwarf2/dwzbuildid.exp (write_dwarf_file): Pass explicit testTom Tromey2013-10-142-1/+7
| | | | name to gdb_test_no_output.
* Improve Executable displayed path (PR 15415 regression kind #2)Jan Kratochvil2013-10-132-0/+14
| | | | | | | | | | | | | | | | | | | | gdb/ 2013-10-13 Jan Kratochvil <jan.kratochvil@redhat.com> Canonicalize directories for EXEC_FILENAME. * exec.c (exec_file_attach): Use gdb_realpath_keepfile for exec_filename. * utils.c (gdb_realpath_keepfile): New function. * utils.h (gdb_realpath_keepfile): New declaration. gdb/testsuite/ 2013-10-13 Jan Kratochvil <jan.kratochvil@redhat.com> Canonicalize directories for EXEC_FILENAME. * gdb.base/argv0-symlink.exp (kept file symbolic link name for info inferiors): New. (kept directory symbolic link name): Setup kfail. (kept directory symbolic link name for info inferiors): New.
* testsuite/ChangeLog:Ulrich Weigand2013-10-113-0/+478
| | | | | | | 2013-10-11 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.arch/s390-multiarch.exp: New file. * gdb.arch/s390-multiarch.c: New file.
* Adjust gdb.ada/mi_catch_ex.exp to use GDB/MI catch commands...Joel Brobecker2013-10-112-4/+18
| | | | | | | | | | | ... in place of the CLI "catch ..." commands. The latter were used because the GDB/MI equivalents were not available at the time. gdb/testsuite/ChangeLog: * gdb.ada/mi_catch_ex.exp: Adjusts all "catch ..." tests to use the appropriate GDB/MI command instead, and verify the test output.
* warn if "source" fails to open the file when from_tty == 0Joel Brobecker2013-10-113-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consider the following example: % gdb -q -batch -ex 'source nonexistant-file' [nothing] One would have at least expected the debugger to warn about not finding the file, similar to the error shown when using a more interactive mode. Eg: (gdb) source nonexistant-file nonexistant-file: No such file or directory. Not raising an error appears to be intentional, presumably in order to prevent this situation from stoping the execution of a GDB script. But the lack of at least a warning makes it harder for a user to diagnose any issue, if the file was expected to be there and readable. This patch adds a warning in that case: % gdb -q -batch -ex 'source nonexistant-file' warning: nonexistant-file: No such file or directory. gdb/ChangeLog: * utils.h (perror_warning_with_name): Add declaration. * utils.c (perror_warning_with_name): New function. * cli/cli-cmds.c (source_script_with_search): Add call to perror_warning_with_name if from_tty is nul. gdb/testsuite/ChangeLog: * gdb.base/source-nofile.gdb: New file. * gdb.base/source.exp: Add two tests verifying the behavior when the "source" command is given a non-existant filename.
* gdb/testsuite/qiyao2013-10-113-1/+18
| | | | | | | | * gdb.mi/mi-catch-load.c: Remove the include of "dlfcn.h". [__WIN32__]: Include "windows.h" and define macro 'dlopen' and 'dlclose'. [!__WIN32__]: Include "dlfcn.h". * gdb.mi/mi-catch-load.exp: Set up kfail.
* 2013-10-10 Andreas Arnez <arnez@linux.vnet.ibm.com>Andreas Krebbel2013-10-102-7/+12
| | | | | * lib/gdb.exp (gdb_core_cmd): Replace fixed string "re-load generated corefile" by argument "$test".
* Stop using errno values around target_xfer interfaces and memory errors.Pedro Alves2013-10-092-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | target_read_memory & friends build on top of target_read (thus on top of the target_xfer machinery), but turn all errors to EIO, an errno value. I think we'd better convert all these to return a target_xfer_error too, like target_xfer_partial in a previous patch. The patch starts by doing that. (The patch does not add a enum target_xfer_error value for '0'/no error, and likewise does not change the return type of several of these functions to enum target_xfer_error, because different functions return '0' with different semantics.) I audited the tree for memory_error calls, EIO checks, places where GDB hardcodes 'errno = EIO', and also for strerror calls. What I found is that nowadays there's really no need to handle random errno values, other than the EIOs gdb itself hardcodes. No doubt errno values would appear in common code back in the day when target_xfer_memory was the main interface to access memory, but nowadays, any errno value that deprecated interface could return is just absorved by default_xfer_partial: else if (xfered == 0 && errno == 0) /* "deprecated_xfer_memory" uses 0, cross checked against ERRNO as one indication of an error. */ return 0; else return -1; There are two places in the code that check for EIO and print "out of bounds", and defer to strerror for other errors. That's c-lang.c:c_get_string, and valprint.c.:val_print_string. AFAICT, the strerror branch can never be reached nowadays, as the only error possible to get at those points is EIO, given that it's GDB itself that set that errno value (in target_read_memory, etc.). breakpoint.c:insert_bp_location always prints the error val as if an errno, returned by target_insert_breakpoint, with strerr. Now the error here is either always EIO for mem-break.c targets (again hardcoded by the target_read_memory/target_write_memory functions), so this always prints "Input/output error" or similar (depending on host), or, for remote targets (and probably others), this gem: Error accessing memory address 0x80200400: Unknown error -1. This patch makes these 3 places print the exact same error memory_error prints. This changes output, but I think this is better, for making memory error output consistent with other commands, and, it means we have a central place to tweak for memory errors. E.g., this changes: Cannot insert breakpoint 1. Error accessing memory address 0x5fc660: Input/output error. to: Cannot insert breakpoint 1. Cannot access memory at address 0x5fc660 Which I find pretty much acceptable. Surprisingly, only py-prettyprint.exp had a regression, for needing an adjustment. I also grepped the testsuite for the old errors, and found no other hits. Now that errno values aren't used anywhere in any of these memory access related routines, I made memory_error itself take a target_xfer_error instead of an errno. The new target_xfer_memory_error function added recently is no longer necessary, and is thus removed. Tested on x86_64 Fedora 17, native and gdbserver. gdb/ 2013-10-09 Pedro Alves <palves@redhat.com> * breakpoint.c (insert_bp_location): Use memory_error_message to build the memory error string. * c-lang.c: Include "gdbcore.h". (c_get_string): Use memory_error to throw error. (target_xfer_memory_error): Delete. (memory_error_message): New, factored out from target_xfer_memory_error. (memory_error): Change parameter type to target_xfer_error. Rewrite. (read_memory): Use memory_error instead of target_xfer_memory_error. * gdbcore.h: Include "target.h". (memory_error): Change parameter type to target_xfer_error. (memory_error_message): Declare function. * target.c (target_read_memory, target_read_stack) (target_write_memory, target_write_raw_memory): Return TARGET_XFER_E_IO on error. Adjust comments. (get_target_memory): Pass TARGET_XFER_E_IO to memory_error, instead of EIO. * target.h (target_read, target_insert_breakpoint) (target_remove_breakpoint): Adjust comments. * valprint.c (partial_memory_read): Rename parameter, and adjust comment. (val_print_string): Use memory_error_message to build the memory error string. gdb/testsuite/ 2013-10-09 Pedro Alves <palves@redhat.com> * gdb.python/py-prettyprint.exp (run_lang_tests): Adjust expected output.
* Uniquefy gdb.base/catch-syscall.exp test names.Pedro Alves2013-10-092-112/+147
| | | | | | | | | | | | | | | | | | | catch-syscall.exp has a series of duplicated output in gdb.sum. This patch makes sure all test names are unique, using with_test_prefix. Tested on x86_64 Fedora 17. gdb/testsuite/ 2013-10-09 Pedro Alves <palves@redhat.com> * gdb.base/catch-syscall.exp (test_catch_syscall_without_args) (test_catch_syscall_with_args, test_catch_syscall_with_many_args) (test_catch_syscall_with_wrong_args) (test_catch_syscall_restarting_inferior) (test_catch_syscall_fail_nodatadir) (test_catch_syscall_without_args_noxml) (test_catch_syscall_with_args_noxml) (test_catch_syscall_with_wrong_args_noxml): Use with_test_prefix.
* fix PR symtab/15597Tom Tromey2013-10-083-5/+237
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch fixes gdb PR symtab/15597. The bug is that the .gnu_debugaltlink section includes the build-id of the alt file, but gdb does not use it. This patch fixes the problem by changing gdb to do what it ought to always have done: verify the build id of the file found using the filename in .gnu_debugaltlink; and if that does not match, try to find the correct debug file using the build-id and debug-file-directory. This patch touches BFD. Previously, gdb had its own code for parsing .gnu_debugaltlink; I changed it to use the BFD functions after those were introduced. However, the BFD functions are incorrect -- they assume that .gnu_debugaltlink is formatted like .gnu_debuglink. However, it it is not. Instead, it consists of a file name followed by the build-id -- no alignment, and the build-id is not a CRC. Fixing this properly is a bit of a pain. But, because separate_alt_debug_file_exists just has a FIXME for the build-id case, I did not fix it properly. Instead I introduced a hack. This leaves BFD working just as well as it did before my patch. I'm willing to do something better here but I could use some guidance as to what. It seems that the build-id code in BFD is largely punted on. FWIW gdb is the only user of bfd_get_alt_debug_link_info outside of BFD itself. I moved the build-id logic out of elfread.c and into a new file. This seemed cleanest to me. Writing a test case was a bit of a pain. I added a couple new features to the DWARF assembler to handle this. Built and regtested on x86-64 Fedora 18. * bfd-in2.h: Rebuild. * opncls.c (bfd_get_alt_debug_link_info): Add buildid_len parameter. Change type of buildid_out. Update. (get_alt_debug_link_info_shim): New function. (bfd_follow_gnu_debuglink): Use it. * Makefile.in (SFILES): Add build-id.c. (HFILES_NO_SRCDIR): Add build-id.h. * build-id.c: New file, largely from elfread.c. Modified most functions. * build-id.h: New file. * dwarf2read.c (dwarf2_get_dwz_file): Update for change to bfd_get_alt_debug_link_info. Verify dwz file's build-id. Search for dwz file using build-id. * elfread.c (build_id_bfd_get, build_id_verify) (build_id_to_debug_filename, find_separate_debug_file): Remove. * gdb.dwarf2/dwzbuildid.exp: New file. * lib/dwarf.exp (Dwarf::_section): Add "flags" and "type" parameters. (Dwarf::_defer_output): Change "section" parameter to "section_spec"; update. (Dwarf::gnu_debugaltlink, Dwarf::_note, Dwarf::build_id): New procs.
* gdb.ada/mi_catch_ex.exp: Make test names unique.Joel Brobecker2013-10-082-4/+8
| | | | | | gdb/testsuite/ChangeLog: * gdb.ada/mi_catch_ex.exp: Make "mi_execute_to" test names unique.
* * lib/mi-support.exp (varobj_tree::walk_tree): Set _root_idxTom Tromey2013-10-072-0/+8
| | | | to 0.
* This patch adds a new convenience variable called "$_exitsignal", whichsergiodj2013-10-075-0/+177
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | will hold the signal number when the inferior terminates due to the uncaught signal. I've made modifications on infrun.c:handle_inferior_event such that $_exitcode gets cleared when the inferior signalled, and vice-versa. This assumption was made because the variables are mutually exclusive, i.e., when the inferior terminates because of an uncaught signal it is not possible for it to return. I have also made modifications such that when a corefile is loaded, $_exitsignal gets set to the uncaught signal that "killed" the inferior, and $_exitcode is cleared. The patch also adds a NEWS entry, documentation bits, and a testcase. The documentation entry explains how to use $_exitsignal and $_exitcode in a GDB script, by making use of the new $_isvoid convenience function. gdb/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * NEWS: Mention new convenience variable $_exitsignal. * corelow.c (core_open): Reset exit convenience variables. Set $_exitsignal to the uncaught signal which generated the corefile. * infrun.c (handle_inferior_event): Reset exit convenience variables. Set $_exitsignal for TARGET_WAITKIND_SIGNALLED. (clear_exit_convenience_vars): New function. * inferior.h (clear_exit_convenience_vars): New prototype. gdb/testsuite/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/corefile.exp: Test whether $_exitsignal is set and $_exitcode is void when opening a corefile. * gdb.base/exitsignal.exp: New file. * gdb.base/segv.c: Likewise. * gdb.base/normal.c: Likewise. gdb/doc/ 2013-10-06 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.texinfo (Convenience Variables): Document $_exitsignal. Update entry for $_exitcode.
* Add support for --start option in -exec-run GDB/MI command.Joel Brobecker2013-10-043-0/+73
| | | | | | | | | | | | | | | | | | | | gdb/ChangeLog: * mi/mi-main.c (run_one_inferior): Add function description. Make ARG a pointer to an integer whose value determines whether we should "run" or "start" the program. (mi_cmd_exec_run): Add handling of the "--start" option. Reject all other command-line options. * NEWS: Add entry for "-exec-run"'s new "--start" option. gdb/doc/ChangeLog: * gdb.texinfo (GDB/MI Program Execution): Document "-exec-run"'s new "--start" option. gdb/testsuite/ChangeLog: * gdb.mi/mi-start.c, gdb.mi/mi-start.exp: New files.
* gdb/testsuite/yufeng2013-10-022-1/+12
| | | | | * gdb.trace/entry-values.exp: Modify regular expression to scan for 'bl' instruction instead of 'call' for ARM and AArch64 targets.
* Print registers not saved in the frame as "<not saved>" instead of ↵Pedro Alves2013-10-023-4/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "<optimized out>". Currently, in some scenarios, GDB prints <optimized out> when printing outer frame registers. An <optimized out> register is a confusing concept. What this really means is that the register is call-clobbered, or IOW, not saved by the callee. This patch makes GDB say that instead. Before patch: (gdb) p/x $rax $1 = <optimized out> (gdb) info registers rax rax <optimized out> After patch: (gdb) p/x $rax $1 = <not saved> (gdb) info registers rax rax <not saved> However, if for some reason the debug info describes a variable as being in such a register (**), we still want to print <optimized out> when printing the variable. IOW, <not saved> is reserved for inspecting registers at the machine level. The patch uses lval_register+optimized_out to encode the not saved registers, and makes it so that optimized out variables always end up in !lval_register values. ** See <https://sourceware.org/ml/gdb-patches/2012-08/msg00787.html>. Current/recent enough GCC doesn't mark variables/arguments as being in call-clobbered registers in the ranges corresponding to function calls, while older GCCs did. Newer GCCs will just not say where the variable is, so GDB will end up realizing the variable is optimized out. frame_unwind_got_optimized creates not_lval optimized out registers, so by default, in most cases, we'll see <optimized out>. value_of_register is the function eval.c uses for evaluating OP_REGISTER (again, $pc, etc.), and related bits. It isn't used for anything else. This function makes sure to return lval_register values. The patch makes "info registers" and the MI equivalent use it too. I think it just makes a lot of sense, as this makes it so that when printing machine registers ($pc, etc.), we go through a central function. We're likely to need a different encoding at some point, if/when we support partially saved registers. Even then, I think value_of_register will still be the spot to tag the intention to print machine register values differently. value_from_register however may also return optimized out lval_register values, so at a couple places where we're computing a variable's location from a dwarf expression, we convert the resulting value away from lval_register to a regular optimized out value. Tested on x86_64 Fedora 17 gdb/ 2013-10-02 Pedro Alves <palves@redhat.com> * cp-valprint.c (cp_print_value_fields): Adjust calls to val_print_optimized_out. * jv-valprint.c (java_print_value_fields): Likewise. * p-valprint.c (pascal_object_print_value_fields): Likewise. * dwarf2loc.c (dwarf2_evaluate_loc_desc_full) <DWARF_VALUE_REGISTER>: If the register was not saved, return a new optimized out value. * findvar.c (address_from_register): Likewise. * frame.c (put_frame_register): Tweak error string to say the register was not saved, rather than optimized out. * infcmd.c (default_print_one_register_info): Adjust call to val_print_optimized_out. Use value_of_register instead of get_frame_register_value. * mi/mi-main.c (output_register): Use value_of_register instead of get_frame_register_value. * valprint.c (valprint_check_validity): Likewise. (val_print_optimized_out): New value parameter. If the value is lval_register, print <not saved> instead. (value_check_printable, val_print_scalar_formatted): Adjust calls to val_print_optimized_out. * valprint.h (val_print_optimized_out): New value parameter. * value.c (struct value) <optimized_out>: Extend comment. (error_value_optimized_out): New function. (require_not_optimized_out): Use it. Use a different string for lval_register values. * value.h (error_value_optimized_out): New declaration. * NEWS: Mention <not saved>. gdb/testsuite/ 2013-10-02 Pedro Alves <palves@redhat.com> * gdb.dwarf2/dw2-reg-undefined.exp <pattern_rax_rbx_rcx_print, pattern_rax_rbx_rcx_info>: Set to "<not saved>". * gdb.mi/mi-reg-undefined.exp (opt_out_pattern): Delete. (not_saved_pattern): New. Replace use of the former with the latter. gdb/doc/ 2013-10-02 Pedro Alves <palves@redhat.com> * gdb.texinfo (Registers): Expand description of saved registers in frames. Explain <not saved>.
* Teach the testsuite that GDBserver reliably reports program exits.Pedro Alves2013-10-025-6/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Running catch-syscall.exp against a gdbserver that actually supports it, we get: FAIL: gdb.base/catch-syscall.exp: continue until exit (the program exited) FAIL: gdb.base/catch-syscall.exp: continue until exit (the program exited) FAIL: gdb.base/catch-syscall.exp: continue until exit (the program exited) FAIL: gdb.base/catch-syscall.exp: continue until exit at catch syscall with unused syscall (mlock) (the program exited) FAIL: gdb.base/catch-syscall.exp: continue until exit (the program exited) The fail pattern is: Catchpoint 2 (call to syscall exit_group), 0x000000323d4baa29 in _exit () from /lib64/libc.so.6 (gdb) PASS: gdb.base/catch-syscall.exp: program has called exit_group delete breakpoints Delete all breakpoints? (y or n) y (gdb) info breakpoints No breakpoints or watchpoints. (gdb) break exit Breakpoint 3 at 0x323d438bf0 (gdb) continue Continuing. [Inferior 1 (process 21081) exited normally] That "break exit" + "continue" comes from: > # gdb_continue_to_end: > # The case where the target uses stubs has to be handled specially. If a > # stub is used, we set a breakpoint at exit because we cannot rely on > # exit() behavior of a remote target. > # The native-gdbserver.exp board, used to test against gdbserver in "target remote" mode, triggers that case ($use_gdb_stub is true). So gdb_continue_to_end doesn't work for catch-syscall.exp as here we catch the exit_group and continue from that, expecting to see a real program exit. I was about to post a patch that changes catch-syscall.exp to call a new function that just always does what gdb_continue_to_end does in the !$use_gdb_stub case. But, since GDBserver doesn't really need this, in the end I thought it better to teach the testsuite that there are stubs that know how to report program exits, by adding a new "exit_is_reliable" board variable that then gdb_continue_to_end checks. Tested on x86_64 Fedora 17, native and gdbserver. gdb/testsuite/ 2013-10-02 Pedro Alves <palves@redhat.com> * README (Board Settings): Document "exit_is_reliable". * lib/gdb.exp (gdb_continue_to_end): Check whether the board says running to exit reliably reports program exits. * boards/native-gdbserver.exp: Set exit_is_reliable in the board info. * boards/native-stdio-gdbserver.exp: Likewise.
* * gdb.python/python.exp: Remove redundant print-stack tests.Doug Evans2013-10-012-15/+14
| | | | Make all print-stack test names unique. Fix spelling of print-stack.
* gdb/testsuite/qiyao2013-09-292-1/+10
| | | | | * gdb.base/shreloc.exp: Set $msymfile to 'shreloc.txt' if host is remote.
* ChangeLog:Ulrich Weigand2013-09-252-0/+22
| | | | | | | | | | | | | | | 2013-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com> PR shlibs/8882 * solib-svr4.c (svr4_read_so_list): Skip the vDSO when reading link map entries. testsuite/ChangeLog: 2013-09-25 Andreas Arnez <arnez@linux.vnet.ibm.com> PR shlibs/8882 * gdb.base/corefile.exp: Add a check to assure warning-free core-file load.
* Support .dwp with the name of symlinked binary fileJan Kratochvil2013-09-243-0/+104
| | | | | | | | | | | | | | gdb/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf2read.c (open_and_init_dwp_file): Try open_dwp_file also with objfile->original_name. gdb/testsuite/ 2013-09-24 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.dwarf2/dwp-symlink.c: New file. * gdb.dwarf2/dwp-symlink.exp: New file.
* revert erroneous checkin to mi-support.expTom Tromey2013-09-231-3/+0
|
* (clh 9)Tom Tromey2013-09-231-0/+3
|
* * lib/dwarf.exp (build_executable_from_fission_assembler): New proc.Doug Evans2013-09-208-105/+198
| | | | | | | | | | | * gdb.dwarf2/fission-base.S: Update. Split out .dwo into separate file. * gdb.dwarf2/fission-loclists.S: Ditto. * gdb.dwarf2/fission-reread.S: Ditto. * gdb.dwarf2/fission-base.exp: Skip of remote host. Compile with build_executable_from_fission_assembler. * gdb.dwarf2/fission-loclists.exp: Ditto. * gdb.dwarf2/fission-reread.exp: Ditto.
* * lib/future.exp (gdb_find_objcopy, gdb_find_readelf): New procs.Doug Evans2013-09-2013-16/+54
| | | | | | | | | | | | | | | * lib/gdb.exp (build_id_debug_filename_get): Update to use them. (gdb_gnu_strip_debug): Ditto. * lib/prelink-support.exp (section_get, prelink_no): Ditto. * gdb.arch/altivec-abi.exp: Ditto. * gdb.base/attach-pie-misread.exp: Ditto. * gdb.base/comprdebug.exp: Ditto. * gdb.base/dup-sect.exp: Ditto. * gdb.base/gnu-debugdata.exp: Ditto. * gdb.base/step-symless.exp: Ditto. * gdb.dwarf2/dw2-inline-param.exp: Ditto. * gdb.dwarf2/dw2-skip-prologue.exp: Ditto. * gdb.dwarf2/gdb-index.exp: Ditto.
* Consistent display of "<optimized out>" for register values.aburgess2013-09-182-8/+25
| | | | | | | | | | | | | | | | https://sourceware.org/ml/gdb-patches/2013-08/msg00170.html gdb/ChangeLog * infcmd.c (default_print_one_register_info): Add detection of optimized out values. (default_print_registers_info): Switch to using get_frame_register_value. gdb/testsuite/ChangeLog * gdb.dwarf2/dw2-reg-undefined.exp: Change pattern for info register to "<optimized out>", and also print the registers.
* gdbserver --wrapper also doesn't work on Cygwin.Pedro Alves2013-09-182-2/+9
| | | | | | | | | | Skip the test on Cygwin too. 2013-09-18 Pedro Alves <palves@redhat.com> PR server/15967 * gdb.server/wrapper.exp: Also return unsupported for Cygwin, and change text.
* gdb/gdbserver/qiyao2013-09-183-0/+92
| | | | | | | | | | | | | | 2013-09-18 Yao Qi <yao@codesourcery.com> PR server/15959 * server.c (start_inferior): Clear 'resume_info'. gdb/testsuite/ 2013-09-18 Yao Qi <yao@codesourcery.com> * gdb.server/wrapper.c: New. * gdb.server/wrapper.exp: New.
* PR gdb/11568 - delete thread-specific breakpoints on thread exitPedro Alves2013-09-173-0/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR gdb/11568 is about thread-specific breakpoints being left behind when the corresponding thread exits. Currently: (gdb) b start thread 2 Breakpoint 3 at 0x400614: file thread-specific-bp.c, line 23. (gdb) b end Breakpoint 4 at 0x40061f: file thread-specific-bp.c, line 29. (gdb) c Continuing. [Thread 0x7ffff7fcb700 (LWP 14925) exited] [Switching to Thread 0x7ffff7fcc740 (LWP 14921)] Breakpoint 4, end () at thread-specific-bp.c:29 29 } (gdb) info threads Id Target Id Frame * 1 Thread 0x7ffff7fcc740 (LWP 14921) "thread-specific" end () at thread-specific-bp.c:29 (gdb) info breakpoints Num Type Disp Enb Address What 2 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 breakpoint already hit 1 time 3 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 thread 2 stop only in thread 2 4 breakpoint keep y 0x000000000040061f in end at thread-specific-bp.c:29 breakpoint already hit 1 time Note that the thread-specific breakpoint 3 stayed around, even though thread 2 is gone. There's no way that breakpoint can trigger again (*), so the PR argues that the breakpoint should just be removed, like local watchpoints. I'm ambivalent on this -- it could be reasonable to disable the breakpoint (kind of like breakpoint in shared library code when the DSO is unloaded), so the user could still use it as visual template for creating other breakpoints (copy/paste command lists, etc.), or we could have a way to change to which thread a breakpoint applies. But, several people pushed this direction, and I don't plan on arguing... (*) - actually, there is ... thread numbers are reset on "run", so the user could do "break foo thread 2", "run", and expect the breakpoint to hit again on the second thread. But given gdb's thread numbering can't really be stable, that'd only work sufficiently well for thread 1, so we'd better call it unsupported. So with the patch, whenever a thread is deleted from GDB's list, GDB goes through the thread-specific breakpoints and deletes corresponding breakpoints. Since this is user-visible, GDB prints out: Thread-specific breakpoint 3 deleted - thread 2 is gone. And of course, we end up with: (gdb) info breakpoints Num Type Disp Enb Address What 2 breakpoint keep y 0x0000000000400614 in start at thread-specific-bp.c:23 breakpoint already hit 1 time 4 breakpoint keep y 0x000000000040061f in end at thread-specific-bp.c:29 breakpoint already hit 1 time 2013-09-17 Muhammad Waqas <mwaqas@codesourcery.com> Pedro Alves <palves@redhat.com> PR gdb/11568 * breakpoint.c (remove_threaded_breakpoints): New function. (_initialize_breakpoint): Attach remove_threaded_breakpoints as thread_exit observer. 2013-09-17 Muhammad Waqas <mwaqas@codesourccery.com> Jan Kratochvil <jan.kartochvil@redhat.com> Pedro Alves <palves@redhat.com> PR gdb/11568 * gdb.thread/thread-specific-bp.c: New file. * gdb.thread/thread-specific-bp.exp: New file.
* This commit fixes a regression introduced by the new $_isvoid conveniencesergiodj2013-09-172-0/+6
| | | | | | | | | | | function. It adds a check for $_isvoid during the test of "show convenience" output. gdb/testsuite/ 2013-09-17 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/defaults.exp (<show_conv_list>): Add check for $_isvoid convenience function.
* PR gdb/15911: "info threads" changes the default source and line (for ↵Pedro Alves2013-09-174-0/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "break", "list") "info threads" changes the default source for "break" and "list", to whatever the location of the first/bottom thread in the thread list is... (gdb) b start (gdb) c ... (gdb) list *lists "start"* (gdb) b 23 Breakpoint 3 at 0x400614: file test.c, line 23. (gdb) info threads Id Target Id Frame * 2 Thread 0x7ffff7fcb700 (LWP 1760) "test" start (arg=0x0) at test.c:23 1 Thread 0x7ffff7fcc740 (LWP 1748) "test" 0x000000323dc08e60 in pthread_join (threadid=140737353922304, thread_return=0x0) at pthread_join.c:93 (gdb) b 23 Breakpoint 4 at 0x323dc08d90: file pthread_join.c, line 23. ^^^^^^^^^^^^^^^ (gdb) list 93 lll_wait_tid (pd->tid); 94 95 96 /* Restore cancellation mode. */ 97 CANCEL_RESET (oldtype); 98 99 /* Remove the handler. */ 100 pthread_cleanup_pop (0); 101 102 The issue is that print_stack_frame always sets the current sal to the frame's sal. print_frame_info (which print_stack_frame calls to do most of the work) also sets the last displayed sal, but only if print_what isn't LOCATION. Now the call in question, from within thread.c:print_thread_info, does pass in LOCATION as print_what, but print_stack_frame doesn't have the same check print_frame_info has. We could consider adding it, but setting these globals depending on print_what isn't very clean, IMO. What we have is two logically distinct operations mixed in the same function(s): #1 - print frame, in the format specified by {print_what, print_level and print_args}. #2 - We're displaying a frame to the user, and I want the default sal to point here, because the program stopped here, or the user did some context-changing command (up, down, etc.). So I added a new parameter to print_stack_frame & friends for point #2, and went through all calls in the tree adjusting as necessary. Tested on x86_64 Fedora 17. gdb/ 2013-09-17 Pedro Alves <palves@redhat.com> PR gdb/15911 * ada-tasks.c (task_command_1): Adjust call to print_stack_frame. * bsd-kvm.c (bsd_kvm_open, bsd_kvm_proc_cmd, bsd_kvm_pcb_cmd): * corelow.c (core_open): * frame.h (print_stack_frame, print_frame_info): New 'set_current_sal' parameter. * infcmd.c (finish_command, kill_command): Adjust call to print_stack_frame. * inferior.c (inferior_command): Likewise. * infrun.c (normal_stop): Likewise. * linux-fork.c (linux_fork_context): Likewise. * record-full.c (record_full_goto_entry, record_full_restore): Likewise. * remote-mips.c (common_open): Likewise. * stack.c (print_stack_frame): New 'set_current_sal' parameter. Use it. (print_frame_info): New 'set_current_sal' parameter. Set the last displayed sal depending on the new paremeter instead of looking at print_what. (backtrace_command_1, select_and_print_frame, frame_command) (current_frame_command, up_command, down_command): Adjust call to print_stack_frame. * thread.c (print_thread_info, restore_selected_frame) (do_captured_thread_select): Adjust call to print_stack_frame. * tracepoint.c (tfind_1): Likewise. * mi/mi-cmd-stack.c (mi_cmd_stack_list_frames) (mi_cmd_stack_info_frame): Likewise. * mi/mi-interp.c (mi_on_normal_stop): Likewise. * mi/mi-main.c (mi_cmd_exec_return, mi_cmd_trace_find): Likewise. gdb/testsuite/ * gdb.threads/info-threads-cur-sal-2.c: New file. * gdb.threads/info-threads-cur-sal.c: New file. * gdb.threads/info-threads-cur-sal.exp: New file.
* gdb/testsuite/qiyao2013-09-173-2/+18
| | | | | | | | | * gdb.base/catch-load.c: Remove the include of "dlfcn.h". [__WIN32__]: Include "windows.h" and define macro dlopen and dlclose. [!__WIN32__]: Include "dlfcn.h". * gdb.base/catch-load.exp (one_catch_load_test): Match directory separator.
* * lib/gdb.exp (using_fission): New proc.Doug Evans2013-09-163-0/+19
| | | | * gdb.base/info-macros.exp: Skip test if using Fission.
* * gdb.base/break-interp.exp: Fix indentation.Doug Evans2013-09-162-1/+5
|
* Based on the discussion at:sergiodj2013-09-163-0/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | <https://sourceware.org/ml/gdb-patches/2013-09/msg00301.html> <https://sourceware.org/ml/gdb-patches/2013-09/msg00383.html> This patch adds a new convenience function called $_isvoid, whose only purpose is to check whether an expression is void or not. This became necessary because the new convenience variable $_exitsignal (not yet approved) has a mutual exclusive behavior with $_exitcode, i.e., when one is "defined" (i.e., non-void), the other is cleared (i.e., becomes void). Doug wanted a way to identify which variable to use, and checking for voidness is the obvious solution. It is worth mentioning that my first attempt, after a conversation with Doug, was to actually implement a new $_isdefined() convenience function. I would do that (for convenience variables) by calling lookup_only_internalvar. However, I found a few problems: - Whenever I called $_isdefined ($variable), $variable became defined (with a void value), and $_isdefined always returned true. - Then, I tried to implement $_isdefined ("variable"), and do the "$" + "variable" inside GDB, thus making it impossible for GDB to create the convenience variable. However, it was hard to extract the string without having to mess with values and their idiossincrasies. Therefore, I decided to abandon this attempt (specially because I didn't want to spend too much time struggling with it). Anyway, after talking to Doug again we decided that it would be easier to implement $_isvoid, and this will probably help in cases like <http://stackoverflow.com/questions/3744554/testing-if-a-gdb-convenience-variable-is-defined>. I wrote a NEWS entry for it, and some new lines on the documentation. gdb/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * NEWS: Mention new convenience function $_isvoid. * value.c (isvoid_internal_fn): New function. (_initialize_values): Add new convenience function $_isvoid. gdb/doc/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.texinfo (Convenience Functions): Mention new convenience function $_isvoid. gdb/testsuite/ 2013-09-16 Sergio Durigan Junior <sergiodj@redhat.com> * gdb.base/gdbvars.c (foo_void): New function. (foo_int): Likewise. * gdb.base/gdbvars.exp (test_convenience_functions): New function. Call it.
* gdb/ChangeLog:Ulrich Weigand2013-09-133-0/+144
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * NEWS: Mention TDB support. * features/s390-tdb.xml: New file. * features/s390-te-linux64.xml: New file. * features/s390x-te-linux64.xml: New file. * features/Makefile (WHICH): Add new tdescs above. (s390-te-linux64-expedite): Set. (s390x-te-linux64-expedite): Set. * features/s390-te-linux64.c: New file (generated). * features/s390x-te-linux64.c: New file (generated). * regformats/s390-te-linux64.dat: New file (generated). * regformats/s390x-te-linux64.dat: New file (generated). * s390-tdep.h (HWCAP_S390_HIGH_GPRS): Define. (HWCAP_S390_TE): Likewise. (S390_TDB_DWORD0_REGNUM): Likewise. (S390_TDB_DWORD0_REGNUM): Likewise. (S390_TDB_ABORT_CODE_REGNUM): Likewise. (S390_TDB_CONFLICT_TOKEN_REGNUM): Likewise. (S390_TDB_ATIA_REGNUM): Likewise. (S390_TDB_R0_REGNUM): Likewise. (S390_TDB_R1_REGNUM): Likewise. (S390_TDB_R2_REGNUM): Likewise. (S390_TDB_R3_REGNUM): Likewise. (S390_TDB_R4_REGNUM): Likewise. (S390_TDB_R5_REGNUM): Likewise. (S390_TDB_R6_REGNUM): Likewise. (S390_TDB_R7_REGNUM): Likewise. (S390_TDB_R8_REGNUM): Likewise. (S390_TDB_R9_REGNUM): Likewise. (S390_TDB_R10_REGNUM): Likewise. (S390_TDB_R11_REGNUM): Likewise. (S390_TDB_R12_REGNUM): Likewise. (S390_TDB_R13_REGNUM): Likewise. (S390_TDB_R14_REGNUM): Likewise. (S390_TDB_R15_REGNUM): Likewise. (S390_NUM_REGS): Increase. (S390_IS_TDBREGSET_REGNUM): New macro. (s390_regmap_tdb): Declare. (s390_sizeof_tdbregset): Define. (tdesc_s390_te_linux64): Declare. (tdesc_s390x_te_linux64): Likewise. * s390-tdep.c: Add includes for "auxv.h", <elf.h>, "features/s390-te-linux64.c", and "features/s390x-te-linux64.c". (s390_regmap_tdb): New regmap. (s390_supply_tdb_regset): New function. (s390_tdb_regset): New regset. (s390_linux64v2_regset_sections): Add TDB regset to list. (s390x_linux64v2_regset_sections): Likewise. (s390_regset_from_core_section): Recognize TDB core note section. (s390_core_read_description): If HWCAP indicates TE support, select tdesc_s390_te_linux64 or tdesc_s390_s390x_te_linux64. (s390_gdbarch_init): Handle TDB regset. (_initialize_s390_tdep): Initialize new tdescs. * s390-nat.c (HWCAP_S390_HIGH_GPRS): Remove define. (have_regset_tdb): New variable. (s390_native_supply): Support register invalidation. (fetch_regset): Invalidate registers if ptrace yields ENODATA. (check_regset): Treat ENODATA as "regset exists". (s390_linux_fetch_inferior_registers): Add TDB. (s390_read_description): Check for TDB existence and select appropriate tdesc. * gdbserver/Makefile.in (clean): Add removal of new makefile targets. (s390-te-linux64.c): New makefile target. (s390x-te-linux64.c): Likewise. * gdbserver/configure.srv (srv_regobj): Append new objects s390-te-linux64.o and s390x-te-linux64.o. (srv_xmlfiles): Append new files s390-te-linux64.xml, s390x-te-linux64.xml, and s390-tdb.xml. * gdbserver/linux-s390-low.c (init_registers_s390_te_linux64): New declaration. (tdesc_s390_te_linux64): Likewise. (init_registers_s390x_te_linux64): Likewise. (tdesc_s390x_te_linux64): Likewise. (s390_check_regset): Treat ENODATA as "regset exists". (s390_arch_setup): Add TDB regset support. (initialize_low_arch): Initialize registers for new tdescs. gdb/doc/ChangeLog: 2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.texinfo (Decimal Floating Point format): Mention S/390. (Standard Target Features): Add new node to menu. (S/390 and System z Features): New node. gdb/testsuite/ChangeLog: 2013-09-13 Andreas Arnez <arnez@linux.vnet.ibm.com> * gdb.arch/s390-tdbregs.c: New file. * gdb.arch/s390-tdbregs.exp: New file.
* * README: New file.Stan Shebs2013-09-122-0/+386
|
* * gdb.python/py-events.py (new_objfile_handler): Remove accidentallyDoug Evans2013-09-122-1/+5
| | | | added code to print event.inferior.
* minidebuginfo: Fix stripping/debuginfoJan Kratochvil2013-09-112-7/+12
| | | | | | | | | | | | | | gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (MiniDebugInfo): Prepare file debug and use it to create mini_debuginfo. Strip binary before adding mini_debuginfo to it. gdb/testsuite/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/gnu-debugdata.exp (objcopy 1): Move it lower and use only debug part of the binary.
* minidebuginfo: Obvious changesJan Kratochvil2013-09-112-2/+8
| | | | | | | | | | | | | gdb/doc/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.texinfo (MiniDebugInfo): Fix two trailing dots. gdb/testsuite/ 2013-09-11 Jan Kratochvil <jan.kratochvil@redhat.com> * gdb.base/gnu-debugdata.exp (strip): Add -R .comment. (addlink): Add comment.
* test: adjust 'cd' regexpr to match an optional canonically pathnamesagovic2013-09-102-1/+6
| | | | | | | | | | | | | | | | | | | | | New regexpr now correctly deals with trailing canonical pathname. Before only the following output was matched: (gdb) cd Working directory /users/foo In addition it now matches an optional trailing canonical pathname: (gdb) cd Working directory /users/foo (canonically /nfs/users/foo). Triggered by `realpath .` != `pwd` 2013-09-10 Sanimir Agovic <sanimir.agovic@intel.com> testsuite/ * gdb.base/default.exp: Adjust regexpr for 'cd' to match optional canonical pathname.
* * gdb.python/py-events.py (exit_handler): Verify we get the expectedDoug Evans2013-09-045-17/+24
| | | | | | | | | | event. (continue_handler, new_objfile_handler): Ditto. (test_events): Rename command to "test-events". (test_newobj_events): Rename command to "test-objfile-events". * gdb.python/py-events.exp: Update. * gdb.python/py-evsignal.exp: Update. * gdb.python/py-evthreads.exp: Update.
* * dwarf2read.c (queue_and_load_all_dwo_tus): New function.Doug Evans2013-09-043-2/+16
| | | | | | | | | | | | | | (queue_and_load_dwo_tu): New function. (lookup_dwo_signatured_type): Set per_cu.tu_read. (maybe_queue_comp_unit): Rename this_cu argument to dependent_cu. Make dependent_cu optional. (dw2_do_instantiate_symtab): If we just loaded a CU from a DWO, and an older .gdb_index is in use, queue and load all its TUs too. testsuite/ * gdb.base/enumval.c (ZERO): New enum value. (main): Use it * gdb.base/enumval.exp: Test ability to print ZERO.