+2014-09-18 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ PR gdb/17407
+ * elfcode.h (bfd_from_remote_memory): Use SIZE for HIGH_OFFSET.
+
2014-07-16 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_plt_sym_val): Match PLT entry only for
@set VERSION 2.24.51
@set VERSION_PACKAGE (GNU Binutils)
-@set UPDATED July 2014
+@set UPDATED October 2014
@set BUGURL @uref{http://www.sourceware.org/bugzilla/}
headers. */
}
else if (size >= shdr_end)
- high_offset = shdr_end;
+ high_offset = size;
else
{
bfd_vma page_size = get_elf_backend_data (templ)->minpagesize;
-#define BFD_VERSION_DATE 20140729
+#define BFD_VERSION_DATE 20141029
#define BFD_VERSION @bfd_version@
#define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
#define REPORT_BUGS_TO @report_bugs_to@
Rem The following 2 lines need to be changed with each new GDB release, to\r
Rem be identical to the name of the top-level directory where the GDB\r
Rem distribution unpacks itself.\r
-set GDBVER=gdb-7.8\r
-if "%GDBVER%"=="gdb-7.8" GoTo EnvOk\r
+set GDBVER=gdb-7.8.1\r
+if "%GDBVER%"=="gdb-7.8.1" GoTo EnvOk\r
Rem If their environment space is too small, re-exec with a larger one\r
command.com /e:4096 /c %0 %1\r
GoTo End\r
+2014-10-29 Joel Brobecker <brobecker@adacore.com>
+
+ * version.in: Set GDB version number to 7.8.1.
+
+2014-10-29 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17408
+ * infrun.c (switch_back_to_stepped_thread): Use currently_stepping
+ instead of assuming a thread with a stepping range is always
+ stepping.
+
+2014-10-29 Pedro Alves <palves@redhat.com>
+
+ PR python/17372
+ * event-top.c (change_line_handler): Call
+ gdb_rl_callback_handler_remove instead of
+ rl_callback_handler_remove.
+ (callback_handler_installed): New global.
+ (gdb_rl_callback_handler_remove, gdb_rl_callback_handler_install)
+ (gdb_rl_callback_handler_reinstall): New functions.
+ (display_gdb_prompt): Call gdb_rl_callback_handler_remove and
+ gdb_rl_callback_handler_install instead of
+ rl_callback_handler_remove and rl_callback_handler_install.
+ (gdb_disable_readline): Call gdb_rl_callback_handler_remove
+ instead of rl_callback_handler_remove.
+ * event-top.h (gdb_rl_callback_handler_remove)
+ (gdb_rl_callback_handler_install)
+ (gdb_rl_callback_handler_reinstall): New declarations.
+ * infrun.c (reinstall_readline_callback_handler_cleanup): New
+ cleanup function.
+ (fetch_inferior_event): Install it.
+ * top.c (gdb_readline_wrapper_line) Call
+ gdb_rl_callback_handler_remove instead of
+ rl_callback_handler_remove.
+ (gdb_readline_wrapper_cleanup): Don't call
+ rl_callback_handler_install.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17471
+ * infcmd.c (strip_bg_char): Change prototype and rewrite. Now
+ returns a copy of the input.
+ (run_command_1, continue_command, step_1, jump_command)
+ (signal_command, until_command, advance_command, finish_command)
+ (attach_command): Adjust and install a cleanup to free the
+ stripped args.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17300
+ * infcmd.c (continue_1): If continuing all threads in the
+ foreground, make sure the inferior's terminal settings are put in
+ effect.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17472
+ * annotate.c (annotate_breakpoints_invalid): Use
+ target_terminal_our_for_output instead of target_terminal_ours.
+ Give back the terminal to the target.
+ (annotate_frames_invalid): Likewise.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ * target.c (enum terminal_state): New enum.
+ (terminal_state): New global.
+ (target_terminal_init): New function.
+ (target_terminal_inferior): Skip if inferior already owns the
+ terminal.
+ (target_terminal_ours, target_terminal_ours_for_output): New
+ functions.
+ * target.h (target_terminal_init): Convert to function prototype.
+ (target_terminal_ours_for_output): Convert to function prototype
+ and tweak comment.
+ (target_terminal_ours): Convert to function prototype and tweak
+ comment.
+ * windows-nat.c (do_initial_windows_stuff): Call
+ target_terminal_init instead of child_terminal_init_with_pgrp.
+
+2014-10-15 Doug Evans <dje@google.com>
+ Walfred Tedeschi <walfred.tedeschi@intel.com>
+
+ PR python/17364
+ * python/lib/gdb/__init__.py (packages): Add "printer".
+ * python/lib/gdb/command/bound_registers.py: Moved to ...
+ * python/lib/gdb/printer/bound_registers.py: ... here.
+ Add printer to global set of builtin printers. Rename printer from
+ "bound" to "mpx_bound128".
+ * python/lib/gdb/printing.py (_builtin_pretty_printers): New global,
+ registered as global "builtin" printer.
+ (add_builtin_pretty_printer): New function.
+ * data-directory/Makefile.in (PYTHON_FILE_LIST): Update, and add
+ gdb/printer/__init__.py.
+
+2014-10-01 Pedro Alves <palves@redhat.com>
+
+ * features/aarch64-core.xml (cpsr): Change back to 32-bit.
+ * features/aarch64.c: Regenerate.
+
+2014-09-11 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17347
+ * main.c: Include "infrun.h".
+ (catch_command_errors, catch_command_errors_const): Wait for the
+ foreground command to complete.
+ * top.c (maybe_wait_sync_command_done): New function, factored out
+ from ...
+ (maybe_wait_sync_command_done): ... here.
+ * top.h (maybe_wait_sync_command_done): New declaration.
+
+2014-09-09 Doug Evans <xdje42@gmail.com>
+
+ PR guile/17367
+ * acinclude.m4 (GDB_GUILE_PROGRAM_NAMES): Pass guile version as
+ last parameter to pkg-config, not first.
+ * configure.ac: Pass --with-guile provided pkg-config path to
+ GDB_GUILE_PROGRAM_NAMES.
+ * configure: Regenerate.
+
+2014-09-09 Doug Evans <xdje42@gmail.com>
+
+ PR 17247
+ * guile.c: #include <signal.h>.
+ (_initialize_guile): Block SIGCHLD while initializing Guile.
+
+ Replaces the following, which is reverted.
+
+ 2014-07-26 Doug Evans <xdje42@gmail.com>
+
+ PR 17185
+ * configure.ac: Add check for header gc/gc.h.
+ Add check for function setenv.
+ * configure: Regenerate.
+ * config.in: Regenerate.
+ * guile/guile.c (_initialize_guile): Add workaround for libgc 7.4.0.
+
+2014-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ PR python/17355
+ * python/py-framefilter.c (py_print_single_arg): Handle NULL FA->VAL.
+ Fix goto out of TRY_CATCH.
+
+2014-08-30 Siva Chandra Reddy <sivachandra@google.com>
+
+ * python/lib/gdb/command/xmethods.py (set_xm_status1): Use the
+ 'items' methods instead of 'iteritems' method on dictionaries.
+
+2014-08-27 Yao Qi <yao@codesourcery.com>
+
+ * ctf.c (CTF_FILE_MIN_SIZE): Remove.
+ (ctf_end): Remove code.
+
+2014-08-21 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * linux-tdep.c (linux_corefile_thread_callback): Ignore THREAD_EXITED.
+ (linux_make_corefile_notes): call update_thread_list, protected against
+ exceptions.
+
+2014-08-15 Eli Zaretskii <eliz@gnu.org>
+
+ * dcache.h: Include target.h, to avoid compile time warnings.
+
+2014-08-15 Joel Brobecker <brobecker@adacore.com>
+
+ * gdbarch.sh: #include "frame.h" in gdbarch.h. Delete "struct
+ frame_info" partial declaration.
+ * gdbarch.h: Regenerate.
+
+2014-08-13 Yao Qi <yao@codesourcery.com>
+
+ PR build/17104
+ * configure.ac: Use local variable 'pos'.
+ * configure: Regenerated.
+
+2014-08-04 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * NEWS (Changes in GDB-4.0): Move Intel MPX and Intel AVX-512 items ...
+ (Changes in GDB 7.8): ... here.
+
+2014-07-29 Joel Brobecker <brobecker@adacore.com>
+
+ * version.in: Set GDB version number to 7.8.0.DATE-cvs.
+
+2014-07-29 Joel Brobecker <brobecker@adacore.com>
+
+ GDB 7.8 released.
+
2014-07-29 Joel Brobecker <brobecker@adacore.com>
* version.in: Set GDB version number to 7.8.
can be used to launch native programs even when "set
auto-connect-native-target" is set to off.
+* GDB now supports access to Intel(R) MPX registers on GNU/Linux.
+
+* Support for Intel(R) AVX-512 registers on GNU/Linux.
+ Support displaying and modifying Intel(R) AVX-512 registers
+ $zmm0 - $zmm31 and $k0 - $k7 on GNU/Linux.
+
* New remote packets
qXfer:btrace:read's annex
two different machines, type ``./configure host -target=targ''.
Host is the machine where GDB will run; targ is the machine
where the program that you are debugging will run.
-
- * GDB now supports access to Intel(R) MPX registers on GNU/Linux.
-
- * Support for Intel(R) AVX-512 registers on GNU/Linux.
-
-Support displaying and modifying Intel(R) AVX-512 registers $zmm0 - $zmm31 and
-$k0 - $k7 on GNU/Linux.
AC_DEFUN([GDB_GUILE_PROGRAM_NAMES], [
AC_CACHE_CHECK([for the absolute file name of the 'guild' command],
[ac_cv_guild_program_name],
- [ac_cv_guild_program_name="`$1 $2 --variable guild`"
+ [ac_cv_guild_program_name="`$1 --variable guild $2`"
# In Guile up to 2.0.11 included, guile-2.0.pc would not define
# the 'guild' and 'bindir' variables. In that case, try to guess
# what the program name is, at the risk of getting it wrong if
# Guile was configured with '--program-suffix' or similar.
if test "x$ac_cv_guild_program_name" = "x"; then
- guile_exec_prefix="`$1 $2 --variable exec_prefix`"
+ guile_exec_prefix="`$1 --variable exec_prefix $2`"
ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
fi
])
&& (!breakpoints_invalid_emitted
|| async_background_execution_p ()))
{
- target_terminal_ours ();
+ /* If the inferior owns the terminal (e.g., we're resuming),
+ make sure to leave with the inferior still owning it. */
+ int was_inferior = target_terminal_is_inferior ();
+
+ target_terminal_ours_for_output ();
+
printf_unfiltered (("\n\032\032breakpoints-invalid\n"));
+
+ if (was_inferior)
+ target_terminal_inferior ();
+
breakpoints_invalid_emitted = 1;
}
}
&& (!frames_invalid_emitted
|| async_background_execution_p ()))
{
- target_terminal_ours ();
+ /* If the inferior owns the terminal (e.g., we're resuming),
+ make sure to leave with the inferior still owning it. */
+ int was_inferior = target_terminal_is_inferior ();
+
+ target_terminal_ours_for_output ();
+
printf_unfiltered (("\n\032\032frames-invalid\n"));
+
+ if (was_inferior)
+ target_terminal_inferior ();
+
frames_invalid_emitted = 1;
}
}
/* Define if <sys/procfs.h> has fpregset_t. */
#undef HAVE_FPREGSET_T
-/* Define to 1 if you have the <gc/gc.h> header file. */
-#undef HAVE_GC_GC_H
-
/* Define to 1 if you have the `getgid' function. */
#undef HAVE_GETGID
/* Define to 1 if you have the `scm_new_smob' function. */
#undef HAVE_SCM_NEW_SMOB
-/* Define to 1 if you have the `setenv' function. */
-#undef HAVE_SETENV
-
/* Define to 1 if you have the `setlocale' function. */
#undef HAVE_SETLOCALE
esac
if test "${have_libguile}" != no; then
+ case "${with_guile}" in
+ [\\/]* | ?:[\\/]*)
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5
$as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; }
if test "${ac_cv_guild_program_name+set}" = set; then :
$as_echo_n "(cached) " >&6
else
- ac_cv_guild_program_name="`"${pkg_config_prog_path}" "${guile_version}" --variable guild`"
+ ac_cv_guild_program_name="`"${with_guile}" --variable guild "${guile_version}"`"
# In Guile up to 2.0.11 included, guile-2.0.pc would not define
# the 'guild' and 'bindir' variables. In that case, try to guess
# what the program name is, at the risk of getting it wrong if
# Guile was configured with '--program-suffix' or similar.
if test "x$ac_cv_guild_program_name" = "x"; then
- guile_exec_prefix="`"${pkg_config_prog_path}" "${guile_version}" --variable exec_prefix`"
+ guile_exec_prefix="`"${with_guile}" --variable exec_prefix "${guile_version}"`"
ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
fi
GUILD="$ac_cv_guild_program_name"
+ ;;
+ *)
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the absolute file name of the 'guild' command" >&5
+$as_echo_n "checking for the absolute file name of the 'guild' command... " >&6; }
+if test "${ac_cv_guild_program_name+set}" = set; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_guild_program_name="`"${pkg_config_prog_path}" --variable guild "${guile_version}"`"
+
+ # In Guile up to 2.0.11 included, guile-2.0.pc would not define
+ # the 'guild' and 'bindir' variables. In that case, try to guess
+ # what the program name is, at the risk of getting it wrong if
+ # Guile was configured with '--program-suffix' or similar.
+ if test "x$ac_cv_guild_program_name" = "x"; then
+ guile_exec_prefix="`"${pkg_config_prog_path}" --variable exec_prefix "${guile_version}"`"
+ ac_cv_guild_program_name="$guile_exec_prefix/bin/guild"
+ fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_guild_program_name" >&5
+$as_echo "$ac_cv_guild_program_name" >&6; }
+
+ if ! "$ac_cv_guild_program_name" --version >&5 2>&5; then
+ as_fn_error "'$ac_cv_guild_program_name' appears to be unusable" "$LINENO" 5
+ fi
+
+ GUILD="$ac_cv_guild_program_name"
+
+
+ ;;
+ esac
if test "$cross_compiling" = no; then
fi
-# PR 17185, see if we can get the libgc version to see if we need
-# to apply the workaround.
-for ac_header in gc/gc.h
-do :
- ac_fn_c_check_header_mongrel "$LINENO" "gc/gc.h" "ac_cv_header_gc_gc_h" "$ac_includes_default"
-if test "x$ac_cv_header_gc_gc_h" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_GC_GC_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_func in setenv
-do :
- ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv"
-if test "x$ac_cv_func_setenv" = x""yes; then :
- cat >>confdefs.h <<_ACEOF
-#define HAVE_SETENV 1
-_ACEOF
-
-fi
-done
-
-
# --------------------- #
# Check for libmcheck. #
# --------------------- #
struct bt_ctf_event *event = NULL;
const struct bt_definition *scope;
+ bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
scope = bt_ctf_get_top_level_scope (event,
BT_STREAM_EVENT_HEADER);
bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
dnl pkg-config --exists $version
dnl pkg-config --cflags $version
dnl pkg-config --libs $version
-dnl $version will be the default guile version (currently guile-2.0),
-dnl but the program is free to ignore this.
+dnl pkg-config --variable guild $version
+dnl The script will be called with $version having each value in
+dnl $try_guile_versions until --exists indicates success.
AC_ARG_WITH(guile,
AS_HELP_STRING([--with-guile@<:@=GUILE@:>@], [include guile support (auto/yes/no/<guile-version>/<pkg-config-program>)]),
if test "${have_libguile}" != no; then
dnl Get the name of the 'guild' program.
- GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+ case "${with_guile}" in
+ [[\\/]]* | ?:[[\\/]]*)
+ GDB_GUILE_PROGRAM_NAMES(["${with_guile}"], ["${guile_version}"])
+ ;;
+ *)
+ GDB_GUILE_PROGRAM_NAMES(["${pkg_config_prog_path}"], ["${guile_version}"])
+ ;;
+ esac
dnl Make sure guild can handle this host.
GDB_TRY_GUILD([$srcdir/guile/lib/gdb/support.scm])
AC_SUBST(GUILE_LIBS)
AM_CONDITIONAL(HAVE_GUILE, test "${have_libguile}" != no)
-# PR 17185, see if we can get the libgc version to see if we need
-# to apply the workaround.
-AC_CHECK_HEADERS(gc/gc.h)
-AC_CHECK_FUNCS([setenv])
-
# --------------------- #
# Check for libmcheck. #
# --------------------- #
struct bt_ctf_event *event = NULL;
const struct bt_definition *scope;
+ bt_iter_set_pos (bt_ctf_get_iter (NULL), pos);
scope = bt_ctf_get_top_level_scope (event,
BT_STREAM_EVENT_HEADER);
bt_ctf_get_uint64 (bt_ctf_get_field (event, scope, "id"));
self->ops->frame_ops->end (self);
}
-/* The minimal file size of data stream. It is required by
- babeltrace. */
-
-#define CTF_FILE_MIN_SIZE 4096
-
/* This is the implementation of trace_file_write_ops method
end. */
struct ctf_trace_file_writer *writer = (struct ctf_trace_file_writer *) self;
gdb_assert (writer->tcs.content_size == 0);
- /* The babeltrace requires or assumes that the size of datastream
- file is greater than 4096 bytes. If we don't generate enough
- packets and events, create a fake packet which has zero event,
- to use up the space. */
- if (writer->tcs.packet_start < CTF_FILE_MIN_SIZE)
- {
- uint32_t u32;
-
- /* magic. */
- u32 = CTF_MAGIC;
- ctf_save_write_uint32 (&writer->tcs, u32);
-
- /* content_size. */
- u32 = 0;
- ctf_save_write_uint32 (&writer->tcs, u32);
-
- /* packet_size. */
- u32 = 12;
- if (writer->tcs.packet_start + u32 < CTF_FILE_MIN_SIZE)
- u32 = CTF_FILE_MIN_SIZE - writer->tcs.packet_start;
-
- u32 *= TARGET_CHAR_BIT;
- ctf_save_write_uint32 (&writer->tcs, u32);
-
- /* tpnum. */
- u32 = 0;
- ctf_save_write (&writer->tcs, (gdb_byte *) &u32, 2);
-
- /* Enlarge the file to CTF_FILE_MIN_SIZE is it is still less
- than that. */
- if (CTF_FILE_MIN_SIZE
- > (writer->tcs.packet_start + writer->tcs.content_size))
- {
- gdb_byte b = 0;
-
- /* Fake the content size to avoid assertion failure in
- ctf_save_fseek. */
- writer->tcs.content_size = (CTF_FILE_MIN_SIZE
- - 1 - writer->tcs.packet_start);
- ctf_save_fseek (&writer->tcs, CTF_FILE_MIN_SIZE - 1,
- SEEK_SET);
- ctf_save_write (&writer->tcs, &b, 1);
- }
- }
}
/* This is the implementation of trace_frame_write_ops method
gdb/printing.py \
gdb/prompt.py \
gdb/xmethod.py \
- gdb/command/bound_registers.py \
gdb/command/__init__.py \
gdb/command/xmethods.py \
gdb/command/frame_filters.py \
gdb/command/prompt.py \
gdb/command/explore.py \
gdb/function/__init__.py \
- gdb/function/strfns.py
+ gdb/function/strfns.py \
+ gdb/printer/__init__.py \
+ gdb/printer/bound_registers.py
@HAVE_PYTHON_TRUE@PYTHON_FILES = $(PYTHON_FILE_LIST)
@HAVE_PYTHON_FALSE@PYTHON_FILES =
#ifndef DCACHE_H
#define DCACHE_H
+#include "target.h" /* for enum target_xfer_status */
+
typedef struct dcache_struct DCACHE;
/* Invalidate DCACHE. */
.\" ========================================================================
.\"
.IX Title "GCORE 1"
-.TH GCORE 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GCORE 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.\" ========================================================================
.\"
.IX Title "GDB 1"
-.TH GDB 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDB 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
\1f
Indirect:
-gdb.info-1: 1700
-gdb.info-2: 303342
-gdb.info-3: 623494
-gdb.info-4: 912719
-gdb.info-5: 1201731
-gdb.info-6: 1521760
-gdb.info-7: 1801737
+gdb.info-1: 1702
+gdb.info-2: 303350
+gdb.info-3: 623504
+gdb.info-4: 912731
+gdb.info-5: 1201745
+gdb.info-6: 1521834
+gdb.info-7: 1801813
\1f
Tag Table:
(Indirect)
-Node: Top\7f1700
-Node: Summary\7f5156
-Node: Free Software\7f7017
-Node: Free Documentation\7f7757
-Node: Contributors\7f12691
-Node: Sample Session\7f20789
-Node: Invocation\7f27625
-Node: Invoking GDB\7f28168
-Node: File Options\7f30502
-Node: Mode Options\7f33559
-Ref: -nx\7f33786
-Ref: -nh\7f34870
-Node: Startup\7f41188
-Ref: Home Directory Init File\7f41739
-Ref: Option -init-eval-command\7f41849
-Ref: Init File in the Current Directory during Startup\7f42189
-Ref: Startup-Footnote-1\7f44385
-Node: Quitting GDB\7f44494
-Node: Shell Commands\7f45391
-Node: Logging Output\7f46318
-Node: Commands\7f47155
-Node: Command Syntax\7f47793
-Node: Completion\7f49959
-Ref: Completion-Footnote-1\7f55323
-Node: Help\7f55483
-Node: Running\7f61234
-Node: Compilation\7f62463
-Node: Starting\7f64547
-Ref: set exec-wrapper\7f69840
-Ref: set auto-connect-native-target\7f71994
-Node: Arguments\7f76390
-Node: Environment\7f77659
-Node: Working Directory\7f81393
-Node: Input/Output\7f82545
-Node: Attach\7f84516
-Node: Kill Process\7f86982
-Node: Inferiors and Programs\7f87963
-Node: Threads\7f95206
-Ref: set libthread-db-search-path\7f102615
-Node: Forks\7f104669
-Node: Checkpoint/Restart\7f110983
-Ref: Checkpoint/Restart-Footnote-1\7f115511
-Node: Stopping\7f115546
-Node: Breakpoints\7f116809
-Node: Set Breaks\7f120348
-Node: Set Watchpoints\7f139083
-Node: Set Catchpoints\7f148487
-Node: Delete Breaks\7f159361
-Node: Disabling\7f161301
-Node: Conditions\7f164686
-Node: Break Commands\7f170333
-Node: Dynamic Printf\7f173554
-Node: Save Breakpoints\7f177813
-Node: Static Probe Points\7f178988
-Node: Error in Breakpoints\7f181675
-Node: Breakpoint-related Warnings\7f182411
-Node: Continuing and Stepping\7f184738
-Ref: range stepping\7f194118
-Node: Skipping Over Functions and Files\7f195198
-Node: Signals\7f198770
-Ref: extra signal information\7f203204
-Node: Thread Stops\7f204708
-Node: All-Stop Mode\7f205807
-Node: Non-Stop Mode\7f209707
-Node: Background Execution\7f213120
-Node: Thread-Specific Breakpoints\7f215336
-Node: Interrupted System Calls\7f217354
-Node: Observer Mode\7f218868
-Node: Reverse Execution\7f222304
-Ref: Reverse Execution-Footnote-1\7f226929
-Ref: Reverse Execution-Footnote-2\7f227556
-Node: Process Record and Replay\7f227606
-Node: Stack\7f241932
-Node: Frames\7f243480
-Node: Backtrace\7f246247
-Ref: backtrace-command\7f246598
-Ref: Backtrace-Footnote-1\7f252368
-Node: Frame Filter Management\7f252556
-Ref: disable frame-filter all\7f253100
-Node: Selection\7f257408
-Node: Frame Info\7f260280
-Node: Source\7f262267
-Node: List\7f263333
-Node: Specify Location\7f266035
-Node: Edit\7f270639
-Ref: Edit-Footnote-1\7f272115
-Node: Search\7f272350
-Node: Source Path\7f273158
-Ref: set substitute-path\7f279524
-Node: Machine Code\7f281744
-Node: Data\7f288645
-Node: Expressions\7f296309
-Node: Ambiguous Expressions\7f298412
-Node: Variables\7f303342
-Node: Arrays\7f309408
-Node: Output Formats\7f311939
-Ref: Output Formats-Footnote-1\7f315312
-Node: Memory\7f315469
-Node: Auto Display\7f321866
-Node: Print Settings\7f326408
-Ref: set print entry-values\7f334570
-Node: Pretty Printing\7f345884
-Node: Pretty-Printer Introduction\7f346398
-Node: Pretty-Printer Example\7f348153
-Node: Pretty-Printer Commands\7f348931
-Node: Value History\7f351355
-Node: Convenience Vars\7f353777
-Node: Convenience Funs\7f360259
-Node: Registers\7f363130
-Ref: Registers-Footnote-1\7f369063
-Node: Floating Point Hardware\7f369458
-Node: Vector Unit\7f369990
-Node: OS Information\7f370377
-Ref: linux info os infotypes\7f372401
-Node: Memory Region Attributes\7f376608
-Node: Dump/Restore Files\7f381272
-Node: Core File Generation\7f383577
-Node: Character Sets\7f384801
-Node: Caching Target Data\7f391166
-Ref: Caching Target Data-Footnote-1\7f393894
-Node: Searching Memory\7f394132
-Node: Optimized Code\7f397010
-Node: Inline Functions\7f398687
-Node: Tail Call Frames\7f401314
-Ref: set debug entry-values\7f403454
-Node: Macros\7f407528
-Ref: Macros-Footnote-1\7f415104
-Node: Tracepoints\7f415257
-Node: Set Tracepoints\7f417319
-Node: Create and Delete Tracepoints\7f420257
-Node: Enable and Disable Tracepoints\7f426658
-Node: Tracepoint Passcounts\7f427898
-Node: Tracepoint Conditions\7f429309
-Node: Trace State Variables\7f431003
-Node: Tracepoint Actions\7f433198
-Node: Listing Tracepoints\7f439501
-Node: Listing Static Tracepoint Markers\7f441203
-Node: Starting and Stopping Trace Experiments\7f443051
-Ref: disconnected tracing\7f444796
-Node: Tracepoint Restrictions\7f449216
-Node: Analyze Collected Data\7f452985
-Node: tfind\7f454291
-Node: tdump\7f458713
-Node: save tracepoints\7f461228
-Node: Tracepoint Variables\7f461724
-Node: Trace Files\7f462852
-Node: Overlays\7f465228
-Node: How Overlays Work\7f465948
-Ref: A code overlay\7f468503
-Node: Overlay Commands\7f471916
-Node: Automatic Overlay Debugging\7f476098
-Node: Overlay Sample Program\7f478237
-Node: Languages\7f479974
-Node: Setting\7f481137
-Node: Filenames\7f482838
-Node: Manually\7f483649
-Node: Automatically\7f484858
-Node: Show\7f485919
-Ref: show language\7f486207
-Node: Checks\7f487241
-Node: Type Checking\7f488246
-Node: Range Checking\7f490075
-Node: Supported Languages\7f492476
-Node: C\7f493776
-Node: C Operators\7f494740
-Node: C Constants\7f499079
-Node: C Plus Plus Expressions\7f501958
-Node: C Defaults\7f505301
-Node: C Checks\7f505969
-Node: Debugging C\7f506529
-Node: Debugging C Plus Plus\7f507013
-Node: Decimal Floating Point\7f510487
-Node: D\7f511757
-Node: Go\7f512015
-Node: Objective-C\7f513109
-Node: Method Names in Commands\7f513572
-Node: The Print Command with Objective-C\7f515263
-Node: OpenCL C\7f515914
-Node: OpenCL C Datatypes\7f516189
-Node: OpenCL C Expressions\7f516564
-Node: OpenCL C Operators\7f516921
-Node: Fortran\7f517153
-Node: Fortran Operators\7f517874
-Node: Fortran Defaults\7f518730
-Node: Special Fortran Commands\7f519115
-Node: Pascal\7f519621
-Node: Modula-2\7f520136
-Node: M2 Operators\7f521111
-Node: Built-In Func/Proc\7f524109
-Node: M2 Constants\7f527023
-Node: M2 Types\7f528624
-Node: M2 Defaults\7f531842
-Node: Deviations\7f532443
-Node: M2 Checks\7f533544
-Node: M2 Scope\7f534361
-Node: GDB/M2\7f535385
-Node: Ada\7f536298
-Node: Ada Mode Intro\7f537408
-Node: Omissions from Ada\7f539319
-Node: Additions to Ada\7f543672
-Node: Stopping Before Main Program\7f547599
-Node: Ada Exceptions\7f548133
-Node: Ada Tasks\7f549330
-Node: Ada Tasks and Core Files\7f555752
-Node: Ravenscar Profile\7f556670
-Node: Ada Glitches\7f557739
-Node: Unsupported Languages\7f561748
-Node: Symbols\7f562438
-Node: Altering\7f580702
-Node: Assignment\7f581671
-Node: Jumping\7f584777
-Node: Signaling\7f586939
-Node: Returning\7f588076
-Node: Calling\7f591427
-Node: Patching\7f594469
-Node: GDB Files\7f595546
-Node: Files\7f596266
-Ref: Shared Libraries\7f609989
-Ref: Files-Footnote-1\7f621619
-Node: Separate Debug Files\7f623494
-Ref: debug-file-directory\7f626598
-Node: MiniDebugInfo\7f635212
-Node: Index Files\7f637663
-Node: Symbol Errors\7f639725
-Node: Data Files\7f643341
-Node: Targets\7f644297
-Node: Active Targets\7f645777
-Node: Target Commands\7f646851
-Ref: load\7f651233
-Node: Byte Order\7f652214
-Node: Remote Debugging\7f653188
-Node: Connecting\7f654450
-Node: File Transfer\7f659385
-Node: Server\7f660324
-Ref: Other Command-Line Arguments for gdbserver\7f667915
-Ref: Monitor Commands for gdbserver\7f671029
-Ref: Server-Footnote-1\7f676204
-Node: Remote Configuration\7f676324
-Ref: set remotebreak\7f677350
-Ref: set remote hardware-watchpoint-limit\7f678813
-Ref: set remote hardware-breakpoint-limit\7f678813
-Ref: set remote hardware-watchpoint-length-limit\7f679039
-Ref: set remote exec-file\7f679454
-Node: Remote Stub\7f688943
-Node: Stub Contents\7f691838
-Node: Bootstrapping\7f693945
-Node: Debug Session\7f697760
-Node: Configurations\7f699801
-Node: Native\7f700570
-Node: HP-UX\7f701139
-Node: BSD libkvm Interface\7f701428
-Node: SVR4 Process Information\7f702499
-Node: DJGPP Native\7f706303
-Node: Cygwin Native\7f712862
-Node: Non-debug DLL Symbols\7f716936
-Node: Hurd Native\7f721089
-Node: Darwin\7f726345
-Node: Embedded OS\7f727606
-Node: VxWorks\7f728082
-Node: VxWorks Connection\7f730296
-Node: VxWorks Download\7f731230
-Node: VxWorks Attach\7f732965
-Node: Embedded Processors\7f733362
-Node: ARM\7f734495
-Node: M32R/D\7f738631
-Node: M68K\7f740333
-Node: MicroBlaze\7f740625
-Node: MIPS Embedded\7f742074
-Node: PowerPC Embedded\7f747011
-Node: PA\7f750791
-Node: Sparclet\7f751074
-Node: Sparclet File\7f752543
-Node: Sparclet Connection\7f753423
-Node: Sparclet Download\7f753901
-Node: Sparclet Execution\7f754949
-Node: Sparclite\7f755540
-Node: Z8000\7f755912
-Node: AVR\7f757294
-Node: CRIS\7f757657
-Node: Super-H\7f758635
-Node: Architectures\7f759694
-Node: AArch64\7f760131
-Node: i386\7f760537
-Ref: i386-Footnote-1\7f762769
-Node: Alpha\7f762855
-Node: MIPS\7f762988
-Node: HPPA\7f766882
-Node: SPU\7f767400
-Node: PowerPC\7f769586
-Node: Nios II\7f770321
-Node: Controlling GDB\7f770710
-Node: Prompt\7f771606
-Node: Editing\7f773324
-Node: Command History\7f774267
-Node: Screen Size\7f777798
-Node: Numbers\7f779732
-Node: ABI\7f781711
-Node: Auto-loading\7f784884
-Ref: set auto-load off\7f786259
-Ref: show auto-load\7f786895
-Ref: info auto-load\7f787674
-Node: Init File in the Current Directory\7f790604
-Ref: set auto-load local-gdbinit\7f791179
-Ref: show auto-load local-gdbinit\7f791361
-Ref: info auto-load local-gdbinit\7f791525
-Node: libthread_db.so.1 file\7f791673
-Ref: set auto-load libthread-db\7f792612
-Ref: show auto-load libthread-db\7f792743
-Ref: info auto-load libthread-db\7f792880
-Node: Auto-loading safe path\7f793064
-Ref: set auto-load safe-path\7f794370
-Ref: show auto-load safe-path\7f795109
-Ref: add-auto-load-safe-path\7f795232
-Node: Auto-loading verbose mode\7f798126
-Ref: set debug auto-load\7f799289
-Ref: show debug auto-load\7f799390
-Node: Messages/Warnings\7f799512
-Ref: confirmation requests\7f800946
-Node: Debugging Output\7f802150
-Node: Other Misc Settings\7f810629
-Node: Extending GDB\7f811653
-Node: Sequences\7f813506
-Node: Define\7f814167
-Node: Hooks\7f817978
-Node: Command Files\7f820344
-Node: Output\7f825417
-Node: Auto-loading sequences\7f830381
-Ref: set auto-load gdb-scripts\7f830876
-Ref: show auto-load gdb-scripts\7f831000
-Ref: info auto-load gdb-scripts\7f831130
-Node: Python\7f831361
-Node: Python Commands\7f832534
-Node: Python API\7f834862
-Node: Basic Python\7f837345
-Ref: prompt_hook\7f846007
-Node: Exception Handling\7f846605
-Node: Values From Inferior\7f849101
-Node: Types In Python\7f862010
-Node: Pretty Printing API\7f871191
-Node: Selecting Pretty-Printers\7f875087
-Node: Writing a Pretty-Printer\7f877420
-Node: Type Printing API\7f882742
-Node: Frame Filter API\7f885358
-Node: Frame Decorator API\7f892639
-Ref: frame_args\7f896223
-Node: Writing a Frame Filter\7f899553
-Node: Xmethods In Python\7f912719
-Node: Xmethod API\7f915609
-Node: Writing an Xmethod\7f919128
-Node: Inferiors In Python\7f924713
-Node: Events In Python\7f927593
-Node: Threads In Python\7f932772
-Node: Commands In Python\7f935212
-Node: Parameters In Python\7f944622
-Node: Functions In Python\7f950082
-Node: Progspaces In Python\7f952299
-Node: Objfiles In Python\7f953983
-Node: Frames In Python\7f956242
-Node: Blocks In Python\7f962545
-Node: Symbols In Python\7f966907
-Node: Symbol Tables In Python\7f974134
-Node: Line Tables In Python\7f977059
-Node: Breakpoints In Python\7f979896
-Node: Finish Breakpoints in Python\7f987824
-Node: Lazy Strings In Python\7f989930
-Node: Architectures In Python\7f992164
-Node: Python Auto-loading\7f994353
-Ref: set auto-load python-scripts\7f994982
-Ref: show auto-load python-scripts\7f995082
-Ref: info auto-load python-scripts\7f995188
-Node: Python modules\7f996213
-Node: gdb.printing\7f996599
-Node: gdb.types\7f998026
-Node: gdb.prompt\7f1001038
-Node: Guile\7f1002687
-Node: Guile Introduction\7f1003346
-Node: Guile Commands\7f1004217
-Node: Guile API\7f1006071
-Node: Basic Guile\7f1008068
-Node: Guile Configuration\7f1013750
-Node: GDB Scheme Data Types\7f1014726
-Node: Guile Exception Handling\7f1016558
-Node: Values From Inferior In Guile\7f1020592
-Node: Arithmetic In Guile\7f1036127
-Node: Types In Guile\7f1037758
-Ref: Fields of a type in Guile\7f1045707
-Node: Guile Pretty Printing API\7f1047103
-Node: Selecting Guile Pretty-Printers\7f1052705
-Node: Writing a Guile Pretty-Printer\7f1055081
-Node: Commands In Guile\7f1060266
-Node: Parameters In Guile\7f1071046
-Ref: Parameters In Guile-Footnote-1\7f1077927
-Node: Progspaces In Guile\7f1078043
-Node: Objfiles In Guile\7f1080631
-Node: Frames In Guile\7f1082703
-Node: Blocks In Guile\7f1089133
-Node: Symbols In Guile\7f1093941
-Node: Symbol Tables In Guile\7f1101275
-Node: Breakpoints In Guile\7f1104238
-Node: Lazy Strings In Guile\7f1114469
-Node: Architectures In Guile\7f1116763
-Node: Disassembly In Guile\7f1121070
-Node: I/O Ports in Guile\7f1124272
-Node: Memory Ports in Guile\7f1124828
-Node: Iterators In Guile\7f1128000
-Node: Guile Auto-loading\7f1132289
-Ref: set auto-load guile-scripts\7f1132912
-Ref: show auto-load guile-scripts\7f1133010
-Ref: info auto-load guile-scripts\7f1133114
-Node: Guile Modules\7f1134073
-Node: Guile Printing Module\7f1134395
-Node: Guile Types Module\7f1135214
-Node: Auto-loading extensions\7f1136507
-Node: objfile-gdbdotext file\7f1137705
-Ref: set auto-load scripts-directory\7f1139141
-Ref: with-auto-load-dir\7f1139517
-Ref: show auto-load scripts-directory\7f1140335
-Node: dotdebug_gdb_scripts section\7f1140665
-Node: Which flavor to choose?\7f1142511
-Node: Multiple Extension Languages\7f1144332
-Node: Aliases\7f1145396
-Node: Interpreters\7f1148261
-Node: TUI\7f1150359
-Node: TUI Overview\7f1151303
-Node: TUI Keys\7f1153736
-Node: TUI Single Key Mode\7f1156040
-Node: TUI Commands\7f1156915
-Node: TUI Configuration\7f1159299
-Node: Emacs\7f1160605
-Node: GDB/MI\7f1166042
-Node: GDB/MI General Design\7f1168016
-Node: Context management\7f1170536
-Node: Asynchronous and non-stop modes\7f1174364
-Node: Thread groups\7f1177338
-Node: GDB/MI Command Syntax\7f1179616
-Node: GDB/MI Input Syntax\7f1179859
-Node: GDB/MI Output Syntax\7f1181409
-Node: GDB/MI Compatibility with CLI\7f1184994
-Node: GDB/MI Development and Front Ends\7f1185731
-Node: GDB/MI Output Records\7f1187385
-Node: GDB/MI Result Records\7f1187791
-Node: GDB/MI Stream Records\7f1189141
-Node: GDB/MI Async Records\7f1190406
-Node: GDB/MI Breakpoint Information\7f1201731
-Node: GDB/MI Frame Information\7f1205682
-Node: GDB/MI Thread Information\7f1206768
-Node: GDB/MI Ada Exception Information\7f1207748
-Node: GDB/MI Simple Examples\7f1208171
-Node: GDB/MI Command Description Format\7f1210379
-Node: GDB/MI Breakpoint Commands\7f1211259
-Node: GDB/MI Catchpoint Commands\7f1231105
-Node: Shared Library GDB/MI Catchpoint Commands\7f1231473
-Node: Ada Exception GDB/MI Catchpoint Commands\7f1233131
-Node: GDB/MI Program Context\7f1235535
-Node: GDB/MI Thread Commands\7f1239803
-Node: GDB/MI Ada Tasking Commands\7f1243759
-Node: GDB/MI Program Execution\7f1246012
-Node: GDB/MI Stack Manipulation\7f1258046
-Ref: -stack-list-arguments\7f1259945
-Ref: -stack-list-frames\7f1263650
-Ref: -stack-list-locals\7f1267513
-Ref: -stack-list-variables\7f1269003
-Node: GDB/MI Variable Objects\7f1270537
-Ref: -var-set-format\7f1280495
-Ref: -var-list-children\7f1281613
-Ref: -var-update\7f1290405
-Ref: -var-set-frozen\7f1293403
-Ref: -var-set-update-range\7f1294200
-Ref: -var-set-visualizer\7f1294729
-Node: GDB/MI Data Manipulation\7f1296219
-Node: GDB/MI Tracepoint Commands\7f1315766
-Node: GDB/MI Symbol Query\7f1327351
-Node: GDB/MI File Commands\7f1328040
-Node: GDB/MI Target Manipulation\7f1331335
-Node: GDB/MI File Transfer Commands\7f1337550
-Node: GDB/MI Ada Exceptions Commands\7f1338873
-Node: GDB/MI Support Commands\7f1340226
-Node: GDB/MI Miscellaneous Commands\7f1344799
-Ref: -interpreter-exec\7f1354823
-Node: Annotations\7f1357163
-Node: Annotations Overview\7f1358082
-Node: Server Prefix\7f1360545
-Node: Prompting\7f1361279
-Node: Errors\7f1362796
-Node: Invalidation\7f1363692
-Node: Annotations for Running\7f1364171
-Node: Source Annotations\7f1365705
-Node: JIT Interface\7f1366634
-Node: Declarations\7f1368433
-Node: Registering Code\7f1369820
-Node: Unregistering Code\7f1370792
-Node: Custom Debug Info\7f1371419
-Node: Using JIT Debug Info Readers\7f1372715
-Node: Writing JIT Debug Info Readers\7f1373727
-Node: In-Process Agent\7f1375922
-Ref: Control Agent\7f1377865
-Node: In-Process Agent Protocol\7f1378732
-Node: IPA Protocol Objects\7f1379523
-Ref: agent expression object\7f1380521
-Ref: tracepoint action object\7f1380726
-Ref: tracepoint object\7f1380806
-Node: IPA Protocol Commands\7f1383382
-Node: GDB Bugs\7f1384852
-Node: Bug Criteria\7f1385584
-Node: Bug Reporting\7f1386461
-Node: Command Line Editing\7f1394290
-Node: Introduction and Notation\7f1394942
-Node: Readline Interaction\7f1396563
-Node: Readline Bare Essentials\7f1397752
-Node: Readline Movement Commands\7f1399533
-Node: Readline Killing Commands\7f1400491
-Node: Readline Arguments\7f1402407
-Node: Searching\7f1403449
-Node: Readline Init File\7f1405599
-Node: Readline Init File Syntax\7f1406750
-Node: Conditional Init Constructs\7f1421849
-Node: Sample Init File\7f1424372
-Node: Bindable Readline Commands\7f1427486
-Node: Commands For Moving\7f1428538
-Node: Commands For History\7f1429396
-Node: Commands For Text\7f1432791
-Node: Commands For Killing\7f1435514
-Node: Numeric Arguments\7f1437654
-Node: Commands For Completion\7f1438790
-Node: Keyboard Macros\7f1440756
-Node: Miscellaneous Commands\7f1441324
-Node: Readline vi Mode\7f1445172
-Node: Using History Interactively\7f1446082
-Node: History Interaction\7f1446597
-Node: Event Designators\7f1448019
-Node: Word Designators\7f1449156
-Node: Modifiers\7f1450791
-Node: In Memoriam\7f1452012
-Node: Formatting Documentation\7f1452895
-Ref: Formatting Documentation-Footnote-1\7f1456207
-Node: Installing GDB\7f1456271
-Node: Requirements\7f1456843
-Ref: Expat\7f1457412
-Node: Running Configure\7f1459979
-Node: Separate Objdir\7f1463518
-Node: Config Names\7f1466401
-Node: Configure Options\7f1467846
-Node: System-wide configuration\7f1470217
-Node: System-wide Configuration Scripts\7f1472177
-Node: Maintenance Commands\7f1473361
-Ref: maint info breakpoints\7f1475016
-Node: Remote Protocol\7f1491279
-Node: Overview\7f1491933
-Ref: Binary Data\7f1494478
-Node: Packets\7f1497003
-Ref: thread-id syntax\7f1497903
-Ref: extended mode\7f1499348
-Ref: ? packet\7f1499606
-Ref: bc\7f1501072
-Ref: bs\7f1501282
-Ref: read registers packet\7f1502899
-Ref: cycle step packet\7f1504835
-Ref: write register packet\7f1507436
-Ref: step with signal packet\7f1508415
-Ref: vCont packet\7f1509891
-Ref: vKill packet\7f1514779
-Ref: X packet\7f1515709
-Ref: insert breakpoint or watchpoint packet\7f1516020
-Node: Stop Reply Packets\7f1521760
-Node: General Query Packets\7f1526526
-Ref: qCRC packet\7f1529356
-Ref: QNonStop\7f1537179
-Ref: QPassSignals\7f1537841
-Ref: QProgramSignals\7f1539048
-Ref: qSearch memory\7f1541563
-Ref: QStartNoAckMode\7f1542071
-Ref: qSupported\7f1542602
-Ref: multiprocess extensions\7f1555300
-Ref: install tracepoint in tracing\7f1557330
-Ref: qXfer read\7f1560714
-Ref: qXfer auxiliary vector read\7f1561209
-Ref: qXfer btrace read\7f1561557
-Ref: qXfer target description read\7f1562624
-Ref: qXfer library list read\7f1563058
-Ref: qXfer svr4 library list read\7f1563714
-Ref: qXfer memory map read\7f1565567
-Ref: qXfer sdata read\7f1565954
-Ref: qXfer siginfo read\7f1566420
-Ref: qXfer spu read\7f1566817
-Ref: qXfer threads read\7f1567341
-Ref: qXfer traceframe info read\7f1567744
-Ref: qXfer unwind info block\7f1568162
-Ref: qXfer fdpic loadmap read\7f1568396
-Ref: qXfer osdata read\7f1568812
-Ref: qXfer write\7f1570074
-Ref: qXfer siginfo write\7f1570641
-Ref: qXfer spu write\7f1571038
-Ref: General Query Packets-Footnote-1\7f1573580
-Node: Architecture-Specific Protocol Details\7f1573907
-Node: ARM-Specific Protocol Details\7f1574416
-Node: ARM Breakpoint Kinds\7f1574664
-Node: MIPS-Specific Protocol Details\7f1574995
-Node: MIPS Register packet Format\7f1575278
-Node: MIPS Breakpoint Kinds\7f1576205
-Node: Tracepoint Packets\7f1576623
-Ref: QTEnable\7f1585614
-Ref: QTDisable\7f1585810
-Ref: qTfSTM\7f1591347
-Ref: qTsSTM\7f1591347
-Ref: qTSTMat\7f1592424
-Ref: QTBuffer-size\7f1593575
-Node: Host I/O Packets\7f1595548
-Node: Interrupts\7f1600159
-Node: Notification Packets\7f1602062
-Node: Remote Non-Stop\7f1607482
-Node: Packet Acknowledgment\7f1609772
-Node: Examples\7f1611887
-Node: File-I/O Remote Protocol Extension\7f1612481
-Node: File-I/O Overview\7f1612943
-Node: Protocol Basics\7f1615142
-Node: The F Request Packet\7f1617371
-Node: The F Reply Packet\7f1618272
-Node: The Ctrl-C Message\7f1619190
-Node: Console I/O\7f1620816
-Node: List of Supported Calls\7f1622032
-Node: open\7f1622394
-Node: close\7f1624902
-Node: read\7f1625285
-Node: write\7f1625894
-Node: lseek\7f1626665
-Node: rename\7f1627549
-Node: unlink\7f1628956
-Node: stat/fstat\7f1629903
-Node: gettimeofday\7f1630796
-Node: isatty\7f1631232
-Node: system\7f1631828
-Node: Protocol-specific Representation of Datatypes\7f1633370
-Node: Integral Datatypes\7f1633747
-Node: Pointer Values\7f1634554
-Node: Memory Transfer\7f1635258
-Node: struct stat\7f1635878
-Node: struct timeval\7f1638080
-Node: Constants\7f1638597
-Node: Open Flags\7f1639046
-Node: mode_t Values\7f1639387
-Node: Errno Values\7f1639879
-Node: Lseek Flags\7f1640689
-Node: Limits\7f1640874
-Node: File-I/O Examples\7f1641234
-Node: Library List Format\7f1642322
-Node: Library List Format for SVR4 Targets\7f1645104
-Node: Memory Map Format\7f1647571
-Node: Thread List Format\7f1650146
-Node: Traceframe Info Format\7f1650964
-Node: Branch Trace Format\7f1652650
-Node: Agent Expressions\7f1653995
-Node: General Bytecode Design\7f1656816
-Node: Bytecode Descriptions\7f1661610
-Node: Using Agent Expressions\7f1675041
-Node: Varying Target Capabilities\7f1677018
-Node: Rationale\7f1678179
-Node: Target Descriptions\7f1685568
-Node: Retrieving Descriptions\7f1687442
-Node: Target Description Format\7f1688527
-Node: Predefined Target Types\7f1697570
-Node: Standard Target Features\7f1698954
-Node: AArch64 Features\7f1700818
-Node: ARM Features\7f1701241
-Node: i386 Features\7f1702759
-Node: MIPS Features\7f1704695
-Node: M68K Features\7f1705880
-Node: Nios II Features\7f1706543
-Node: PowerPC Features\7f1706941
-Node: S/390 and System z Features\7f1708264
-Node: TIC6x Features\7f1709729
-Node: Operating System Information\7f1710289
-Node: Process list\7f1711124
-Node: Trace File Format\7f1712187
-Node: Index Section Format\7f1714180
-Node: Man Pages\7f1722150
-Node: gdb man\7f1722556
-Node: gdbserver man\7f1728592
-Node: gcore man\7f1735789
-Node: gdbinit man\7f1736446
-Node: Copying\7f1737329
-Node: GNU Free Documentation License\7f1774890
-Node: Concept Index\7f1801737
-Node: Command and Variable Index\7f1930239
+Node: Top\7f1702
+Node: Summary\7f5160
+Node: Free Software\7f7021
+Node: Free Documentation\7f7761
+Node: Contributors\7f12695
+Node: Sample Session\7f20793
+Node: Invocation\7f27631
+Node: Invoking GDB\7f28174
+Node: File Options\7f30508
+Node: Mode Options\7f33565
+Ref: -nx\7f33792
+Ref: -nh\7f34876
+Node: Startup\7f41194
+Ref: Home Directory Init File\7f41745
+Ref: Option -init-eval-command\7f41855
+Ref: Init File in the Current Directory during Startup\7f42195
+Ref: Startup-Footnote-1\7f44391
+Node: Quitting GDB\7f44500
+Node: Shell Commands\7f45397
+Node: Logging Output\7f46324
+Node: Commands\7f47161
+Node: Command Syntax\7f47799
+Node: Completion\7f49965
+Ref: Completion-Footnote-1\7f55329
+Node: Help\7f55489
+Node: Running\7f61240
+Node: Compilation\7f62469
+Node: Starting\7f64553
+Ref: set exec-wrapper\7f69846
+Ref: set auto-connect-native-target\7f72000
+Node: Arguments\7f76396
+Node: Environment\7f77665
+Node: Working Directory\7f81399
+Node: Input/Output\7f82551
+Node: Attach\7f84522
+Node: Kill Process\7f86988
+Node: Inferiors and Programs\7f87969
+Node: Threads\7f95212
+Ref: set libthread-db-search-path\7f102621
+Node: Forks\7f104675
+Node: Checkpoint/Restart\7f110989
+Ref: Checkpoint/Restart-Footnote-1\7f115517
+Node: Stopping\7f115552
+Node: Breakpoints\7f116815
+Node: Set Breaks\7f120354
+Node: Set Watchpoints\7f139089
+Node: Set Catchpoints\7f148493
+Node: Delete Breaks\7f159367
+Node: Disabling\7f161307
+Node: Conditions\7f164692
+Node: Break Commands\7f170339
+Node: Dynamic Printf\7f173560
+Node: Save Breakpoints\7f177819
+Node: Static Probe Points\7f178994
+Node: Error in Breakpoints\7f181681
+Node: Breakpoint-related Warnings\7f182417
+Node: Continuing and Stepping\7f184744
+Ref: range stepping\7f194124
+Node: Skipping Over Functions and Files\7f195204
+Node: Signals\7f198776
+Ref: extra signal information\7f203210
+Node: Thread Stops\7f204714
+Node: All-Stop Mode\7f205813
+Node: Non-Stop Mode\7f209713
+Node: Background Execution\7f213126
+Node: Thread-Specific Breakpoints\7f215342
+Node: Interrupted System Calls\7f217360
+Node: Observer Mode\7f218874
+Node: Reverse Execution\7f222310
+Ref: Reverse Execution-Footnote-1\7f226935
+Ref: Reverse Execution-Footnote-2\7f227562
+Node: Process Record and Replay\7f227612
+Node: Stack\7f241938
+Node: Frames\7f243486
+Node: Backtrace\7f246253
+Ref: backtrace-command\7f246604
+Ref: Backtrace-Footnote-1\7f252374
+Node: Frame Filter Management\7f252562
+Ref: disable frame-filter all\7f253106
+Node: Selection\7f257414
+Node: Frame Info\7f260286
+Node: Source\7f262273
+Node: List\7f263339
+Node: Specify Location\7f266041
+Node: Edit\7f270645
+Ref: Edit-Footnote-1\7f272121
+Node: Search\7f272356
+Node: Source Path\7f273164
+Ref: set substitute-path\7f279530
+Node: Machine Code\7f281750
+Node: Data\7f288651
+Node: Expressions\7f296315
+Node: Ambiguous Expressions\7f298418
+Node: Variables\7f303350
+Node: Arrays\7f309416
+Node: Output Formats\7f311947
+Ref: Output Formats-Footnote-1\7f315320
+Node: Memory\7f315477
+Node: Auto Display\7f321874
+Node: Print Settings\7f326416
+Ref: set print entry-values\7f334578
+Node: Pretty Printing\7f345892
+Node: Pretty-Printer Introduction\7f346406
+Node: Pretty-Printer Example\7f348161
+Node: Pretty-Printer Commands\7f348939
+Node: Value History\7f351363
+Node: Convenience Vars\7f353785
+Node: Convenience Funs\7f360267
+Node: Registers\7f363138
+Ref: Registers-Footnote-1\7f369071
+Node: Floating Point Hardware\7f369466
+Node: Vector Unit\7f369998
+Node: OS Information\7f370385
+Ref: linux info os infotypes\7f372409
+Node: Memory Region Attributes\7f376616
+Node: Dump/Restore Files\7f381280
+Node: Core File Generation\7f383585
+Node: Character Sets\7f384809
+Node: Caching Target Data\7f391174
+Ref: Caching Target Data-Footnote-1\7f393902
+Node: Searching Memory\7f394140
+Node: Optimized Code\7f397018
+Node: Inline Functions\7f398695
+Node: Tail Call Frames\7f401322
+Ref: set debug entry-values\7f403462
+Node: Macros\7f407536
+Ref: Macros-Footnote-1\7f415112
+Node: Tracepoints\7f415265
+Node: Set Tracepoints\7f417327
+Node: Create and Delete Tracepoints\7f420265
+Node: Enable and Disable Tracepoints\7f426666
+Node: Tracepoint Passcounts\7f427906
+Node: Tracepoint Conditions\7f429317
+Node: Trace State Variables\7f431011
+Node: Tracepoint Actions\7f433206
+Node: Listing Tracepoints\7f439509
+Node: Listing Static Tracepoint Markers\7f441211
+Node: Starting and Stopping Trace Experiments\7f443059
+Ref: disconnected tracing\7f444804
+Node: Tracepoint Restrictions\7f449224
+Node: Analyze Collected Data\7f452993
+Node: tfind\7f454299
+Node: tdump\7f458721
+Node: save tracepoints\7f461236
+Node: Tracepoint Variables\7f461732
+Node: Trace Files\7f462860
+Node: Overlays\7f465236
+Node: How Overlays Work\7f465956
+Ref: A code overlay\7f468511
+Node: Overlay Commands\7f471924
+Node: Automatic Overlay Debugging\7f476106
+Node: Overlay Sample Program\7f478245
+Node: Languages\7f479982
+Node: Setting\7f481145
+Node: Filenames\7f482846
+Node: Manually\7f483657
+Node: Automatically\7f484866
+Node: Show\7f485927
+Ref: show language\7f486215
+Node: Checks\7f487249
+Node: Type Checking\7f488254
+Node: Range Checking\7f490083
+Node: Supported Languages\7f492484
+Node: C\7f493784
+Node: C Operators\7f494748
+Node: C Constants\7f499087
+Node: C Plus Plus Expressions\7f501966
+Node: C Defaults\7f505309
+Node: C Checks\7f505977
+Node: Debugging C\7f506537
+Node: Debugging C Plus Plus\7f507021
+Node: Decimal Floating Point\7f510495
+Node: D\7f511765
+Node: Go\7f512023
+Node: Objective-C\7f513117
+Node: Method Names in Commands\7f513580
+Node: The Print Command with Objective-C\7f515271
+Node: OpenCL C\7f515922
+Node: OpenCL C Datatypes\7f516197
+Node: OpenCL C Expressions\7f516572
+Node: OpenCL C Operators\7f516929
+Node: Fortran\7f517161
+Node: Fortran Operators\7f517882
+Node: Fortran Defaults\7f518738
+Node: Special Fortran Commands\7f519123
+Node: Pascal\7f519629
+Node: Modula-2\7f520144
+Node: M2 Operators\7f521119
+Node: Built-In Func/Proc\7f524117
+Node: M2 Constants\7f527031
+Node: M2 Types\7f528632
+Node: M2 Defaults\7f531850
+Node: Deviations\7f532451
+Node: M2 Checks\7f533552
+Node: M2 Scope\7f534369
+Node: GDB/M2\7f535393
+Node: Ada\7f536306
+Node: Ada Mode Intro\7f537416
+Node: Omissions from Ada\7f539327
+Node: Additions to Ada\7f543680
+Node: Stopping Before Main Program\7f547607
+Node: Ada Exceptions\7f548141
+Node: Ada Tasks\7f549338
+Node: Ada Tasks and Core Files\7f555760
+Node: Ravenscar Profile\7f556678
+Node: Ada Glitches\7f557747
+Node: Unsupported Languages\7f561756
+Node: Symbols\7f562446
+Node: Altering\7f580710
+Node: Assignment\7f581679
+Node: Jumping\7f584785
+Node: Signaling\7f586947
+Node: Returning\7f588084
+Node: Calling\7f591435
+Node: Patching\7f594477
+Node: GDB Files\7f595554
+Node: Files\7f596274
+Ref: Shared Libraries\7f609997
+Ref: Files-Footnote-1\7f621627
+Node: Separate Debug Files\7f623504
+Ref: debug-file-directory\7f626608
+Node: MiniDebugInfo\7f635222
+Node: Index Files\7f637673
+Node: Symbol Errors\7f639735
+Node: Data Files\7f643351
+Node: Targets\7f644307
+Node: Active Targets\7f645787
+Node: Target Commands\7f646861
+Ref: load\7f651243
+Node: Byte Order\7f652224
+Node: Remote Debugging\7f653198
+Node: Connecting\7f654460
+Node: File Transfer\7f659395
+Node: Server\7f660334
+Ref: Other Command-Line Arguments for gdbserver\7f667925
+Ref: Monitor Commands for gdbserver\7f671039
+Ref: Server-Footnote-1\7f676214
+Node: Remote Configuration\7f676334
+Ref: set remotebreak\7f677360
+Ref: set remote hardware-watchpoint-limit\7f678823
+Ref: set remote hardware-breakpoint-limit\7f678823
+Ref: set remote hardware-watchpoint-length-limit\7f679049
+Ref: set remote exec-file\7f679464
+Node: Remote Stub\7f688953
+Node: Stub Contents\7f691848
+Node: Bootstrapping\7f693955
+Node: Debug Session\7f697770
+Node: Configurations\7f699811
+Node: Native\7f700580
+Node: HP-UX\7f701149
+Node: BSD libkvm Interface\7f701438
+Node: SVR4 Process Information\7f702509
+Node: DJGPP Native\7f706313
+Node: Cygwin Native\7f712872
+Node: Non-debug DLL Symbols\7f716946
+Node: Hurd Native\7f721099
+Node: Darwin\7f726355
+Node: Embedded OS\7f727616
+Node: VxWorks\7f728092
+Node: VxWorks Connection\7f730306
+Node: VxWorks Download\7f731240
+Node: VxWorks Attach\7f732975
+Node: Embedded Processors\7f733372
+Node: ARM\7f734505
+Node: M32R/D\7f738641
+Node: M68K\7f740343
+Node: MicroBlaze\7f740635
+Node: MIPS Embedded\7f742084
+Node: PowerPC Embedded\7f747021
+Node: PA\7f750801
+Node: Sparclet\7f751084
+Node: Sparclet File\7f752553
+Node: Sparclet Connection\7f753433
+Node: Sparclet Download\7f753911
+Node: Sparclet Execution\7f754959
+Node: Sparclite\7f755550
+Node: Z8000\7f755922
+Node: AVR\7f757304
+Node: CRIS\7f757667
+Node: Super-H\7f758645
+Node: Architectures\7f759704
+Node: AArch64\7f760141
+Node: i386\7f760547
+Ref: i386-Footnote-1\7f762779
+Node: Alpha\7f762865
+Node: MIPS\7f762998
+Node: HPPA\7f766892
+Node: SPU\7f767410
+Node: PowerPC\7f769596
+Node: Nios II\7f770331
+Node: Controlling GDB\7f770720
+Node: Prompt\7f771616
+Node: Editing\7f773334
+Node: Command History\7f774277
+Node: Screen Size\7f777808
+Node: Numbers\7f779742
+Node: ABI\7f781721
+Node: Auto-loading\7f784894
+Ref: set auto-load off\7f786269
+Ref: show auto-load\7f786905
+Ref: info auto-load\7f787684
+Node: Init File in the Current Directory\7f790614
+Ref: set auto-load local-gdbinit\7f791189
+Ref: show auto-load local-gdbinit\7f791371
+Ref: info auto-load local-gdbinit\7f791535
+Node: libthread_db.so.1 file\7f791683
+Ref: set auto-load libthread-db\7f792622
+Ref: show auto-load libthread-db\7f792753
+Ref: info auto-load libthread-db\7f792890
+Node: Auto-loading safe path\7f793074
+Ref: set auto-load safe-path\7f794380
+Ref: show auto-load safe-path\7f795119
+Ref: add-auto-load-safe-path\7f795242
+Node: Auto-loading verbose mode\7f798136
+Ref: set debug auto-load\7f799299
+Ref: show debug auto-load\7f799400
+Node: Messages/Warnings\7f799522
+Ref: confirmation requests\7f800956
+Node: Debugging Output\7f802160
+Node: Other Misc Settings\7f810639
+Node: Extending GDB\7f811663
+Node: Sequences\7f813516
+Node: Define\7f814177
+Node: Hooks\7f817988
+Node: Command Files\7f820354
+Node: Output\7f825427
+Node: Auto-loading sequences\7f830391
+Ref: set auto-load gdb-scripts\7f830886
+Ref: show auto-load gdb-scripts\7f831010
+Ref: info auto-load gdb-scripts\7f831140
+Node: Python\7f831371
+Node: Python Commands\7f832544
+Node: Python API\7f834872
+Node: Basic Python\7f837355
+Ref: prompt_hook\7f846017
+Node: Exception Handling\7f846615
+Node: Values From Inferior\7f849111
+Node: Types In Python\7f862020
+Node: Pretty Printing API\7f871201
+Node: Selecting Pretty-Printers\7f875097
+Node: Writing a Pretty-Printer\7f877430
+Node: Type Printing API\7f882752
+Node: Frame Filter API\7f885368
+Node: Frame Decorator API\7f892649
+Ref: frame_args\7f896233
+Node: Writing a Frame Filter\7f899563
+Node: Xmethods In Python\7f912731
+Node: Xmethod API\7f915621
+Node: Writing an Xmethod\7f919140
+Node: Inferiors In Python\7f924725
+Node: Events In Python\7f927605
+Node: Threads In Python\7f932784
+Node: Commands In Python\7f935224
+Node: Parameters In Python\7f944634
+Node: Functions In Python\7f950094
+Node: Progspaces In Python\7f952311
+Node: Objfiles In Python\7f953995
+Node: Frames In Python\7f956254
+Node: Blocks In Python\7f962557
+Node: Symbols In Python\7f966919
+Node: Symbol Tables In Python\7f974146
+Node: Line Tables In Python\7f977071
+Node: Breakpoints In Python\7f979908
+Node: Finish Breakpoints in Python\7f987836
+Node: Lazy Strings In Python\7f989942
+Node: Architectures In Python\7f992176
+Node: Python Auto-loading\7f994365
+Ref: set auto-load python-scripts\7f994994
+Ref: show auto-load python-scripts\7f995094
+Ref: info auto-load python-scripts\7f995200
+Node: Python modules\7f996225
+Node: gdb.printing\7f996611
+Node: gdb.types\7f998038
+Node: gdb.prompt\7f1001050
+Node: Guile\7f1002699
+Node: Guile Introduction\7f1003358
+Node: Guile Commands\7f1004229
+Node: Guile API\7f1006083
+Node: Basic Guile\7f1008080
+Node: Guile Configuration\7f1013762
+Node: GDB Scheme Data Types\7f1014738
+Node: Guile Exception Handling\7f1016570
+Node: Values From Inferior In Guile\7f1020604
+Node: Arithmetic In Guile\7f1036139
+Node: Types In Guile\7f1037770
+Ref: Fields of a type in Guile\7f1045719
+Node: Guile Pretty Printing API\7f1047115
+Node: Selecting Guile Pretty-Printers\7f1052717
+Node: Writing a Guile Pretty-Printer\7f1055093
+Node: Commands In Guile\7f1060278
+Node: Parameters In Guile\7f1071058
+Ref: Parameters In Guile-Footnote-1\7f1077939
+Node: Progspaces In Guile\7f1078055
+Node: Objfiles In Guile\7f1080643
+Node: Frames In Guile\7f1082715
+Node: Blocks In Guile\7f1089145
+Node: Symbols In Guile\7f1093953
+Node: Symbol Tables In Guile\7f1101287
+Node: Breakpoints In Guile\7f1104250
+Node: Lazy Strings In Guile\7f1114481
+Node: Architectures In Guile\7f1116775
+Node: Disassembly In Guile\7f1121082
+Node: I/O Ports in Guile\7f1124284
+Node: Memory Ports in Guile\7f1124840
+Node: Iterators In Guile\7f1128012
+Node: Guile Auto-loading\7f1132301
+Ref: set auto-load guile-scripts\7f1132924
+Ref: show auto-load guile-scripts\7f1133022
+Ref: info auto-load guile-scripts\7f1133126
+Node: Guile Modules\7f1134085
+Node: Guile Printing Module\7f1134407
+Node: Guile Types Module\7f1135226
+Node: Auto-loading extensions\7f1136519
+Node: objfile-gdbdotext file\7f1137717
+Ref: set auto-load scripts-directory\7f1139153
+Ref: with-auto-load-dir\7f1139529
+Ref: show auto-load scripts-directory\7f1140347
+Node: dotdebug_gdb_scripts section\7f1140677
+Node: Which flavor to choose?\7f1142523
+Node: Multiple Extension Languages\7f1144344
+Node: Aliases\7f1145408
+Node: Interpreters\7f1148273
+Node: TUI\7f1150371
+Node: TUI Overview\7f1151315
+Node: TUI Keys\7f1153748
+Node: TUI Single Key Mode\7f1156052
+Node: TUI Commands\7f1156927
+Node: TUI Configuration\7f1159311
+Node: Emacs\7f1160617
+Node: GDB/MI\7f1166054
+Node: GDB/MI General Design\7f1168028
+Node: Context management\7f1170548
+Node: Asynchronous and non-stop modes\7f1174376
+Node: Thread groups\7f1177350
+Node: GDB/MI Command Syntax\7f1179628
+Node: GDB/MI Input Syntax\7f1179871
+Node: GDB/MI Output Syntax\7f1181421
+Node: GDB/MI Compatibility with CLI\7f1185006
+Node: GDB/MI Development and Front Ends\7f1185743
+Node: GDB/MI Output Records\7f1187397
+Node: GDB/MI Result Records\7f1187803
+Node: GDB/MI Stream Records\7f1189153
+Node: GDB/MI Async Records\7f1190418
+Node: GDB/MI Breakpoint Information\7f1201745
+Node: GDB/MI Frame Information\7f1205696
+Node: GDB/MI Thread Information\7f1206782
+Node: GDB/MI Ada Exception Information\7f1207762
+Node: GDB/MI Simple Examples\7f1208185
+Node: GDB/MI Command Description Format\7f1210393
+Node: GDB/MI Breakpoint Commands\7f1211273
+Node: GDB/MI Catchpoint Commands\7f1231119
+Node: Shared Library GDB/MI Catchpoint Commands\7f1231487
+Node: Ada Exception GDB/MI Catchpoint Commands\7f1233145
+Node: GDB/MI Program Context\7f1235549
+Node: GDB/MI Thread Commands\7f1239817
+Node: GDB/MI Ada Tasking Commands\7f1243773
+Node: GDB/MI Program Execution\7f1246026
+Node: GDB/MI Stack Manipulation\7f1258060
+Ref: -stack-list-arguments\7f1259959
+Ref: -stack-list-frames\7f1263664
+Ref: -stack-list-locals\7f1267527
+Ref: -stack-list-variables\7f1269017
+Node: GDB/MI Variable Objects\7f1270551
+Ref: -var-set-format\7f1280509
+Ref: -var-list-children\7f1281627
+Ref: -var-update\7f1290419
+Ref: -var-set-frozen\7f1293417
+Ref: -var-set-update-range\7f1294214
+Ref: -var-set-visualizer\7f1294743
+Node: GDB/MI Data Manipulation\7f1296233
+Node: GDB/MI Tracepoint Commands\7f1315780
+Node: GDB/MI Symbol Query\7f1327365
+Node: GDB/MI File Commands\7f1328054
+Node: GDB/MI Target Manipulation\7f1331349
+Node: GDB/MI File Transfer Commands\7f1337564
+Node: GDB/MI Ada Exceptions Commands\7f1338887
+Node: GDB/MI Support Commands\7f1340240
+Node: GDB/MI Miscellaneous Commands\7f1344813
+Ref: -interpreter-exec\7f1354837
+Node: Annotations\7f1357177
+Node: Annotations Overview\7f1358096
+Node: Server Prefix\7f1360559
+Node: Prompting\7f1361293
+Node: Errors\7f1362810
+Node: Invalidation\7f1363706
+Node: Annotations for Running\7f1364185
+Node: Source Annotations\7f1365719
+Node: JIT Interface\7f1366648
+Node: Declarations\7f1368447
+Node: Registering Code\7f1369834
+Node: Unregistering Code\7f1370806
+Node: Custom Debug Info\7f1371433
+Node: Using JIT Debug Info Readers\7f1372729
+Node: Writing JIT Debug Info Readers\7f1373741
+Node: In-Process Agent\7f1375936
+Ref: Control Agent\7f1377879
+Node: In-Process Agent Protocol\7f1378746
+Node: IPA Protocol Objects\7f1379537
+Ref: agent expression object\7f1380535
+Ref: tracepoint action object\7f1380740
+Ref: tracepoint object\7f1380820
+Node: IPA Protocol Commands\7f1383396
+Node: GDB Bugs\7f1384866
+Node: Bug Criteria\7f1385598
+Node: Bug Reporting\7f1386475
+Node: Command Line Editing\7f1394304
+Node: Introduction and Notation\7f1394956
+Node: Readline Interaction\7f1396577
+Node: Readline Bare Essentials\7f1397766
+Node: Readline Movement Commands\7f1399547
+Node: Readline Killing Commands\7f1400505
+Node: Readline Arguments\7f1402421
+Node: Searching\7f1403463
+Node: Readline Init File\7f1405613
+Node: Readline Init File Syntax\7f1406764
+Node: Conditional Init Constructs\7f1421863
+Node: Sample Init File\7f1424386
+Node: Bindable Readline Commands\7f1427500
+Node: Commands For Moving\7f1428552
+Node: Commands For History\7f1429410
+Node: Commands For Text\7f1432805
+Node: Commands For Killing\7f1435528
+Node: Numeric Arguments\7f1437668
+Node: Commands For Completion\7f1438804
+Node: Keyboard Macros\7f1440770
+Node: Miscellaneous Commands\7f1441338
+Node: Readline vi Mode\7f1445186
+Node: Using History Interactively\7f1446096
+Node: History Interaction\7f1446611
+Node: Event Designators\7f1448033
+Node: Word Designators\7f1449170
+Node: Modifiers\7f1450805
+Node: In Memoriam\7f1452026
+Node: Formatting Documentation\7f1452909
+Ref: Formatting Documentation-Footnote-1\7f1456229
+Node: Installing GDB\7f1456297
+Node: Requirements\7f1456869
+Ref: Expat\7f1457438
+Node: Running Configure\7f1460005
+Node: Separate Objdir\7f1463574
+Node: Config Names\7f1466469
+Node: Configure Options\7f1467918
+Node: System-wide configuration\7f1470289
+Node: System-wide Configuration Scripts\7f1472249
+Node: Maintenance Commands\7f1473433
+Ref: maint info breakpoints\7f1475088
+Node: Remote Protocol\7f1491351
+Node: Overview\7f1492005
+Ref: Binary Data\7f1494550
+Node: Packets\7f1497075
+Ref: thread-id syntax\7f1497975
+Ref: extended mode\7f1499420
+Ref: ? packet\7f1499678
+Ref: bc\7f1501144
+Ref: bs\7f1501354
+Ref: read registers packet\7f1502971
+Ref: cycle step packet\7f1504907
+Ref: write register packet\7f1507508
+Ref: step with signal packet\7f1508487
+Ref: vCont packet\7f1509963
+Ref: vKill packet\7f1514851
+Ref: X packet\7f1515781
+Ref: insert breakpoint or watchpoint packet\7f1516092
+Node: Stop Reply Packets\7f1521834
+Node: General Query Packets\7f1526600
+Ref: qCRC packet\7f1529430
+Ref: QNonStop\7f1537253
+Ref: QPassSignals\7f1537915
+Ref: QProgramSignals\7f1539122
+Ref: qSearch memory\7f1541637
+Ref: QStartNoAckMode\7f1542145
+Ref: qSupported\7f1542676
+Ref: multiprocess extensions\7f1555374
+Ref: install tracepoint in tracing\7f1557404
+Ref: qXfer read\7f1560788
+Ref: qXfer auxiliary vector read\7f1561283
+Ref: qXfer btrace read\7f1561631
+Ref: qXfer target description read\7f1562698
+Ref: qXfer library list read\7f1563132
+Ref: qXfer svr4 library list read\7f1563788
+Ref: qXfer memory map read\7f1565641
+Ref: qXfer sdata read\7f1566028
+Ref: qXfer siginfo read\7f1566494
+Ref: qXfer spu read\7f1566891
+Ref: qXfer threads read\7f1567415
+Ref: qXfer traceframe info read\7f1567818
+Ref: qXfer unwind info block\7f1568236
+Ref: qXfer fdpic loadmap read\7f1568470
+Ref: qXfer osdata read\7f1568886
+Ref: qXfer write\7f1570148
+Ref: qXfer siginfo write\7f1570715
+Ref: qXfer spu write\7f1571112
+Ref: General Query Packets-Footnote-1\7f1573654
+Node: Architecture-Specific Protocol Details\7f1573981
+Node: ARM-Specific Protocol Details\7f1574490
+Node: ARM Breakpoint Kinds\7f1574738
+Node: MIPS-Specific Protocol Details\7f1575069
+Node: MIPS Register packet Format\7f1575352
+Node: MIPS Breakpoint Kinds\7f1576279
+Node: Tracepoint Packets\7f1576697
+Ref: QTEnable\7f1585688
+Ref: QTDisable\7f1585884
+Ref: qTfSTM\7f1591421
+Ref: qTsSTM\7f1591421
+Ref: qTSTMat\7f1592498
+Ref: QTBuffer-size\7f1593649
+Node: Host I/O Packets\7f1595622
+Node: Interrupts\7f1600233
+Node: Notification Packets\7f1602136
+Node: Remote Non-Stop\7f1607556
+Node: Packet Acknowledgment\7f1609846
+Node: Examples\7f1611961
+Node: File-I/O Remote Protocol Extension\7f1612555
+Node: File-I/O Overview\7f1613017
+Node: Protocol Basics\7f1615216
+Node: The F Request Packet\7f1617445
+Node: The F Reply Packet\7f1618346
+Node: The Ctrl-C Message\7f1619264
+Node: Console I/O\7f1620890
+Node: List of Supported Calls\7f1622106
+Node: open\7f1622468
+Node: close\7f1624976
+Node: read\7f1625359
+Node: write\7f1625968
+Node: lseek\7f1626739
+Node: rename\7f1627623
+Node: unlink\7f1629030
+Node: stat/fstat\7f1629977
+Node: gettimeofday\7f1630870
+Node: isatty\7f1631306
+Node: system\7f1631902
+Node: Protocol-specific Representation of Datatypes\7f1633444
+Node: Integral Datatypes\7f1633821
+Node: Pointer Values\7f1634628
+Node: Memory Transfer\7f1635332
+Node: struct stat\7f1635952
+Node: struct timeval\7f1638154
+Node: Constants\7f1638671
+Node: Open Flags\7f1639120
+Node: mode_t Values\7f1639461
+Node: Errno Values\7f1639953
+Node: Lseek Flags\7f1640763
+Node: Limits\7f1640948
+Node: File-I/O Examples\7f1641308
+Node: Library List Format\7f1642396
+Node: Library List Format for SVR4 Targets\7f1645178
+Node: Memory Map Format\7f1647645
+Node: Thread List Format\7f1650220
+Node: Traceframe Info Format\7f1651038
+Node: Branch Trace Format\7f1652724
+Node: Agent Expressions\7f1654069
+Node: General Bytecode Design\7f1656890
+Node: Bytecode Descriptions\7f1661684
+Node: Using Agent Expressions\7f1675115
+Node: Varying Target Capabilities\7f1677092
+Node: Rationale\7f1678253
+Node: Target Descriptions\7f1685642
+Node: Retrieving Descriptions\7f1687516
+Node: Target Description Format\7f1688601
+Node: Predefined Target Types\7f1697644
+Node: Standard Target Features\7f1699028
+Node: AArch64 Features\7f1700892
+Node: ARM Features\7f1701315
+Node: i386 Features\7f1702833
+Node: MIPS Features\7f1704769
+Node: M68K Features\7f1705954
+Node: Nios II Features\7f1706617
+Node: PowerPC Features\7f1707015
+Node: S/390 and System z Features\7f1708338
+Node: TIC6x Features\7f1709803
+Node: Operating System Information\7f1710363
+Node: Process list\7f1711198
+Node: Trace File Format\7f1712261
+Node: Index Section Format\7f1714254
+Node: Man Pages\7f1722224
+Node: gdb man\7f1722630
+Node: gdbserver man\7f1728666
+Node: gcore man\7f1735863
+Node: gdbinit man\7f1736520
+Node: Copying\7f1737403
+Node: GNU Free Documentation License\7f1774964
+Node: Concept Index\7f1801813
+Node: Command and Variable Index\7f1930315
\1f
End Tag Table
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
This file describes GDB, the GNU symbolic debugger.
- This is the Tenth Edition, for GDB (GDB) Version 7.8.
+ This is the Tenth Edition, for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
There is absolutely no warranty for GDB; type "show warranty"
for details.
- GDB 7.8, Copyright 1999 Free Software Foundation, Inc...
+ GDB 7.8.1, Copyright 1999 Free Software Foundation, Inc...
(gdb)
GDB reads only enough symbol data to know where to find the rest when
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
GDB includes an already formatted copy of the on-line Info version of
this manual in the 'gdb' subdirectory. The main Info file is
-'gdb-7.8/gdb/gdb.info', and it refers to subordinate files matching
+'gdb-7.8.1/gdb/gdb.info', and it refers to subordinate files matching
'gdb.info*' in the same directory. If necessary, you can print out
these files, or read them with any editor; but they are easier to read
using the 'info' subsystem in GNU Emacs or the standalone 'info'
Info formatting programs, such as 'texinfo-format-buffer' or 'makeinfo'.
If you have 'makeinfo' installed, and are in the top level GDB source
-directory ('gdb-7.8', in the case of version 7.8), you can make the Info
-file by typing:
+directory ('gdb-7.8.1', in the case of version 7.8.1), you can make the
+Info file by typing:
cd gdb
make gdb.info
If you have TeX and a DVI printer program installed, you can typeset
and print this manual. First switch to the 'gdb' subdirectory of the
-main source directory (for example, to 'gdb-7.8/gdb') and type:
+main source directory (for example, to 'gdb-7.8.1/gdb') and type:
make gdb.dvi
---------- Footnotes ----------
- (1) In 'gdb-7.8/gdb/refcard.ps' of the version 7.8 release.
+ (1) In 'gdb-7.8.1/gdb/refcard.ps' of the version 7.8.1 release.
\1f
File: gdb.info, Node: Installing GDB, Next: Maintenance Commands, Prev: Formatting Documentation, Up: Top
a single directory, whose name is usually composed by appending the
version number to 'gdb'.
- For example, the GDB version 7.8 distribution is in the 'gdb-7.8'
+ For example, the GDB version 7.8.1 distribution is in the 'gdb-7.8.1'
directory. That directory contains:
-'gdb-7.8/configure (and supporting files)'
+'gdb-7.8.1/configure (and supporting files)'
script for configuring GDB and all its supporting libraries
-'gdb-7.8/gdb'
+'gdb-7.8.1/gdb'
the source specific to GDB itself
-'gdb-7.8/bfd'
+'gdb-7.8.1/bfd'
source for the Binary File Descriptor library
-'gdb-7.8/include'
+'gdb-7.8.1/include'
GNU include files
-'gdb-7.8/libiberty'
+'gdb-7.8.1/libiberty'
source for the '-liberty' free software library
-'gdb-7.8/opcodes'
+'gdb-7.8.1/opcodes'
source for the library of opcode tables and disassemblers
-'gdb-7.8/readline'
+'gdb-7.8.1/readline'
source for the GNU command-line interface
-'gdb-7.8/glob'
+'gdb-7.8.1/glob'
source for the GNU filename pattern-matching subroutine
-'gdb-7.8/mmalloc'
+'gdb-7.8.1/mmalloc'
source for the GNU memory-mapped malloc package
The simplest way to configure and build GDB is to run 'configure'
from the 'gdb-VERSION-NUMBER' source directory, which in this example is
-the 'gdb-7.8' directory.
+the 'gdb-7.8.1' directory.
First switch to the 'gdb-VERSION-NUMBER' source directory if you are
not already in it; then run 'configure'. Pass the identifier for the
For example:
- cd gdb-7.8
+ cd gdb-7.8.1
./configure HOST
make
sh configure HOST
If you run 'configure' from a directory that contains source
-directories for multiple libraries or programs, such as the 'gdb-7.8'
-source directory for version 7.8, 'configure' creates configuration
+directories for multiple libraries or programs, such as the 'gdb-7.8.1'
+source directory for version 7.8.1, 'configure' creates configuration
files for every directory level underneath (unless you tell it not to,
with the '--norecursion' option).
directory. If the path to 'configure' would be the same as the argument
to '--srcdir', you can leave out the '--srcdir' option; it is assumed.)
- For example, with version 7.8, you can build GDB in a separate
+ For example, with version 7.8.1, you can build GDB in a separate
directory for a Sun 4 like this:
- cd gdb-7.8
+ cd gdb-7.8.1
mkdir ../gdb-sun4
cd ../gdb-sun4
- ../gdb-7.8/configure sun4
+ ../gdb-7.8.1/configure sun4
make
When 'configure' builds a configuration using a remote source
Make sure that your path to the 'configure' script has just one
instance of 'gdb' in it. If your path to 'configure' looks like
-'../gdb-7.8/gdb/configure', you are configuring only one subdirectory of
-GDB, not the whole package. This leads to build errors about missing
+'../gdb-7.8.1/gdb/configure', you are configuring only one subdirectory
+of GDB, not the whole package. This leads to build errors about missing
include files such as 'bfd/bfd.h'.
One popular reason to build several GDB configurations in separate
The 'Makefile' that 'configure' generates in each source directory
also runs recursively. If you type 'make' in a source directory such as
-'gdb-7.8' (or in a separate configured directory configured with
-'--srcdir=DIRNAME/gdb-7.8'), you will build all the required libraries,
-and then build GDB.
+'gdb-7.8.1' (or in a separate configured directory configured with
+'--srcdir=DIRNAME/gdb-7.8.1'), you will build all the required
+libraries, and then build GDB.
When you have multiple hosts or targets configured in separate
directories, you can run 'make' on them in parallel (for example, if
% sh config.sub i986v
Invalid configuration `i986v': machine `i986v' not recognized
-'config.sub' is also distributed in the GDB source directory ('gdb-7.8',
-for version 7.8).
+'config.sub' is also distributed in the GDB source directory
+('gdb-7.8.1', for version 7.8.1).
\1f
File: gdb.info, Node: Configure Options, Next: System-wide configuration, Prev: Config Names, Up: Installing GDB
This file documents the GNU debugger GDB.
This is the Tenth Edition, of 'Debugging with GDB: the GNU
-Source-Level Debugger' for GDB (GDB) Version 7.8.
+Source-Level Debugger' for GDB (GDB) Version 7.8.1.
Copyright (C) 1988-2014 Free Software Foundation, Inc.
.\" ========================================================================
.\"
.IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDBINIT 5 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
.\" ========================================================================
.\"
.IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2014-07-29" "gdb-7.8" "GNU Development Tools"
+.TH GDBSERVER 1 "2014-10-29" "gdb-7.8.1" "GNU Development Tools"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
else
{
/* Turn off editing by using gdb_readline2. */
- rl_callback_handler_remove ();
+ gdb_rl_callback_handler_remove ();
call_readline = gdb_readline2;
/* Set up the command handler as well, in case we are called as
}
}
+/* The functions below are wrappers for rl_callback_handler_remove and
+ rl_callback_handler_install that keep track of whether the callback
+ handler is installed in readline. This is necessary because after
+ handling a target event of a background execution command, we may
+ need to reinstall the callback handler if it was removed due to a
+ secondary prompt. See gdb_readline_wrapper_line. We don't
+ unconditionally install the handler for every target event because
+ that also clears the line buffer, thus installing it while the user
+ is typing would lose input. */
+
+/* Whether we've registered a callback handler with readline. */
+static int callback_handler_installed;
+
+/* See event-top.h, and above. */
+
+void
+gdb_rl_callback_handler_remove (void)
+{
+ rl_callback_handler_remove ();
+ callback_handler_installed = 0;
+}
+
+/* See event-top.h, and above. Note this wrapper doesn't have an
+ actual callback parameter because we always install
+ INPUT_HANDLER. */
+
+void
+gdb_rl_callback_handler_install (const char *prompt)
+{
+ /* Calling rl_callback_handler_install resets readline's input
+ buffer. Calling this when we were already processing input
+ therefore loses input. */
+ gdb_assert (!callback_handler_installed);
+
+ rl_callback_handler_install (prompt, input_handler);
+ callback_handler_installed = 1;
+}
+
+/* See event-top.h, and above. */
+
+void
+gdb_rl_callback_handler_reinstall (void)
+{
+ if (!callback_handler_installed)
+ {
+ /* Passing NULL as prompt argument tells readline to not display
+ a prompt. */
+ gdb_rl_callback_handler_install (NULL);
+ }
+}
+
/* Displays the prompt. If the argument NEW_PROMPT is NULL, the
prompt that is displayed is the current top level prompt.
Otherwise, it displays whatever NEW_PROMPT is as a local/secondary
the above two functions. Calling
rl_callback_handler_remove(), does the job. */
- rl_callback_handler_remove ();
+ gdb_rl_callback_handler_remove ();
do_cleanups (old_chain);
return;
}
if (async_command_editing_p)
{
- rl_callback_handler_remove ();
- rl_callback_handler_install (actual_gdb_prompt, input_handler);
+ gdb_rl_callback_handler_remove ();
+ gdb_rl_callback_handler_install (actual_gdb_prompt);
}
/* new_prompt at this point can be the top of the stack or the one
passed in. It can't be NULL. */
gdb_stdtargerr = NULL;
#endif
- rl_callback_handler_remove ();
+ gdb_rl_callback_handler_remove ();
delete_file_handler (input_fd);
}
extern int input_fd;
extern void (*after_char_processing_hook) (void);
+/* Wrappers for rl_callback_handler_remove and
+ rl_callback_handler_install that keep track of whether the callback
+ handler is installed in readline. Do not call the readline
+ versions directly. */
+extern void gdb_rl_callback_handler_remove (void);
+extern void gdb_rl_callback_handler_install (const char *prompt);
+
+/* Reinstall the readline callback handler (with no prompt), if not
+ currently installed. */
+extern void gdb_rl_callback_handler_reinstall (void);
+
extern void cli_command_loop (void *);
#endif
<reg name="sp" bitsize="64" type="data_ptr"/>
<reg name="pc" bitsize="64" type="code_ptr"/>
- <reg name="cpsr" bitsize="64"/>
+ <reg name="cpsr" bitsize="32"/>
</feature>
tdesc_create_reg (feature, "x30", 30, 1, NULL, 64, "int");
tdesc_create_reg (feature, "sp", 31, 1, NULL, 64, "data_ptr");
tdesc_create_reg (feature, "pc", 32, 1, NULL, 64, "code_ptr");
- tdesc_create_reg (feature, "cpsr", 33, 1, NULL, 64, "int");
+ tdesc_create_reg (feature, "cpsr", 33, 1, NULL, 32, "int");
feature = tdesc_create_feature (result, "org.gnu.gdb.aarch64.fpu");
field_type = tdesc_named_type (feature, "ieee_double");
#ifndef GDBARCH_H
#define GDBARCH_H
+#include "frame.h"
+
struct floatformat;
struct ui_file;
-struct frame_info;
struct value;
struct objfile;
struct obj_section;
#ifndef GDBARCH_H
#define GDBARCH_H
+#include "frame.h"
+
struct floatformat;
struct ui_file;
-struct frame_info;
struct value;
struct objfile;
struct obj_section;
+2014-10-15 Joel Brobecker <brobecker@adacore.com>
+
+ PR server/17487
+ * win32-i386-low.c (i386_get_thread_context): Do not set
+ dr->dr_control_mirror.
+
2014-07-11 Pedro Alves <palves@redhat.com>
* linux-low.c (kill_wait_lwp): New function, based on
dr->dr_mirror[2] = th->context.Dr2;
dr->dr_mirror[3] = th->context.Dr3;
dr->dr_status_mirror = th->context.Dr6;
- dr->dr_control_mirror = th->context.Dr7;
}
}
#ifdef HAVE_GUILE
#include "guile.h"
#include "guile-internal.h"
-#ifdef HAVE_GC_GC_H
-#include <gc/gc.h> /* PR 17185 */
-#endif
#endif
+#include <signal.h>
/* The Guile version we're using.
We *could* use the macros in libguile/version.h but that would preclude
void
_initialize_guile (void)
{
- char *msg;
-
install_gdb_commands ();
#if HAVE_GUILE
- /* The Python support puts the C side in module "_gdb", leaving the Python
- side to define module "gdb" which imports "_gdb". There is evidently no
- similar convention in Guile so we skip this. */
-
- /* PR 17185 There are problems with using libgc 7.4.0.
- Copy over the workaround Guile uses (Guile is working around a different
- problem, but the workaround is the same). */
-#if (GC_VERSION_MAJOR == 7 && GC_VERSION_MINOR == 4 && GC_VERSION_MICRO == 0)
- /* The bug is only known to appear with pthreads. We assume any system
- using pthreads also uses setenv (and not putenv). That is why we don't
- have a similar call to putenv here. */
-#if defined (HAVE_SETENV)
- setenv ("GC_MARKERS", "1", 1);
+ {
+#ifdef HAVE_SIGPROCMASK
+ sigset_t sigchld_mask, prev_mask;
#endif
+
+ /* The Python support puts the C side in module "_gdb", leaving the Python
+ side to define module "gdb" which imports "_gdb". There is evidently no
+ similar convention in Guile so we skip this. */
+
+#ifdef HAVE_SIGPROCMASK
+ /* Before we initialize Guile, block SIGCHLD.
+ This is done so that all threads created during Guile initialization
+ have SIGCHLD blocked. PR 17247.
+ Really libgc and Guile should do this, but we need to work with
+ libgc 7.4.x. */
+ sigemptyset (&sigchld_mask);
+ sigaddset (&sigchld_mask, SIGCHLD);
+ sigprocmask (SIG_BLOCK, &sigchld_mask, &prev_mask);
+#endif
+
+ /* scm_with_guile is the most portable way to initialize Guile.
+ Plus we need to initialize the Guile support while in Guile mode
+ (e.g., called from within a call to scm_with_guile). */
+ scm_with_guile (call_initialize_gdb_module, NULL);
+
+#ifdef HAVE_SIGPROCMASK
+ sigprocmask (SIG_SETMASK, &prev_mask, NULL);
#endif
- /* scm_with_guile is the most portable way to initialize Guile.
- Plus we need to initialize the Guile support while in Guile mode
- (e.g., called from within a call to scm_with_guile). */
- scm_with_guile (call_initialize_gdb_module, NULL);
-
- /* Set Guile's backtrace to match the "set guile print-stack" default.
- [N.B. The two settings are still separate.]
- But only do this after we've initialized Guile, it's nice to see a
- backtrace if there's an error during initialization.
- OTOH, if the error is that gdb/init.scm wasn't found because gdb is being
- run from the build tree, the backtrace is more noise than signal.
- Sigh. */
- gdbscm_set_backtrace (0);
+ /* Set Guile's backtrace to match the "set guile print-stack" default.
+ [N.B. The two settings are still separate.]
+ But only do this after we've initialized Guile, it's nice to see a
+ backtrace if there's an error during initialization.
+ OTOH, if the error is that gdb/init.scm wasn't found because gdb is
+ being run from the build tree, the backtrace is more noise than signal.
+ Sigh. */
+ gdbscm_set_backtrace (0);
+ }
#endif
}
static void go_command (char *line_no, int from_tty);
-static int strip_bg_char (char **);
-
void _initialize_infcmd (void);
#define ERROR_NO_INFERIOR \
}
\f
-/* This function detects whether or not a '&' character (indicating
- background execution) has been added as *the last* of the arguments ARGS
- of a command. If it has, it removes it and returns 1. Otherwise it
- does nothing and returns 0. */
+/* This function strips the '&' character (indicating background
+ execution) that is added as *the last* of the arguments ARGS of a
+ command. A copy of the incoming ARGS without the '&' is returned,
+ unless the resulting string after stripping is empty, in which case
+ NULL is returned. *BG_CHAR_P is an output boolean that indicates
+ whether the '&' character was found. */
-static int
-strip_bg_char (char **args)
+static char *
+strip_bg_char (const char *args, int *bg_char_p)
{
- char *p = NULL;
+ const char *p;
- p = strchr (*args, '&');
+ if (args == NULL || *args == '\0')
+ {
+ *bg_char_p = 0;
+ return NULL;
+ }
- if (p)
+ p = args + strlen (args);
+ if (p[-1] == '&')
{
- if (p == (*args + strlen (*args) - 1))
- {
- if (strlen (*args) > 1)
- {
- do
- p--;
- while (*p == ' ' || *p == '\t');
- *(p + 1) = '\0';
- }
- else
- *args = 0;
- return 1;
- }
+ p--;
+ while (p > args && isspace (p[-1]))
+ p--;
+
+ *bg_char_p = 1;
+ if (p != args)
+ return savestring (args, p - args);
+ else
+ return NULL;
}
- return 0;
+
+ *bg_char_p = 0;
+ return xstrdup (args);
}
/* Common actions to take after creating any sort of inferior, by any
ptid_t ptid;
struct ui_out *uiout = current_uiout;
struct target_ops *run_target;
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
dont_repeat ();
reopen_exec_file ();
reread_symbols ();
- if (args != NULL)
- async_exec = strip_bg_char (&args);
+ args = strip_bg_char (args, &async_exec);
+ args_chain = make_cleanup (xfree, args);
/* Do validation and preparation before possibly changing anything
in the inferior. */
ui_out_flush (uiout);
}
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
/* We call get_inferior_args() because we might need to compute
the value now. */
run_target->to_create_inferior (run_target, exec_file, get_inferior_args (),
iterate_over_threads (proceed_thread_callback, NULL);
+ if (sync_execution)
+ {
+ /* If all threads in the target were already running,
+ proceed_thread_callback ends up never calling proceed,
+ and so nothing calls this to put the inferior's terminal
+ settings in effect and remove stdin from the event loop,
+ which we must when running a foreground command. E.g.:
+
+ (gdb) c -a&
+ Continuing.
+ <all threads are running now>
+ (gdb) c -a
+ Continuing.
+ <no thread was resumed, but the inferior now owns the terminal>
+ */
+ target_terminal_inferior ();
+ }
+
/* Restore selected ptid. */
do_cleanups (old_chain);
}
static void
continue_command (char *args, int from_tty)
{
- int async_exec = 0;
+ int async_exec;
int all_threads = 0;
+ struct cleanup *args_chain;
+
ERROR_NO_INFERIOR;
/* Find out whether we must run in the background. */
- if (args != NULL)
- async_exec = strip_bg_char (&args);
+ args = strip_bg_char (args, &async_exec);
+ args_chain = make_cleanup (xfree, args);
prepare_execution_command (¤t_target, async_exec);
}
}
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
if (from_tty)
printf_filtered (_("Continuing.\n"));
{
int count = 1;
struct cleanup *cleanups = make_cleanup (null_cleanup, NULL);
- int async_exec = 0;
+ int async_exec;
int thread = -1;
+ struct cleanup *args_chain;
ERROR_NO_INFERIOR;
ensure_not_tfind_mode ();
ensure_valid_thread ();
ensure_not_running ();
- if (count_string)
- async_exec = strip_bg_char (&count_string);
+ count_string = strip_bg_char (count_string, &async_exec);
+ args_chain = make_cleanup (xfree, count_string);
prepare_execution_command (¤t_target, async_exec);
count = count_string ? parse_and_eval_long (count_string) : 1;
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
if (!single_inst || skip_subroutines) /* Leave si command alone. */
{
struct thread_info *tp = inferior_thread ();
struct symtab_and_line sal;
struct symbol *fn;
struct symbol *sfn;
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
ERROR_NO_INFERIOR;
ensure_not_tfind_mode ();
ensure_not_running ();
/* Find out whether we must run in the background. */
- if (arg != NULL)
- async_exec = strip_bg_char (&arg);
+ arg = strip_bg_char (arg, &async_exec);
+ args_chain = make_cleanup (xfree, arg);
prepare_execution_command (¤t_target, async_exec);
sal = sals.sals[0];
xfree (sals.sals);
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
if (sal.symtab == 0 && sal.pc == 0)
error (_("No source file has been specified."));
signal_command (char *signum_exp, int from_tty)
{
enum gdb_signal oursig;
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
dont_repeat (); /* Too dangerous. */
ERROR_NO_INFERIOR;
ensure_not_running ();
/* Find out whether we must run in the background. */
- if (signum_exp != NULL)
- async_exec = strip_bg_char (&signum_exp);
+ signum_exp = strip_bg_char (signum_exp, &async_exec);
+ args_chain = make_cleanup (xfree, signum_exp);
prepare_execution_command (¤t_target, async_exec);
static void
until_command (char *arg, int from_tty)
{
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
ERROR_NO_INFERIOR;
ensure_not_tfind_mode ();
ensure_not_running ();
/* Find out whether we must run in the background. */
- if (arg != NULL)
- async_exec = strip_bg_char (&arg);
+ arg = strip_bg_char (arg, &async_exec);
+ args_chain = make_cleanup (xfree, arg);
prepare_execution_command (¤t_target, async_exec);
until_break_command (arg, from_tty, 0);
else
until_next_command (from_tty);
+
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
}
static void
advance_command (char *arg, int from_tty)
{
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
ERROR_NO_INFERIOR;
ensure_not_tfind_mode ();
error_no_arg (_("a location"));
/* Find out whether we must run in the background. */
- if (arg != NULL)
- async_exec = strip_bg_char (&arg);
+ arg = strip_bg_char (arg, &async_exec);
+ args_chain = make_cleanup (xfree, arg);
prepare_execution_command (¤t_target, async_exec);
until_break_command (arg, from_tty, 1);
+
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
}
\f
/* Return the value of the result of a function at the end of a 'finish'
{
struct frame_info *frame;
struct symbol *function;
-
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
ERROR_NO_INFERIOR;
ensure_not_tfind_mode ();
ensure_not_running ();
/* Find out whether we must run in the background. */
- if (arg != NULL)
- async_exec = strip_bg_char (&arg);
+ arg = strip_bg_char (arg, &async_exec);
+ args_chain = make_cleanup (xfree, arg);
prepare_execution_command (¤t_target, async_exec);
if (arg)
error (_("The \"finish\" command does not take any arguments."));
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
frame = get_prev_frame (get_selected_frame (_("No selected frame.")));
if (frame == 0)
error (_("\"finish\" not meaningful in the outermost frame."));
void
attach_command (char *args, int from_tty)
{
- int async_exec = 0;
+ int async_exec;
+ struct cleanup *args_chain;
struct target_ops *attach_target;
dont_repeat (); /* Not for the faint of heart */
this function should probably be moved into target_pre_inferior. */
target_pre_inferior (from_tty);
- if (args != NULL)
- async_exec = strip_bg_char (&args);
+ args = strip_bg_char (args, &async_exec);
+ args_chain = make_cleanup (xfree, args);
attach_target = find_attach_target ();
shouldn't refer to attach_target again. */
attach_target = NULL;
+ /* Done with ARGS. */
+ do_cleanups (args_chain);
+
/* Set up the "saved terminal modes" of the inferior
based on what modes we are starting it with. */
target_terminal_init ();
do_cleanups (old_cleanups);
}
+/* Cleanup that reinstalls the readline callback handler, if the
+ target is running in the background. If while handling the target
+ event something triggered a secondary prompt, like e.g., a
+ pagination prompt, we'll have removed the callback handler (see
+ gdb_readline_wrapper_line). Need to do this as we go back to the
+ event loop, ready to process further input. Note this has no
+ effect if the handler hasn't actually been removed, because calling
+ rl_callback_handler_install resets the line buffer, thus losing
+ input. */
+
+static void
+reinstall_readline_callback_handler_cleanup (void *arg)
+{
+ if (async_command_editing_p && !sync_execution)
+ gdb_rl_callback_handler_reinstall ();
+}
+
/* Asynchronous version of wait_for_inferior. It is called by the
event loop whenever a change of state is detected on the file
descriptor corresponding to the target. It can be called more than
memset (ecs, 0, sizeof (*ecs));
+ /* End up with readline processing input, if necessary. */
+ make_cleanup (reinstall_readline_callback_handler_cleanup, NULL);
+
/* We're handling a live event, so make sure we're doing live
debugging. If we're looking at traceframes while the target is
running, we're going to need to get back to that mode after
stepping, then scheduler locking can't be in effect,
otherwise we wouldn't have resumed the current event
thread in the first place. */
- gdb_assert (!schedlock_applies (1));
+ gdb_assert (!schedlock_applies (currently_stepping (tp)));
stepping_thread = tp;
}
{
struct linux_corefile_thread_data *args = data;
+ /* It can be current thread
+ which cannot be removed by update_thread_list. */
+ if (info->state == THREAD_EXITED)
+ return 0;
+
if (ptid_get_pid (info->ptid) == args->pid)
{
struct cleanup *old_chain;
char *note_data = NULL;
gdb_byte *auxv;
int auxv_len;
+ volatile struct gdb_exception e;
if (linux_fill_prpsinfo (&prpsinfo))
{
}
/* Thread register information. */
+ TRY_CATCH (e, RETURN_MASK_ERROR)
+ {
+ update_thread_list ();
+ }
+ if (e.reason < 0)
+ exception_print (gdb_stderr, e);
thread_args.gdbarch = gdbarch;
thread_args.pid = ptid_get_pid (inferior_ptid);
thread_args.obfd = obfd;
#include "filenames.h"
#include "filestuff.h"
#include "event-top.h"
+#include "infrun.h"
/* The selected interpreter. This will be used as a set command
variable, so it should always be malloc'ed - since
TRY_CATCH (e, mask)
{
+ int was_sync = sync_execution;
+
command (arg, from_tty);
+
+ maybe_wait_sync_command_done (was_sync);
}
return handle_command_errors (e);
}
TRY_CATCH (e, mask)
{
+ int was_sync = sync_execution;
+
command (arg, from_tty);
+
+ maybe_wait_sync_command_done (was_sync);
}
return handle_command_errors (e);
}
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-07-29 05:55-0700\n"
+"POT-Creation-Date: 2014-10-29 12:50-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
#: common/print-utils.c:129 common/print-utils.c:297 dbxread.c:3074 exec.c:417
#: exec.c:705 language.c:536 mdebugread.c:3669 monitor.c:327 monitor.c:357
#: monitor.c:1324 printcmd.c:486 printcmd.c:841 printcmd.c:2439 psymtab.c:698
-#: psymtab.c:716 remote-mips.c:2727 target.c:614 target.c:698 target.c:725
+#: psymtab.c:716 remote-mips.c:2727 target.c:678 target.c:762 target.c:789
#: utils.c:1920 valprint.c:1042
msgid "failed internal consistency check"
msgstr ""
msgid "set logging"
msgstr ""
-#: cli/cli-logging.c:142 cli/cli-logging.c:252 guile/scm-ports.c:530 top.c:514
+#: cli/cli-logging.c:142 cli/cli-logging.c:252 guile/scm-ports.c:530 top.c:522
msgid "Current output protocol does not support redirection"
msgstr ""
msgid "Proceed? "
msgstr ""
-#: cli/cli-script.c:1545 cli/cli-cmds.c:326 infcmd.c:1160 infcmd.c:1174
-#: infcmd.c:2265 symfile.c:1171 symfile.c:1341 symfile.c:2399 symfile.c:2481
+#: cli/cli-script.c:1545 cli/cli-cmds.c:326 infcmd.c:1198 infcmd.c:1212
+#: infcmd.c:2315 symfile.c:1171 symfile.c:1341 symfile.c:2399 symfile.c:2481
#: tracepoint.c:2286 tracepoint.c:2292
msgid "Not confirmed."
msgstr ""
#. Should never come here as hookc would be 0.
#: cli/cli-script.c:1586 complaints.c:304 exceptions.c:159 exceptions.c:176
#: exceptions.c:203 hppa-tdep.c:3082 hppa-tdep.c:3095 infcall.c:687
-#: infcmd.c:1442 infrun.c:3410 language.c:448 mi/mi-out.c:334 mi/mi-out.c:352
+#: infcmd.c:1489 infrun.c:3430 language.c:448 mi/mi-out.c:334 mi/mi-out.c:352
#: mips-tdep.c:265 mips-tdep.c:424 mips-tdep.c:2116 mips-tdep.c:5560
#: mips-tdep.c:6676 mn10300-tdep.c:125 reggroups.c:219 remote.c:1359
#: remote.c:6697 remote.c:7930 utils.c:747 utils.c:772
msgstr ""
#: cp-valprint.c:334 guile/scm-pretty-print.c:638 mi/mi-cmd-stack.c:544
-#: python/py-prettyprint.c:293 stack.c:293
+#: python/py-prettyprint.c:293 python/py-framefilter.c:466 stack.c:293
#, possible-c-format
msgid "<error reading variable: %s>"
msgstr ""
msgid "Unable to open file '%s' for saving trace data (%s)"
msgstr ""
-#: ctf.c:916
+#: ctf.c:867
msgid "Unable to create bt_context"
msgstr ""
-#: ctf.c:921
+#: ctf.c:872
#, possible-c-format
msgid "Unable to use libbabeltrace on directory \"%s\""
msgstr ""
-#: ctf.c:930
+#: ctf.c:881
msgid "Unable to create bt_iterator"
msgstr ""
-#: ctf.c:1139
+#: ctf.c:1090
msgid "No CTF directory specified."
msgstr ""
-#: ctf.c:1151
+#: ctf.c:1102
msgid "Wrong event id of the first event"
msgstr ""
-#: ctf.c:1158
+#: ctf.c:1109
msgid "Wrong event id of the second event"
msgstr ""
-#: ctf.c:1175
+#: ctf.c:1126
msgid "Wrong event id of the first event of the second packet"
msgstr ""
-#: ctf.c:1324
+#: ctf.c:1275
msgid "ctf_xfer_partial: trace file is read-only"
msgstr ""
-#: ctf.c:1651 tracefile-tfile.c:680
+#: ctf.c:1602 tracefile-tfile.c:680
msgid "unknown tfind type"
msgstr ""
-#: ctf.c:1731
+#: ctf.c:1682
#, possible-c-format
msgid "Unhandled trace block type (%s) while building trace frame info."
msgstr ""
msgid "Exception condition detected on fd %d\n"
msgstr ""
-#: event-top.c:365
+#: event-top.c:416
msgid "error detected on stdin\n"
msgstr ""
#. This message is based on ANSI C, section 4.7. Note that integer
#. divide by zero causes this, so "float" is a misnomer.
-#: event-top.c:954
+#: event-top.c:1005
msgid "Erroneous arithmetic operation."
msgstr ""
msgid "No selected thread."
msgstr ""
-#: frame.c:1480 infcmd.c:1778
+#: frame.c:1480 infcmd.c:1828
msgid "Invalid selected thread."
msgstr ""
msgid "<gdb:sal>"
msgstr ""
-#: guile/guile.c:183 guile/guile.c:413
+#: guile/guile.c:181 guile/guile.c:411
msgid "guile-repl currently does not take any arguments."
msgstr ""
-#: guile/guile.c:272
+#: guile/guile.c:270
msgid "Invalid \"guile\" block structure."
msgstr ""
-#: guile/guile.c:414 guile/guile.c:422
+#: guile/guile.c:412 guile/guile.c:420
msgid "Guile scripting is not supported in this copy of GDB."
msgstr ""
-#: guile/guile.c:466
+#: guile/guile.c:464
msgid "\"info guile\" must be followed by the name of an info command.\n"
msgstr ""
-#: guile/guile.c:570
+#: guile/guile.c:568
msgid "Error in function ~s:~%"
msgstr ""
-#: guile/guile.c:594
+#: guile/guile.c:592
msgid "Throw to key `~a' with args `~s'.~%"
msgstr ""
-#: guile/guile.c:609
+#: guile/guile.c:607
#, possible-c-format
msgid ""
"Could not complete Guile gdb module initialization from:\n"
"Suggest passing --data-directory=/path/to/gdb/data-directory.\n"
msgstr ""
-#: guile/guile.c:749
+#: guile/guile.c:747
msgid ""
"Start an interactive Guile prompt.\n"
"\n"
"prompt) or ,quit."
msgstr ""
-#: guile/guile.c:755
+#: guile/guile.c:753
msgid ""
"Start a Guile interactive prompt.\n"
"\n"
"This command is only a placeholder."
msgstr ""
-#: guile/guile.c:768
+#: guile/guile.c:766
msgid ""
"Evaluate one or more Guile expressions.\n"
"\n"
"Type \",help\" once in a Guile interactive session."
msgstr ""
-#: guile/guile.c:791
+#: guile/guile.c:789
msgid ""
"Evaluate a Guile expression.\n"
"\n"
"This command is only a placeholder."
msgstr ""
-#: guile/guile.c:801 guile/guile.c:807
+#: guile/guile.c:799 guile/guile.c:805
msgid "Prefix command for Guile preference settings."
msgstr ""
-#: guile/guile.c:813
+#: guile/guile.c:811
msgid "Prefix command for Guile info displays."
msgstr ""
-#: guile/guile.c:821
+#: guile/guile.c:819
msgid "Set mode for Guile exception printing on error."
msgstr ""
-#: guile/guile.c:822
+#: guile/guile.c:820
msgid "Show the mode of Guile exception printing on error."
msgstr ""
-#: guile/guile.c:823 python/python.c:1635
+#: guile/guile.c:821 python/python.c:1635
msgid ""
"none == no stack or message will be printed.\n"
"full == a message and a stack will be printed.\n"
"The default is to unwind the frame."
msgstr ""
-#: infcmd.c:115 infcmd.c:2263 infcmd.c:2653 linux-fork.c:664
+#: infcmd.c:113 infcmd.c:2313 infcmd.c:2707 linux-fork.c:664
#: record-btrace.c:198 remote-sim.c:890
msgid "The program is not being run."
msgstr ""
-#: infcmd.c:193
+#: infcmd.c:191
#, possible-c-format
msgid "Terminal for future runs of program being debugged is \"%s\".\n"
msgstr ""
-#: infcmd.c:357
+#: infcmd.c:355
msgid "can't handle command-line argument containing whitespace"
msgstr ""
-#: infcmd.c:453
+#: infcmd.c:456
msgid ""
"platform-specific solib_create_inferior_hook did not load initial shared "
"libraries."
msgstr ""
-#: infcmd.c:493
+#: infcmd.c:496
msgid ""
"The program being debugged has been started already.\n"
"Start it from the beginning? "
msgstr ""
-#: infcmd.c:495
+#: infcmd.c:498
msgid "Program not restarted."
msgstr ""
-#: infcmd.c:508
+#: infcmd.c:511
msgid "Asynchronous execution not supported on this target."
msgstr ""
-#: infcmd.c:567
+#: infcmd.c:571
msgid "The target does not support running in non-stop mode."
msgstr ""
-#: infcmd.c:660
+#: infcmd.c:667
msgid "No symbol table loaded. Use the \"file\" command."
msgstr ""
-#: infcmd.c:692
+#: infcmd.c:699
msgid "Cannot execute this command without a live selected thread."
msgstr ""
-#: infcmd.c:703
+#: infcmd.c:710
msgid "Cannot execute this command while looking at trace frames."
msgstr ""
-#: infcmd.c:711
+#: infcmd.c:718
msgid "Cannot execute this command while the selected thread is running."
msgstr ""
-#: infcmd.c:780
+#: infcmd.c:807
msgid "`-a' is meaningless in all-stop mode."
msgstr ""
-#: infcmd.c:783
+#: infcmd.c:810
msgid "Can't resume all threads and specify proceed count simultaneously."
msgstr ""
-#: infcmd.c:829
+#: infcmd.c:859
msgid "Continuing.\n"
msgstr ""
-#: infcmd.c:1067
+#: infcmd.c:1101
msgid "Cannot find bounds of current function"
msgstr ""
-#: infcmd.c:1070
+#: infcmd.c:1104
#, possible-c-format
msgid ""
"Single stepping until exit from function %s,\n"
"which has no line number information.\n"
msgstr ""
-#: infcmd.c:1136
+#: infcmd.c:1171
msgid "starting address"
msgstr ""
-#: infcmd.c:1141
+#: infcmd.c:1176
msgid "Unreasonable jump request"
msgstr ""
-#: infcmd.c:1148
+#: infcmd.c:1186
msgid "No source file has been specified."
msgstr ""
-#: infcmd.c:1157
+#: infcmd.c:1195
#, possible-c-format
msgid "Line %d is not in `%s'. Jump anyway? "
msgstr ""
-#: infcmd.c:1171
+#: infcmd.c:1209
msgid "WARNING!!! Destination is in unmapped overlay! Jump anyway? "
msgstr ""
-#: infcmd.c:1184
+#: infcmd.c:1222
msgid "Continuing at "
msgstr ""
-#: infcmd.c:1200
+#: infcmd.c:1238
msgid "Usage: go <location>\n"
msgstr ""
-#: infcmd.c:1230
+#: infcmd.c:1269
msgid "signal number"
msgstr ""
-#: infcmd.c:1251
+#: infcmd.c:1290
msgid "Continuing with no signal.\n"
msgstr ""
-#: infcmd.c:1253
+#: infcmd.c:1292
#, possible-c-format
msgid "Continuing with signal %s.\n"
msgstr ""
-#: infcmd.c:1315
+#: infcmd.c:1354
msgid "Execution is not within a known function."
msgstr ""
-#: infcmd.c:1387
+#: infcmd.c:1431
msgid "a location"
msgstr ""
-#: infcmd.c:1528
+#: infcmd.c:1575
msgid "finish_command: function has no target type"
msgstr ""
-#: infcmd.c:1579
+#: infcmd.c:1626
msgid "Finish: couldn't find function."
msgstr ""
-#: infcmd.c:1686
+#: infcmd.c:1733
msgid "The \"finish\" command does not take any arguments."
msgstr ""
#. Finishing from an inline frame is completely different. We don't
#. try to show the "return value" - no way to locate it. So we do
#. not need a completion.
-#: infcmd.c:1688 infcmd.c:1697
+#: infcmd.c:1738 infcmd.c:1747
msgid "No selected frame."
msgstr ""
-#: infcmd.c:1690
+#: infcmd.c:1740
msgid "\"finish\" not meaningful in the outermost frame."
msgstr ""
-#: infcmd.c:1718 infcmd.c:1742
+#: infcmd.c:1768 infcmd.c:1792
msgid "Run till exit from "
msgstr ""
-#: infcmd.c:1740
+#: infcmd.c:1790
msgid "Run back to call of "
msgstr ""
-#: infcmd.c:1764
+#: infcmd.c:1814
msgid "The program being debugged is not being run.\n"
msgstr ""
-#: infcmd.c:1780 infrun.c:6747
+#: infcmd.c:1830 infrun.c:6767
msgid "Selected thread is running."
msgstr ""
-#: infcmd.c:1787
+#: infcmd.c:1837
#, possible-c-format
msgid "Program stopped at %s.\n"
msgstr ""
-#: infcmd.c:1790
+#: infcmd.c:1840
msgid "It stopped after being stepped.\n"
msgstr ""
-#: infcmd.c:1799
+#: infcmd.c:1849
msgid "It stopped at a breakpoint that has since been deleted.\n"
msgstr ""
-#: infcmd.c:1803
+#: infcmd.c:1853
#, possible-c-format
msgid "It stopped at breakpoint %d.\n"
msgstr ""
-#: infcmd.c:1809
+#: infcmd.c:1859
#, possible-c-format
msgid "It stopped with signal %s, %s.\n"
msgstr ""
-#: infcmd.c:1816
+#: infcmd.c:1866
msgid "Type \"info stack\" or \"info registers\" for more information.\n"
msgstr ""
-#: infcmd.c:1861
+#: infcmd.c:1911
msgid "environment variable and value"
msgstr ""
-#: infcmd.c:1885
+#: infcmd.c:1935
msgid "environment variable to set"
msgstr ""
-#: infcmd.c:1907
+#: infcmd.c:1957
#, possible-c-format
msgid "Setting environment variable \"%s\" to null value.\n"
msgstr ""
#. If there is no argument, delete all environment variables.
#. Ask for confirmation if reading from the terminal.
-#: infcmd.c:1924
+#: infcmd.c:1974
msgid "Delete all environment variables? "
msgstr ""
-#: infcmd.c:2102 infcmd.c:2248 infcmd.c:2777
+#: infcmd.c:2152 infcmd.c:2298 infcmd.c:2831
msgid "The program has no registers now."
msgstr ""
-#: infcmd.c:2126
+#: infcmd.c:2176
msgid "Missing register name"
msgstr ""
#. Nothing matched.
-#: infcmd.c:2199
+#: infcmd.c:2249
#, possible-c-format
msgid "Invalid register `%.*s'"
msgstr ""
-#: infcmd.c:2264
+#: infcmd.c:2314
msgid "Kill the program being debugged? "
msgstr ""
-#: infcmd.c:2278
+#: infcmd.c:2328
#, possible-c-format
msgid "In %s,\n"
msgstr ""
-#: infcmd.c:2472 target.c:2050
+#: infcmd.c:2523 target.c:2114
msgid "A program is being debugged already. Kill it? "
msgstr ""
-#: infcmd.c:2475
+#: infcmd.c:2526
msgid "Not killed."
msgstr ""
-#: infcmd.c:2490
+#: infcmd.c:2541
msgid "Cannot attach to this target in non-stop mode"
msgstr ""
-#: infcmd.c:2737
+#: infcmd.c:2791
msgid "-a is meaningless in all-stop mode."
msgstr ""
-#: infcmd.c:2785
+#: infcmd.c:2839
msgid "\"unset\" must be followed by the name of an unset subcommand.\n"
msgstr ""
-#: infcmd.c:2802 procfs.c:5167
+#: infcmd.c:2856 procfs.c:5167
msgid "Not supported on this target."
msgstr ""
-#: infcmd.c:2879
+#: infcmd.c:2933
msgid "Set terminal for future runs of program being debugged."
msgstr ""
-#: infcmd.c:2880
+#: infcmd.c:2934
msgid "Show terminal for future runs of program being debugged."
msgstr ""
-#: infcmd.c:2881
+#: infcmd.c:2935
msgid "Usage: set inferior-tty /dev/pts/1"
msgstr ""
-#: infcmd.c:2890
+#: infcmd.c:2944
msgid "Set argument list to give program being debugged when it is started."
msgstr ""
-#: infcmd.c:2891
+#: infcmd.c:2945
msgid "Show argument list to give program being debugged when it is started."
msgstr ""
-#: infcmd.c:2892
+#: infcmd.c:2946
msgid ""
"Follow this command with any number of args, to be passed to the program."
msgstr ""
-#: infcmd.c:2901
+#: infcmd.c:2955
msgid ""
"The environment to give the program, or one variable's value.\n"
"With an argument VAR, prints the value of environment variable VAR to\n"
"environment to be given to the program."
msgstr ""
-#: infcmd.c:2909
+#: infcmd.c:2963
msgid "Complement to certain \"set\" commands."
msgstr ""
-#: infcmd.c:2912
+#: infcmd.c:2966
msgid ""
"Cancel environment variable VAR for the program.\n"
"This does not affect the program until the next \"run\" command."
msgstr ""
-#: infcmd.c:2918
+#: infcmd.c:2972
msgid ""
"Set environment variable value to give the program.\n"
"Arguments are VAR VALUE where VAR is variable name and VALUE is value.\n"
"This does not affect the program until the next \"run\" command."
msgstr ""
-#: infcmd.c:2926
+#: infcmd.c:2980
msgid ""
"Add directory DIR(s) to beginning of search path for object files.\n"
"$cwd in the path means the current working directory.\n"
"fully linked executable files and separately compiled object files as needed."
msgstr ""
-#: infcmd.c:2935
+#: infcmd.c:2989
msgid ""
"Current search path for finding object files.\n"
"$cwd in the path means the current working directory.\n"
"fully linked executable files and separately compiled object files as needed."
msgstr ""
-#: infcmd.c:2946
+#: infcmd.c:3000
msgid "Kill execution of program being debugged."
msgstr ""
-#: infcmd.c:2949
+#: infcmd.c:3003
msgid ""
"Attach to a process or file outside of GDB.\n"
"This command attaches to another target, of the same type as your last\n"
"to specify the program, and to load its symbol table."
msgstr ""
-#: infcmd.c:2962
+#: infcmd.c:3016
msgid ""
"Detach a process or file previously attached.\n"
"If a process, it is no longer traced, and it continues its execution. If\n"
"you were debugging a file, the file is closed and gdb no longer accesses it."
msgstr ""
-#: infcmd.c:2968
+#: infcmd.c:3022
msgid ""
"Disconnect from a target.\n"
"The target will wait for another debugger to connect. Not available for\n"
"all targets."
msgstr ""
-#: infcmd.c:2973
+#: infcmd.c:3027
msgid ""
"Continue program with the specified signal.\n"
"Usage: signal SIGNAL\n"
"and you want to resume the program while discarding the signal."
msgstr ""
-#: infcmd.c:2983
+#: infcmd.c:3037
msgid ""
"Step one instruction exactly.\n"
"Usage: stepi [N]\n"
"Argument N means step N times (or till program stops for another reason)."
msgstr ""
-#: infcmd.c:2990
+#: infcmd.c:3044
msgid ""
"Step one instruction, but proceed through subroutine calls.\n"
"Usage: nexti [N]\n"
"Argument N means step N times (or till program stops for another reason)."
msgstr ""
-#: infcmd.c:2997
+#: infcmd.c:3051
msgid ""
"Execute until selected stack frame returns.\n"
"Usage: finish\n"
"Upon return, the value returned is printed and put in the value history."
msgstr ""
-#: infcmd.c:3003
+#: infcmd.c:3057
msgid ""
"Step program, proceeding through subroutine calls.\n"
"Usage: next [N]\n"
"the call, in effect treating it as a single source line."
msgstr ""
-#: infcmd.c:3013
+#: infcmd.c:3067
msgid ""
"Step program until it reaches a different source line.\n"
"Usage: step [N]\n"
"Argument N means step N times (or till program stops for another reason)."
msgstr ""
-#: infcmd.c:3020
+#: infcmd.c:3074
msgid ""
"Execute until the program reaches a source line greater than the current\n"
"or a specified location (same args as break command) within the current "
"frame."
msgstr ""
-#: infcmd.c:3027
+#: infcmd.c:3081
msgid ""
"Continue the program up to the given location (same form as args for break "
"command).\n"
"Execution will also stop upon exit from the current stack frame."
msgstr ""
-#: infcmd.c:3033
+#: infcmd.c:3087
msgid ""
"Continue program being debugged at specified line or address.\n"
"Usage: jump <location>\n"
"for an address to start at."
msgstr ""
-#: infcmd.c:3043
+#: infcmd.c:3097
msgid ""
"Usage: go <location>\n"
"Continue program being debugged, stopping at specified line or \n"
"This command is a combination of tbreak and jump."
msgstr ""
-#: infcmd.c:3056
+#: infcmd.c:3110
msgid ""
"Continue program being debugged, after signal or breakpoint.\n"
"Usage: continue [N]\n"
"Specifying -a and an ignore count simultaneously is an error."
msgstr ""
-#: infcmd.c:3070
+#: infcmd.c:3124
msgid ""
"Start debugged program. You may specify arguments to give it.\n"
"Args may include \"*\", or \"[...]\"; they are expanded using \"sh\".\n"
"use \"set args\" without arguments."
msgstr ""
-#: infcmd.c:3083
+#: infcmd.c:3137
msgid "Start debugged program with no arguments."
msgstr ""
-#: infcmd.c:3085
+#: infcmd.c:3139
msgid ""
"Run the debugged program until the beginning of the main procedure.\n"
"You may specify arguments to give to your program, just as with the\n"
"\"run\" command."
msgstr ""
-#: infcmd.c:3092
+#: infcmd.c:3146
msgid ""
"Interrupt the execution of the debugged program.\n"
"If non-stop mode is enabled, interrupt only the current thread,\n"
"interrupt all running threads in non-stop mode, use the -a option."
msgstr ""
-#: infcmd.c:3097 infcmd.c:3103
+#: infcmd.c:3151 infcmd.c:3157
msgid ""
"List of integer registers and their contents, for selected stack frame.\n"
"Register name as argument means describe only that register."
msgstr ""
-#: infcmd.c:3106
+#: infcmd.c:3160
msgid ""
"List of all registers and their contents, for selected stack frame.\n"
"Register name as argument means describe only that register."
msgstr ""
-#: infcmd.c:3111
+#: infcmd.c:3165
msgid "Execution status of the program."
msgstr ""
-#: infcmd.c:3114
+#: infcmd.c:3168
msgid "Print the status of the floating point unit\n"
msgstr ""
-#: infcmd.c:3117
+#: infcmd.c:3171
msgid "Print the status of the vector unit\n"
msgstr ""
-#: infcmd.c:3120
+#: infcmd.c:3174
msgid ""
"Show /proc process information about any running process.\n"
"Specify any process id, or use the program being debugged by default."
msgstr ""
#. allow-unknown
-#: infcmd.c:3126
+#: infcmd.c:3180
msgid "List of mapped memory regions."
msgstr ""
-#: infcmd.c:3130
+#: infcmd.c:3184
msgid "List process info from /proc/PID/stat."
msgstr ""
-#: infcmd.c:3134
+#: infcmd.c:3188
msgid "List process info from /proc/PID/status."
msgstr ""
-#: infcmd.c:3138
+#: infcmd.c:3192
msgid "List current working directory of the process."
msgstr ""
-#: infcmd.c:3142
+#: infcmd.c:3196
msgid "List command line arguments of the process."
msgstr ""
-#: infcmd.c:3146
+#: infcmd.c:3200
msgid "List absolute filename for executable of the process."
msgstr ""
-#: infcmd.c:3150
+#: infcmd.c:3204
msgid "List all available /proc info."
msgstr ""
"this platform."
msgstr ""
-#: infrun.c:187 infrun.c:216 mi/mi-main.c:123 target.c:4126 target.c:4174
+#: infrun.c:187 infrun.c:216 mi/mi-main.c:123 target.c:4190 target.c:4238
msgid "Cannot change this setting while the inferior is running."
msgstr ""
msgid "Program exited while detaching"
msgstr ""
-#: infrun.c:2964
+#: infrun.c:2984
msgid "completed.\n"
msgstr ""
-#: infrun.c:3493
+#: infrun.c:3513
#, possible-c-format
msgid "unhandled stop_soon: %d"
msgstr ""
-#: infrun.c:3564
+#: infrun.c:3584
msgid "Cannot fill $_exitsignal with the correct signal number.\n"
msgstr ""
-#: infrun.c:6050
+#: infrun.c:6070
msgid "Unknown value."
msgstr ""
-#: infrun.c:6117 linux-fork.c:378 linux-fork.c:410
+#: infrun.c:6137 linux-fork.c:378 linux-fork.c:410
#, possible-c-format
msgid "[Switching to %s]\n"
msgstr ""
-#: infrun.c:6128
+#: infrun.c:6148
msgid "No unwaited-for children left.\n"
msgstr ""
-#: infrun.c:6136
+#: infrun.c:6156
msgid ""
"Cannot remove breakpoints because program is no longer writable.\n"
"Further execution is probably impossible.\n"
msgstr ""
-#: infrun.c:6379
+#: infrun.c:6399
msgid "Signal Stop\tPrint\tPass to program\tDescription\n"
msgstr ""
-#: infrun.c:6416
+#: infrun.c:6436
msgid "signal to handle"
msgstr ""
#. Not a number and not a recognized flag word => complain.
-#: infrun.c:6519
+#: infrun.c:6539
#, possible-c-format
msgid "Unrecognized or ambiguous flag word: \"%s\"."
msgstr ""
-#: infrun.c:6534
+#: infrun.c:6554
#, possible-c-format
msgid ""
"%s is used by the debugger.\n"
"Are you sure you want to change it? "
msgstr ""
-#: infrun.c:6542
+#: infrun.c:6562
msgid "Not confirmed, unchanged.\n"
msgstr ""
-#: infrun.c:6620
+#: infrun.c:6640
msgid "xdb command"
msgstr ""
-#: infrun.c:6671
+#: infrun.c:6691
msgid "Invalid signal handling flag.\n"
msgstr ""
-#: infrun.c:6684
+#: infrun.c:6704
msgid ""
"Only signals 1-15 are valid as numeric signals.\n"
"Use \"info signals\" for a list of symbolic signals."
msgstr ""
-#: infrun.c:6727
+#: infrun.c:6747
msgid ""
"\n"
"Use the \"handle\" command to change these tables.\n"
msgstr ""
-#: infrun.c:6739
+#: infrun.c:6759
msgid "No thread selected."
msgstr ""
-#: infrun.c:6743
+#: infrun.c:6763
msgid "The current thread has terminated"
msgstr ""
-#: infrun.c:6778
+#: infrun.c:6798
msgid "Unable to read siginfo"
msgstr ""
-#: infrun.c:6799
+#: infrun.c:6819
msgid "Unable to write siginfo"
msgstr ""
-#: infrun.c:7037 stack.c:1831 stack.c:2056
+#: infrun.c:7057 stack.c:1831 stack.c:2056
msgid "Unable to restore previously selected frame."
msgstr ""
-#: infrun.c:7184
+#: infrun.c:7204
msgid "Target does not support this operation."
msgstr ""
-#: infrun.c:7194
+#: infrun.c:7214
msgid "Forward.\n"
msgstr ""
-#: infrun.c:7197
+#: infrun.c:7217
msgid "Reverse.\n"
msgstr ""
-#: infrun.c:7201
+#: infrun.c:7221
#, possible-c-format
msgid "bogus execution_direction value: %d"
msgstr ""
-#: infrun.c:7210
+#: infrun.c:7230
#, possible-c-format
msgid "Resuming the execution of threads of all processes is %s.\n"
msgstr ""
-#: infrun.c:7230 infrun.c:7263
+#: infrun.c:7250 infrun.c:7283
msgid ""
"What debugger does when program gets various signals.\n"
"Specify a signal as argument to print info on that signal only."
msgstr ""
-#: infrun.c:7235
+#: infrun.c:7255
msgid ""
"Specify how to handle signals.\n"
"Usage: handle SIGNAL [ACTIONS]\n"
"all signals cumulatively specified."
msgstr ""
-#: infrun.c:7266
+#: infrun.c:7286
msgid ""
"Specify how to handle a signal.\n"
"Args are signals and actions to apply to those signals.\n"
"Pass and Stop may be combined."
msgstr ""
-#: infrun.c:7286
+#: infrun.c:7306
msgid ""
"There is no `stop' command, but you can set a hook on `stop'.\n"
"This allows you to set a list of commands to be run each time execution\n"
"of the program stops."
msgstr ""
-#: infrun.c:7291
+#: infrun.c:7311
msgid "Set inferior debugging."
msgstr ""
-#: infrun.c:7292
+#: infrun.c:7312
msgid "Show inferior debugging."
msgstr ""
-#: infrun.c:7293
+#: infrun.c:7313
msgid "When non-zero, inferior specific debugging is enabled."
msgstr ""
-#: infrun.c:7300
+#: infrun.c:7320
msgid "Set displaced stepping debugging."
msgstr ""
-#: infrun.c:7301
+#: infrun.c:7321
msgid "Show displaced stepping debugging."
msgstr ""
-#: infrun.c:7302
+#: infrun.c:7322
msgid "When non-zero, displaced stepping specific debugging is enabled."
msgstr ""
-#: infrun.c:7309
+#: infrun.c:7329
msgid "Set whether gdb controls the inferior in non-stop mode."
msgstr ""
-#: infrun.c:7310
+#: infrun.c:7330
msgid "Show whether gdb controls the inferior in non-stop mode."
msgstr ""
-#: infrun.c:7311
+#: infrun.c:7331
msgid ""
"When debugging a multi-threaded program and this setting is\n"
"off (the default, also called all-stop mode), when one thread stops\n"
"leave it stopped or free to run as needed."
msgstr ""
-#: infrun.c:7386
+#: infrun.c:7406
msgid "Set stopping for shared library events."
msgstr ""
-#: infrun.c:7387
+#: infrun.c:7407
msgid "Show stopping for shared library events."
msgstr ""
-#: infrun.c:7388
+#: infrun.c:7408
msgid ""
"If nonzero, gdb will give control to the user when the dynamic linker\n"
"notifies gdb of shared library events. The most common event of interest\n"
"to the user would be loading/unloading of a new library."
msgstr ""
-#: infrun.c:7398
+#: infrun.c:7418
msgid "Set debugger response to a program call of fork or vfork."
msgstr ""
-#: infrun.c:7399
+#: infrun.c:7419
msgid "Show debugger response to a program call of fork or vfork."
msgstr ""
-#: infrun.c:7400
+#: infrun.c:7420
msgid ""
"A fork or vfork creates a new process. follow-fork-mode can be:\n"
" parent - the original process is debugged after a fork\n"
"By default, the debugger will follow the parent process."
msgstr ""
-#: infrun.c:7412
+#: infrun.c:7432
msgid "Set debugger response to a program call of exec."
msgstr ""
-#: infrun.c:7413
+#: infrun.c:7433
msgid "Show debugger response to a program call of exec."
msgstr ""
-#: infrun.c:7414
+#: infrun.c:7434
msgid ""
"An exec call replaces the program image of a process.\n"
"\n"
"By default, the debugger will use the same inferior."
msgstr ""
-#: infrun.c:7435
+#: infrun.c:7455
msgid "Set mode for locking scheduler during execution."
msgstr ""
-#: infrun.c:7436
+#: infrun.c:7456
msgid "Show mode for locking scheduler during execution."
msgstr ""
-#: infrun.c:7437
+#: infrun.c:7457
msgid ""
"off == no locking (threads may preempt at any time)\n"
"on == full locking (no thread except the current thread may run)\n"
"\tOther threads may run while stepping over a function call ('next')."
msgstr ""
-#: infrun.c:7447
+#: infrun.c:7467
msgid "Set mode for resuming threads of all processes."
msgstr ""
-#: infrun.c:7448
+#: infrun.c:7468
msgid "Show mode for resuming threads of all processes."
msgstr ""
-#: infrun.c:7449
+#: infrun.c:7469
msgid ""
"When on, execution commands (such as 'continue' or 'next') resume all\n"
"threads of all processes. When off (which is the default), execution\n"
"mode (see help set scheduler-locking)."
msgstr ""
-#: infrun.c:7459
+#: infrun.c:7479
msgid "Set mode of the step operation."
msgstr ""
-#: infrun.c:7460
+#: infrun.c:7480
msgid "Show mode of the step operation."
msgstr ""
-#: infrun.c:7461
+#: infrun.c:7481
msgid ""
"When set, doing a step over a function without debug line information\n"
"will stop at the first instruction of that function. Otherwise, the\n"
"function is skipped and the step command stops at a different source line."
msgstr ""
-#: infrun.c:7470
+#: infrun.c:7490
msgid "Set debugger's willingness to use displaced stepping."
msgstr ""
-#: infrun.c:7471
+#: infrun.c:7491
msgid "Show debugger's willingness to use displaced stepping."
msgstr ""
-#: infrun.c:7472
+#: infrun.c:7492
msgid ""
"If on, gdb will use displaced stepping to step over breakpoints if it is\n"
"supported by the target architecture. If off, gdb will not use displaced\n"
"use it in all-stop mode (see help set non-stop)."
msgstr ""
-#: infrun.c:7484
+#: infrun.c:7504
msgid ""
"Set direction of execution.\n"
"Options are 'forward' or 'reverse'."
msgstr ""
-#: infrun.c:7486
+#: infrun.c:7506
msgid "Show direction of execution (forward/reverse)."
msgstr ""
-#: infrun.c:7487
+#: infrun.c:7507
msgid "Tells gdb whether to execute forward or backward."
msgstr ""
#. Set/show detach-on-fork: user-settable mode.
-#: infrun.c:7493
+#: infrun.c:7513
msgid "Set whether gdb will detach the child of a fork."
msgstr ""
-#: infrun.c:7494
+#: infrun.c:7514
msgid "Show whether gdb will detach the child of a fork."
msgstr ""
-#: infrun.c:7495
+#: infrun.c:7515
msgid "Tells gdb whether to detach the child of a fork."
msgstr ""
-#: infrun.c:7502
+#: infrun.c:7522
msgid "Set disabling of debuggee's virtual address space randomization."
msgstr ""
-#: infrun.c:7503
+#: infrun.c:7523
msgid "Show disabling of debuggee's virtual address space randomization."
msgstr ""
-#: infrun.c:7504
+#: infrun.c:7524
msgid ""
"When this mode is on (which is the default), randomization of the virtual\n"
"address space is disabled. Standalone programs run with the randomization\n"
"enabled by default on some platforms."
msgstr ""
-#: infrun.c:7528
+#: infrun.c:7548
msgid "Set whether gdb controls the inferior in observer mode."
msgstr ""
-#: infrun.c:7529
+#: infrun.c:7549
msgid "Show whether gdb controls the inferior in observer mode."
msgstr ""
-#: infrun.c:7530
+#: infrun.c:7550
msgid ""
"In observer mode, GDB can get data from the inferior, but not\n"
"affect its execution. Registers and memory may not be changed,\n"
msgid "no definition for macro `%s' in scope to #undef at %s:%d"
msgstr ""
-#: main.c:127 source.c:583
+#: main.c:128 source.c:583
#, possible-c-format
msgid "%s is not a directory."
msgstr ""
-#: main.c:504
+#: main.c:513
#, possible-c-format
msgid "%s: warning: error finding working directory: %s\n"
msgstr ""
-#: main.c:671
+#: main.c:680
#, possible-c-format
msgid "%s: TUI mode is not supported\n"
msgstr ""
-#: main.c:741
+#: main.c:750
#, possible-c-format
msgid "%s: empty path for `--data-directory'\n"
msgstr ""
-#: main.c:757
+#: main.c:766
#, possible-c-format
msgid "%s: unable to load tclcommand file \"%s\""
msgstr ""
-#: main.c:809
+#: main.c:818
#, possible-c-format
msgid "warning: could not set baud rate to `%s'.\n"
msgstr ""
-#: main.c:826
+#: main.c:835
#, possible-c-format
msgid "warning: could not set timeout limit to `%s'.\n"
msgstr ""
-#: main.c:835
+#: main.c:844
#, possible-c-format
msgid "Use `%s --help' for a complete list of options.\n"
msgstr ""
-#: main.c:860
+#: main.c:869
#, possible-c-format
msgid "%s: `--args' specified but no program specified\n"
msgstr ""
-#: main.c:897
+#: main.c:906
#, possible-c-format
msgid "Excess command line arguments ignored. (%s%s)\n"
msgstr ""
-#: main.c:961
+#: main.c:970
#, possible-c-format
msgid "Interpreter `%s' unrecognized"
msgstr ""
#. Set off error and warning messages with a blank line.
-#: main.c:990
+#: main.c:999
msgid ""
"\n"
"warning: "
msgstr ""
-#: main.c:1062
+#: main.c:1071
msgid "Can't attach to process and specify a core file at the same time."
msgstr ""
#. Error messages should no longer be distinguished with extra output.
-#: main.c:1093
+#: main.c:1102
msgid "warning: "
msgstr ""
-#: main.c:1103
+#: main.c:1112
#, possible-c-format
msgid "auto-load: Loading .gdbinit file \"%s\".\n"
msgstr ""
#. Note: The options in the list below are only approximately sorted
#. in the alphabetical order, so as to group closely related options
#. together.
-#: main.c:1186
+#: main.c:1195
msgid ""
"This is the GNU debugger. Usage:\n"
"\n"
"\n"
msgstr ""
-#: main.c:1191
+#: main.c:1200
msgid ""
"Selection of debuggee and its files:\n"
"\n"
"\n"
msgstr ""
-#: main.c:1203
+#: main.c:1212
msgid ""
"Initial commands and command files:\n"
"\n"
"\n"
msgstr ""
-#: main.c:1217
+#: main.c:1226
msgid ""
"Output and user interface control:\n"
"\n"
" --nw Do not use the GUI interface.\n"
msgstr ""
-#: main.c:1227
+#: main.c:1236
msgid " --tui Use a terminal user interface.\n"
msgstr ""
-#: main.c:1231
+#: main.c:1240
msgid ""
" --dbx DBX compatibility mode.\n"
" --xdb XDB compatibility mode.\n"
"\n"
msgstr ""
-#: main.c:1237
+#: main.c:1246
msgid ""
"Operating modes:\n"
"\n"
" Set GDB's data-directory to DIR.\n"
msgstr ""
-#: main.c:1254
+#: main.c:1263
msgid ""
"\n"
"At startup, GDB reads the following init files and executes their commands:\n"
msgstr ""
-#: main.c:1258
+#: main.c:1267
#, possible-c-format
msgid " * system-wide init file: %s\n"
msgstr ""
-#: main.c:1262
+#: main.c:1271
#, possible-c-format
msgid " * user-specific init file: %s\n"
msgstr ""
-#: main.c:1266
+#: main.c:1275
#, possible-c-format
msgid " * local init file (see also 'set auto-load local-gdbinit'): ./%s\n"
msgstr ""
-#: main.c:1269
+#: main.c:1278
msgid ""
"\n"
"For more information, type \"help\" from within GDB, or consult the\n"
"GDB manual (available as on-line info or a printed manual).\n"
msgstr ""
-#: main.c:1274
+#: main.c:1283
#, possible-c-format
msgid "Report bugs to \"%s\".\n"
msgstr ""
msgid "Unexpected value. Expecting a gdb.Symbol or a Python string."
msgstr ""
-#: python/py-framefilter.c:574
+#: python/py-framefilter.c:577
msgid "No symbol or value provided."
msgstr ""
-#: python/py-framefilter.c:1203
+#: python/py-framefilter.c:1206
msgid "FrameDecorator.function: expecting a String, integer or None."
msgstr ""
msgid "Go backward to insn number %s\n"
msgstr ""
-#: record-full.c:2000 record-full.c:2094 target.c:510
+#: record-full.c:2000 record-full.c:2094 target.c:574
msgid "You can't do that without a process to debug."
msgstr ""
msgid "Invalid modifier: %c."
msgstr ""
-#: record.c:678 top.c:1560
+#: record.c:678 top.c:1575
#, possible-c-format
msgid "integer %u out of range"
msgstr ""
"`help target ' followed by the protocol name."
msgstr ""
-#: target.c:503
+#: target.c:567
#, possible-c-format
msgid "You can't do that when your target is `%s'"
msgstr ""
-#: target.c:516
+#: target.c:580
msgid "No saved terminal information.\n"
msgstr ""
-#: target.c:656
+#: target.c:720
msgid "Attempt to unpush the dummy target"
msgstr ""
-#: target.c:777
+#: target.c:841
msgid "Cannot find thread-local variables in this thread library."
msgstr ""
-#: target.c:782
+#: target.c:846
#, possible-c-format
msgid "Cannot find shared library `%s' in dynamic linker's load module list"
msgstr ""
-#: target.c:785
+#: target.c:849
#, possible-c-format
msgid "Cannot find executable file `%s' in dynamic linker's load module list"
msgstr ""
-#: target.c:790
+#: target.c:854
#, possible-c-format
msgid ""
"The inferior has not yet allocated storage for thread-local variables in\n"
"for %s"
msgstr ""
-#: target.c:796
+#: target.c:860
#, possible-c-format
msgid ""
"The inferior has not yet allocated storage for thread-local variables in\n"
"for %s"
msgstr ""
-#: target.c:804
+#: target.c:868
#, possible-c-format
msgid ""
"Cannot find thread-local storage for %s, shared library %s:\n"
"%s"
msgstr ""
-#: target.c:809
+#: target.c:873
#, possible-c-format
msgid ""
"Cannot find thread-local storage for %s, executable file %s:\n"
"%s"
msgstr ""
-#: target.c:823
+#: target.c:887
msgid "Cannot find thread-local variables on this target"
msgstr ""
-#: target.c:1077
+#: target.c:1141
msgid "Writing to flash memory forbidden in this context"
msgstr ""
-#: target.c:1208
+#: target.c:1272
#, possible-c-format
msgid "Writing to memory is not allowed (addr %s, len %s)"
msgstr ""
-#: target.c:1420
+#: target.c:1484
msgid "Overlapping regions in memory map: ignoring"
msgstr ""
-#: target.c:1452
+#: target.c:1516
#, possible-c-format
msgid "Mode for reading from readonly sections is %s.\n"
msgstr ""
-#: target.c:1877
+#: target.c:1941
#, possible-c-format
msgid "target object %d, annex %s, contained unexpected null characters"
msgstr ""
-#: target.c:1920
+#: target.c:1984
msgid "May not insert breakpoints"
msgstr ""
-#: target.c:1940
+#: target.c:2004
msgid "May not remove breakpoints"
msgstr ""
-#: target.c:1955
+#: target.c:2019
#, possible-c-format
msgid "Symbols from \"%s\".\n"
msgstr ""
-#: target.c:1966
+#: target.c:2030
msgid "\tWhile running this, GDB does not access memory from...\n"
msgstr ""
-#: target.c:2053
+#: target.c:2117
msgid "Program not killed."
msgstr ""
-#: target.c:2211
+#: target.c:2275
msgid "could not find a target to follow fork"
msgstr ""
-#: target.c:2234
+#: target.c:2298
msgid "could not find a target to follow mourn inferior"
msgstr ""
-#: target.c:2285
+#: target.c:2349
msgid "Unable to allocate memory to perform the search."
msgstr ""
-#: target.c:2293 target.c:2348
+#: target.c:2357 target.c:2412
#, possible-c-format
msgid "Unable to access %s bytes of target memory at %s, halting search."
msgstr ""
-#: target.c:2434
+#: target.c:2498
#, possible-c-format
msgid ""
"The \"%s\" target does not support \"run\". Try \"help target\" or "
#. This function is only called if the target is running. In that
#. case there should have been a process_stratum target and it
#. should either know how to create inferiors, or not...
-#: target.c:2442
+#: target.c:2506
msgid "No targets found"
msgstr ""
-#: target.c:2454
+#: target.c:2518
#, possible-c-format
msgid "Whether GDB may automatically connect to the native target is %s.\n"
msgstr ""
-#: target.c:2493
+#: target.c:2557
#, possible-c-format
msgid "Don't know how to %s. Try \"help target\"."
msgstr ""
-#: target.c:2627
+#: target.c:2691
#, possible-c-format
msgid "Can't determine the current address space of thread %s\n"
msgstr ""
-#: target.c:2943
+#: target.c:3007
#, possible-c-format
msgid "target file %s contained unexpected null characters"
msgstr ""
-#: target.c:3069 target.c:3078
+#: target.c:3133 target.c:3142
msgid "Command not implemented for this target."
msgstr ""
-#: target.c:3152
+#: target.c:3216
msgid "May not interrupt or stop the target, ignoring attempt"
msgstr ""
-#: target.c:3266
+#: target.c:3330
#, possible-c-format
msgid "Writing to registers is not allowed (regno %d)"
msgstr ""
-#: target.c:4086
+#: target.c:4150
msgid "\"monitor\" command not supported by this target."
msgstr ""
-#: target.c:4103
+#: target.c:4167
msgid "The current target stack is:\n"
msgstr ""
-#: target.c:4138
+#: target.c:4202
#, possible-c-format
msgid "Controlling the inferior in asynchronous mode is %s.\n"
msgstr ""
-#: target.c:4207
+#: target.c:4271
msgid "Set target debugging."
msgstr ""
-#: target.c:4208
+#: target.c:4272
msgid "Show target debugging."
msgstr ""
-#: target.c:4209
+#: target.c:4273
msgid ""
"When non-zero, target debugging is enabled. Higher numbers are more\n"
"verbose. Changes do not take effect until the next \"run\" or \"target\"\n"
"command."
msgstr ""
-#: target.c:4218
+#: target.c:4282
msgid "Set mode for reading from readonly sections."
msgstr ""
-#: target.c:4219
+#: target.c:4283
msgid "Show mode for reading from readonly sections."
msgstr ""
-#: target.c:4220
+#: target.c:4284
msgid ""
"When this mode is on, memory reads from readonly sections (such as .text)\n"
"will be read from the object file instead of from the target. This will\n"
"result in significant performance improvement for remote targets."
msgstr ""
-#: target.c:4229
+#: target.c:4293
msgid "Send a command to the remote monitor (remote targets only)."
msgstr ""
-#: target.c:4232
+#: target.c:4296
msgid "Print the name of each layer of the internal target stack."
msgstr ""
-#: target.c:4236
+#: target.c:4300
msgid "Set whether gdb controls the inferior in asynchronous mode."
msgstr ""
-#: target.c:4237
+#: target.c:4301
msgid "Show whether gdb controls the inferior in asynchronous mode."
msgstr ""
-#: target.c:4238
+#: target.c:4302
msgid "Tells gdb whether to control the inferior in asynchronous mode."
msgstr ""
-#: target.c:4246
+#: target.c:4310
msgid "Set permission to write into registers."
msgstr ""
-#: target.c:4247
+#: target.c:4311
msgid "Show permission to write into registers."
msgstr ""
-#: target.c:4248
+#: target.c:4312
msgid ""
"When this permission is on, GDB may write into the target's registers.\n"
"Otherwise, any sort of write attempt will result in an error."
msgstr ""
-#: target.c:4255
+#: target.c:4319
msgid "Set permission to write into target memory."
msgstr ""
-#: target.c:4256
+#: target.c:4320
msgid "Show permission to write into target memory."
msgstr ""
-#: target.c:4257
+#: target.c:4321
msgid ""
"When this permission is on, GDB may write into the target's memory.\n"
"Otherwise, any sort of write attempt will result in an error."
msgstr ""
-#: target.c:4264
+#: target.c:4328
msgid "Set permission to insert breakpoints in the target."
msgstr ""
-#: target.c:4265
+#: target.c:4329
msgid "Show permission to insert breakpoints in the target."
msgstr ""
-#: target.c:4266
+#: target.c:4330
msgid ""
"When this permission is on, GDB may insert breakpoints in the program.\n"
"Otherwise, any sort of insertion attempt will result in an error."
msgstr ""
-#: target.c:4273
+#: target.c:4337
msgid "Set permission to insert tracepoints in the target."
msgstr ""
-#: target.c:4274
+#: target.c:4338
msgid "Show permission to insert tracepoints in the target."
msgstr ""
-#: target.c:4275
+#: target.c:4339
msgid ""
"When this permission is on, GDB may insert tracepoints in the program.\n"
"Otherwise, any sort of insertion attempt will result in an error."
msgstr ""
-#: target.c:4282
+#: target.c:4346
msgid "Set permission to insert fast tracepoints in the target."
msgstr ""
-#: target.c:4283
+#: target.c:4347
msgid "Show permission to insert fast tracepoints in the target."
msgstr ""
-#: target.c:4284
+#: target.c:4348
msgid ""
"When this permission is on, GDB may insert fast tracepoints.\n"
"Otherwise, any sort of insertion attempt will result in an error."
msgstr ""
-#: target.c:4291
+#: target.c:4355
msgid "Set permission to interrupt or signal the target."
msgstr ""
-#: target.c:4292
+#: target.c:4356
msgid "Show permission to interrupt or signal the target."
msgstr ""
-#: target.c:4293
+#: target.c:4357
msgid ""
"When this permission is on, GDB may interrupt/stop the target's execution.\n"
"Otherwise, any attempt to interrupt or stop will be ignored."
msgstr ""
-#: target.c:4300
+#: target.c:4364
msgid "Set whether GDB may automatically connect to the native target."
msgstr ""
-#: target.c:4301
+#: target.c:4365
msgid "Show whether GDB may automatically connect to the native target."
msgstr ""
-#: target.c:4302
+#: target.c:4366
msgid ""
"When on, and GDB is not connected to a target yet, GDB\n"
"attempts \"run\" and other commands with the native target."
msgid "Whether to confirm potentially dangerous operations is %s.\n"
msgstr ""
-#: top.c:458
+#: top.c:475
msgid "That is not a command, just a help topic."
msgstr ""
-#: top.c:688
+#: top.c:696
#, possible-c-format
msgid "Saving of the history record on exit is %s.\n"
msgstr ""
-#: top.c:700
+#: top.c:708
#, possible-c-format
msgid "The size of the command history is %s.\n"
msgstr ""
-#: top.c:709
+#: top.c:717
#, possible-c-format
msgid "The filename in which to record the command history is \"%s\".\n"
msgstr ""
-#: top.c:1142
+#: top.c:1157
msgid ""
"\n"
"For bug reporting instructions, please see:\n"
msgstr ""
-#: top.c:1146
+#: top.c:1161
msgid ""
"Find the GDB manual and other documentation resources online at:\n"
"<http://www.gnu.org/software/gdb/documentation/>.\n"
msgstr ""
-#: top.c:1148
+#: top.c:1163
msgid "For help, type \"help\".\n"
msgstr ""
-#: top.c:1149
+#: top.c:1164
msgid "Type \"apropos word\" to search for commands related to \"word\"."
msgstr ""
-#: top.c:1157
+#: top.c:1172
#, possible-c-format
msgid ""
"This GDB was configured as follows:\n"
" configure --host=%s --target=%s\n"
msgstr ""
-#: top.c:1161
+#: top.c:1176
#, possible-c-format
msgid ""
" --with-auto-load-dir=%s\n"
" --with-auto-load-safe-path=%s\n"
msgstr ""
-#: top.c:1166
+#: top.c:1181
msgid " --with-expat\n"
msgstr ""
-#: top.c:1170
+#: top.c:1185
msgid " --without-expat\n"
msgstr ""
-#: top.c:1175
+#: top.c:1190
#, possible-c-format
msgid " --with-gdb-datadir=%s%s\n"
msgstr ""
-#: top.c:1179
+#: top.c:1194
#, possible-c-format
msgid " --with-iconv-bin=%s%s\n"
msgstr ""
-#: top.c:1184
+#: top.c:1199
#, possible-c-format
msgid " --with-jit-reader-dir=%s%s\n"
msgstr ""
-#: top.c:1188
+#: top.c:1203
msgid " --with-libunwind-ia64\n"
msgstr ""
-#: top.c:1192
+#: top.c:1207
msgid " --without-libunwind-ia64\n"
msgstr ""
-#: top.c:1197
+#: top.c:1212
msgid " --with-lzma\n"
msgstr ""
-#: top.c:1201
+#: top.c:1216
msgid " --without-lzma\n"
msgstr ""
-#: top.c:1206
+#: top.c:1221
#, possible-c-format
msgid " --with-python=%s%s\n"
msgstr ""
-#: top.c:1211
+#: top.c:1226
msgid " --with-guile\n"
msgstr ""
-#: top.c:1215
+#: top.c:1230
msgid " --without-guile\n"
msgstr ""
-#: top.c:1220
+#: top.c:1235
#, possible-c-format
msgid " --with-relocated-sources=%s\n"
msgstr ""
-#: top.c:1225
+#: top.c:1240
#, possible-c-format
msgid " --with-separate-debug-dir=%s%s\n"
msgstr ""
-#: top.c:1229
+#: top.c:1244
#, possible-c-format
msgid " --with-sysroot=%s%s\n"
msgstr ""
-#: top.c:1233
+#: top.c:1248
#, possible-c-format
msgid " --with-system-gdbinit=%s%s\n"
msgstr ""
-#: top.c:1237
+#: top.c:1252
msgid " --with-zlib\n"
msgstr ""
-#: top.c:1241
+#: top.c:1256
msgid " --without-zlib\n"
msgstr ""
-#: top.c:1246
+#: top.c:1261
msgid " --with-babeltrace\n"
msgstr ""
-#: top.c:1250
+#: top.c:1265
msgid " --without-babeltrace\n"
msgstr ""
#. We assume "relocatable" will be printed at least once, thus we always
#. print this text. It's a reasonably safe assumption for now.
-#: top.c:1256
+#: top.c:1271
msgid ""
"\n"
"(\"Relocatable\" means the directory can be moved with the GDB installation\n"
"tree, and GDB will still find it.)\n"
msgstr ""
-#: top.c:1337
+#: top.c:1352
#, possible-c-format
msgid "\tInferior %d [%s] will be detached.\n"
msgstr ""
-#: top.c:1341
+#: top.c:1356
#, possible-c-format
msgid "\tInferior %d [%s] will be killed.\n"
msgstr ""
-#: top.c:1366
+#: top.c:1381
msgid ""
"A debugging session is active.\n"
"\n"
msgstr ""
-#: top.c:1368
+#: top.c:1383
msgid ""
"\n"
"Quit anyway? "
msgstr ""
-#: top.c:1573
+#: top.c:1588
msgid "\"set history\" must be followed by the name of a history subcommand.\n"
msgstr ""
-#: top.c:1666
+#: top.c:1681
#, possible-c-format
msgid "Gdb's prompt is \"%s\".\n"
msgstr ""
-#: top.c:1673
+#: top.c:1688
#, possible-c-format
msgid "Editing of command lines as they are typed is %s.\n"
msgstr ""
-#: top.c:1682
+#: top.c:1697
#, possible-c-format
msgid "Annotation_level is %s.\n"
msgstr ""
-#: top.c:1689
+#: top.c:1704
#, possible-c-format
msgid "Notification of completion for asynchronous execution commands is %s.\n"
msgstr ""
-#: top.c:1712
+#: top.c:1727
#, possible-c-format
msgid "GDB's data directory is \"%s\".\n"
msgstr ""
-#: top.c:1757
+#: top.c:1772
msgid "Set gdb's prompt"
msgstr ""
-#: top.c:1758
+#: top.c:1773
msgid "Show gdb's prompt"
msgstr ""
-#: top.c:1763
+#: top.c:1778
msgid ""
"Don't repeat this command.\n"
"Primarily used inside of user-defined commands that should not be repeated "
"hitting return."
msgstr ""
-#: top.c:1769
+#: top.c:1784
msgid "Set editing of command lines as they are typed."
msgstr ""
-#: top.c:1770
+#: top.c:1785
msgid "Show editing of command lines as they are typed."
msgstr ""
-#: top.c:1771
+#: top.c:1786
msgid ""
"Use \"on\" to enable the editing, and \"off\" to disable it.\n"
"Without an argument, command line editing is enabled. To edit, use\n"
"EMACS-like or VI-like commands like control-P or ESC."
msgstr ""
-#: top.c:1779
+#: top.c:1794
msgid "Set saving of the history record on exit."
msgstr ""
-#: top.c:1780
+#: top.c:1795
msgid "Show saving of the history record on exit."
msgstr ""
-#: top.c:1781
+#: top.c:1796
msgid ""
"Use \"on\" to enable the saving, and \"off\" to disable it.\n"
"Without an argument, saving is enabled."
msgstr ""
-#: top.c:1788
+#: top.c:1803
msgid "Set the size of the command history,"
msgstr ""
-#: top.c:1789
+#: top.c:1804
msgid "Show the size of the command history,"
msgstr ""
-#: top.c:1790
+#: top.c:1805
msgid ""
"ie. the number of previous commands to keep a record of.\n"
"If set to \"unlimited\", the number of commands kept in the history\n"
"variable \"HISTSIZE\", or to 256 if this variable is not set."
msgstr ""
-#: top.c:1799
+#: top.c:1814
msgid "Set the filename in which to record the command history"
msgstr ""
-#: top.c:1800
+#: top.c:1815
msgid "Show the filename in which to record the command history"
msgstr ""
-#: top.c:1801
+#: top.c:1816
msgid "(the list of previous commands of which a record is kept)."
msgstr ""
-#: top.c:1807
+#: top.c:1822
msgid "Set whether to confirm potentially dangerous operations."
msgstr ""
-#: top.c:1808
+#: top.c:1823
msgid "Show whether to confirm potentially dangerous operations."
msgstr ""
-#: top.c:1814
+#: top.c:1829
msgid "Set annotation_level."
msgstr ""
-#: top.c:1815
+#: top.c:1830
msgid "Show annotation_level."
msgstr ""
-#: top.c:1816
+#: top.c:1831
msgid ""
"0 == normal; 1 == fullname (for use when running under emacs)\n"
"2 == output annotated suitably for use by programs that control GDB."
msgstr ""
-#: top.c:1824
+#: top.c:1839
msgid "Set notification of completion for asynchronous execution commands."
msgstr ""
-#: top.c:1825
+#: top.c:1840
msgid "Show notification of completion for asynchronous execution commands."
msgstr ""
-#: top.c:1826
+#: top.c:1841
msgid "Use \"on\" to enable the notification, and \"off\" to disable it."
msgstr ""
-#: top.c:1833
+#: top.c:1848
msgid "Set GDB's data directory."
msgstr ""
-#: top.c:1834
+#: top.c:1849
msgid "Show GDB's data directory."
msgstr ""
-#: top.c:1835
+#: top.c:1850
msgid "When set, GDB uses the specified path to search for data files."
msgstr ""
packages = [
'function',
- 'command'
+ 'command',
+ 'printer'
]
# pkgutil.iter_modules is not available prior to Python 2.6. Instead,
+++ /dev/null
-# Pretty-printer utilities.
-# Copyright (C) 2013-2014 Free Software Foundation, Inc.
-
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-import gdb.printing
-
-class BoundPrinter:
- """Adds size field to a _rawbound128 type."""
-
- def __init__ (self, val):
- self.val = val
-
- def to_string (self):
- upper = self.val["ubound"]
- lower = self.val["lbound"]
- size = (long) ((upper) - (lower))
- if size > -1:
- size = size + 1
- result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
- return result
-
-# There are two pattern matching used: first one is related to a library
-# second is related to the type. Since we are displaying a register all
-# libraries are accepted. Type to be processed is the same present
-# in the xml file.
-
-def build_pretty_printer ():
- pp = gdb.printing.RegexpCollectionPrettyPrinter (".*")
- pp.add_printer ('bound', '^__gdb_builtin_type_bound128', BoundPrinter)
- return pp
-
-gdb.printing.register_pretty_printer (gdb.current_objfile (),
- build_pretty_printer ())
def set_xm_status1(xm_dict, name_re, status):
"""Set the status (enabled/disabled) of a dictionary of xmethods."""
- for locus_str, matchers in xm_dict.iteritems():
+ for locus_str, matchers in xm_dict.items():
for matcher in matchers:
if not name_re:
# If the name regex is missing, then set the status of the
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
--- /dev/null
+# Pretty-printers for bounds registers.
+# Copyright (C) 2013-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+import gdb.printing
+
+class MpxBound128Printer:
+ """Adds size field to a mpx __gdb_builtin_type_bound128 type."""
+
+ def __init__ (self, val):
+ self.val = val
+
+ def to_string (self):
+ upper = self.val["ubound"]
+ lower = self.val["lbound"]
+ size = (long) ((upper) - (lower))
+ if size > -1:
+ size = size + 1
+ result = '{lbound = %s, ubound = %s} : size %s' % (lower, upper, size)
+ return result
+
+gdb.printing.add_builtin_pretty_printer ('mpx_bound128',
+ '^__gdb_builtin_type_bound128',
+ MpxBound128Printer)
return _EnumInstance(self.enumerators, val)
else:
return None
+
+
+# Builtin pretty-printers.
+# The set is defined as empty, and files in printing/*.py add their printers
+# to this with add_builtin_pretty_printer.
+
+_builtin_pretty_printers = RegexpCollectionPrettyPrinter("builtin")
+
+register_pretty_printer(None, _builtin_pretty_printers)
+
+# Add a builtin pretty-printer.
+
+def add_builtin_pretty_printer(name, regexp, printer):
+ _builtin_pretty_printers.add_printer(name, regexp, printer)
{
struct value *val;
volatile struct gdb_exception except;
+ enum ext_lang_bt_status retval = EXT_LANG_BT_OK;
if (fa != NULL)
{
+ if (fa->val == NULL && fa->error == NULL)
+ return EXT_LANG_BT_OK;
language = language_def (SYMBOL_LANGUAGE (fa->sym));
val = fa->val;
}
/* For MI print the type, but only for simple values. This seems
weird, but this is how MI choose to format the various output
types. */
- if (args_type == MI_PRINT_SIMPLE_VALUES)
+ if (args_type == MI_PRINT_SIMPLE_VALUES && val != NULL)
{
if (py_print_type (out, val) == EXT_LANG_BT_ERROR)
{
+ retval = EXT_LANG_BT_ERROR;
do_cleanups (cleanups);
- goto error;
+ continue;
}
}
- annotate_arg_value (value_type (val));
+ if (val != NULL)
+ annotate_arg_value (value_type (val));
/* If the output is to the CLI, and the user option "set print
frame-arguments" is set to none, just output "...". */
for the case of MI_PRINT_NO_VALUES. */
if (args_type != NO_VALUES)
{
- if (py_print_value (out, val, opts, 0, args_type, language)
- == EXT_LANG_BT_ERROR)
+ if (val == NULL)
{
- do_cleanups (cleanups);
- goto error;
+ gdb_assert (fa != NULL && fa->error != NULL);
+ ui_out_field_fmt (out, "value",
+ _("<error reading variable: %s>"),
+ fa->error);
}
+ else if (py_print_value (out, val, opts, 0, args_type, language)
+ == EXT_LANG_BT_ERROR)
+ retval = EXT_LANG_BT_ERROR;
}
}
do_cleanups (cleanups);
}
if (except.reason < 0)
- {
- gdbpy_convert_exception (except);
- goto error;
- }
-
- return EXT_LANG_BT_OK;
+ gdbpy_convert_exception (except);
- error:
- return EXT_LANG_BT_ERROR;
+ return retval;
}
/* Helper function to loop over frame arguments provided by the
(*current_target.to_load) (¤t_target, arg, from_tty);
}
+/* Possible terminal states. */
+
+enum terminal_state
+ {
+ /* The inferior's terminal settings are in effect. */
+ terminal_is_inferior = 0,
+
+ /* Some of our terminal settings are in effect, enough to get
+ proper output. */
+ terminal_is_ours_for_output = 1,
+
+ /* Our terminal settings are in effect, for output and input. */
+ terminal_is_ours = 2
+ };
+
+static enum terminal_state terminal_state;
+
+/* See target.h. */
+
+void
+target_terminal_init (void)
+{
+ (*current_target.to_terminal_init) (¤t_target);
+
+ terminal_state = terminal_is_ours;
+}
+
+/* See target.h. */
+
+int
+target_terminal_is_inferior (void)
+{
+ return (terminal_state == terminal_is_inferior);
+}
+
+/* See target.h. */
+
void
target_terminal_inferior (void)
{
if (target_can_async_p () && !sync_execution)
return;
+ if (terminal_state == terminal_is_inferior)
+ return;
+
/* If GDB is resuming the inferior in the foreground, install
inferior's terminal modes. */
(*current_target.to_terminal_inferior) (¤t_target);
+ terminal_state = terminal_is_inferior;
+}
+
+/* See target.h. */
+
+void
+target_terminal_ours (void)
+{
+ if (terminal_state == terminal_is_ours)
+ return;
+
+ (*current_target.to_terminal_ours) (¤t_target);
+ terminal_state = terminal_is_ours;
+}
+
+/* See target.h. */
+
+void
+target_terminal_ours_for_output (void)
+{
+ if (terminal_state != terminal_is_inferior)
+ return;
+ (*current_target.to_terminal_ours_for_output) (¤t_target);
+ terminal_state = terminal_is_ours_for_output;
}
static void
extern int target_remove_breakpoint (struct gdbarch *gdbarch,
struct bp_target_info *bp_tgt);
+/* Returns true if the terminal settings of the inferior are in
+ effect. */
+
+extern int target_terminal_is_inferior (void);
+
/* Initialize the terminal settings we record for the inferior,
before we actually run the inferior. */
-#define target_terminal_init() \
- (*current_target.to_terminal_init) (¤t_target)
+extern void target_terminal_init (void);
/* Put the inferior's terminal settings into effect.
This is preparation for starting or resuming the inferior. */
extern void target_terminal_inferior (void);
-/* Put some of our terminal settings into effect,
- enough to get proper results from our output,
- but do not change into or out of RAW mode
- so that no input is discarded.
-
- After doing this, either terminal_ours or terminal_inferior
- should be called to get back to a normal state of affairs. */
+/* Put some of our terminal settings into effect, enough to get proper
+ results from our output, but do not change into or out of RAW mode
+ so that no input is discarded. This is a no-op if terminal_ours
+ was most recently called. */
-#define target_terminal_ours_for_output() \
- (*current_target.to_terminal_ours_for_output) (¤t_target)
+extern void target_terminal_ours_for_output (void);
/* Put our terminal settings into effect.
First record the inferior's terminal settings
so they can be restored properly later. */
-#define target_terminal_ours() \
- (*current_target.to_terminal_ours) (¤t_target)
+extern void target_terminal_ours (void);
/* Save our terminal settings.
This is called from TUI after entering or leaving the curses
+2014-10-29 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17408
+ * gdb.threads/schedlock.c (some_function): New function.
+ (call_function): New global.
+ (MAYBE_CALL_SOME_FUNCTION): New macro.
+ (thread_function): Call it.
+ * gdb.threads/schedlock.exp (get_args): Add description parameter,
+ and use it instead of a global counter. Adjust all callers.
+ (get_current_thread): Use "find current thread" for test message
+ here rather than having all callers pass down the same string.
+ (goto_loop): New procedure, factored out from ...
+ (my_continue): ... this.
+ (step_ten_loops): Change parameter from test message to command to
+ use. Adjust.
+ (list_count): Delete global.
+ (check_result): New procedure, factored out from duplicate top
+ level code.
+ (continue tests): Wrap in with_test_prefix.
+ (test_step): New procedure, factored out from duplicate top level
+ code.
+ (top level): Test "step" in combination with all scheduler-locking
+ modes. Test "next" in combination with all scheduler-locking
+ modes, and in combination with stepping over a function call or
+ not.
+ * gdb.threads/next-bp-other-thread.c: New file.
+ * gdb.threads/next-bp-other-thread.exp: New file.
+
+2014-10-29 Pedro Alves <palves@redhat.com>
+
+ PR python/17372
+ * gdb.python/python.exp: Test a multi-line command that spawns
+ interactive Python.
+ * gdb.base/multi-line-starts-subshell.exp: New file.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17471
+ * gdb.base/bg-execution-repeat.c: New file.
+ * gdb.base/bg-execution-repeat.exp: New file.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17300
+ * gdb.base/continue-all-already-running.c: New file.
+ * gdb.base/continue-all-already-running.exp: New file.
+
+2014-10-17 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17472
+ * gdb.base/annota-input-while-running.c: New file.
+ * gdb.base/annota-input-while-running.exp: New file.
+
+2014-09-11 Pedro Alves <palves@redhat.com>
+
+ PR gdb/17347
+ * lib/gdb.exp (gdb_spawn_with_cmdline_opts): New procedure.
+ * gdb.base/attach.exp (test_command_line_attach_run): New
+ procedure.
+ (top level): Call it.
+
+2014-09-11 Pedro Alves <palves@redhat.com>
+
+ * lib/gdb.exp (spawn_wait_for_attach): New procedure.
+ * gdb.base/attach.exp (do_attach_tests, do_call_attach_tests)
+ (do_command_attach_tests): Use spawn_wait_for_attach.
+ * gdb.base/solib-overlap.exp: Likewise.
+ * gdb.multi/multi-attach.exp: Likewise.
+ * gdb.python/py-prompt.exp: Likewise.
+ * gdb.python/py-sync-interp.exp: Likewise.
+ * gdb.server/ext-attach.exp: Likewise.
+
+2014-09-07 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ PR python/17355
+ * gdb.python/amd64-py-framefilter-invalidarg.S: New file.
+ * gdb.python/py-framefilter-invalidarg-gdb.py.in: New file.
+ * gdb.python/py-framefilter-invalidarg.exp: New file.
+ * gdb.python/py-framefilter-invalidarg.py: New file.
+
+2014-08-30 Siva Chandra Reddy <sivachandra@google.com>
+
+ * gdb.python/py-xmethods.py (A_getarrayind)
+ (E_method_char_worker.__call__, E_method_int_worker.__call__):
+ Use 'print' with function call syntax.
+ (E_method_matcher.match): Fix tab vs space indentation mixup.
+
+2014-08-21 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.threads/gcore-stale-thread.c: New file.
+ * gdb.threads/gcore-stale-thread.exp: New file.
+
2014-07-29 Yao Qi <yao@codesourcery.com>
PR gdb/17206
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+
+int
+main (void)
+{
+ sleep (5);
+ return 0; /* set break here */
+}
--- /dev/null
+# Copyright 1999-2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test that annotations support doesn't leave GDB's terminal settings
+# into effect when we run a foreground command.
+
+if [is_remote target] then {
+ # We cannot use runto_main because of the different prompt we get
+ # when using annotation level 2.
+ return 0
+}
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile debug] == -1} {
+ return -1
+}
+
+# Break at main
+
+gdb_test "break main" \
+ "Breakpoint.*at.* file .*$srcfile.*\\." \
+ "breakpoint main"
+
+# NOTE: this prompt is OK only when the annotation level is > 1
+# NOTE: When this prompt is in use the gdb_test procedure cannot be
+# used because it assumes that the last char after the gdb_prompt is a
+# white space. This is not true with this annotated prompt. So we
+# must use the gdb_annota_test replacement below, or
+# gdb_test_multiple.
+
+set old_gdb_prompt $gdb_prompt
+set gdb_prompt "\r\n\032\032pre-prompt\r\n$gdb_prompt \r\n\032\032prompt\r\n"
+
+# Like gdb_test, but cope with the annotation prompt.
+proc gdb_annota_test {command pattern message} {
+ global gdb_prompt
+
+ gdb_test_multiple $command $message {
+ -re "$pattern$gdb_prompt$" {
+ pass "$message"
+ }
+ -re "$gdb_prompt$" {
+ fail "$message"
+ }
+ }
+}
+
+# Set the annotation level to 2.
+
+set test "annotation set at level 2"
+gdb_annota_test "set annotate 2" ".*" "annotation set at level 2"
+
+# Run to main.
+
+gdb_annota_test "run" \
+ "\r\n\032\032post-prompt.*\r\n\r\n\032\032stopped.*" \
+ "run until main breakpoint"
+
+set test "delete breakpoints"
+gdb_test_multiple "delete" $test {
+ -re "Delete all breakpoints. .y or n." {
+ send_gdb "y\n"
+ exp_continue
+ }
+ -re "$gdb_prompt$" {
+ pass $test
+ }
+}
+
+# Set the target running, and then type something. GDB used to have a
+# bug where it'd be accepting input even though the target was
+# supposedly resumed in the foreground. This ultimately resulted in
+# readline aborting.
+
+set linenum [gdb_get_line_number "set break here"]
+
+gdb_annota_test "break $linenum" \
+ "Breakpoint .*$srcfile, line .*" \
+ "break after sleep"
+
+# Continue, and wait a bit to make sure the inferior really starts
+# running. Wait less than much the program sleeps, which is 5
+# seconds, though.
+set saw_continuing 0
+set test "continue"
+gdb_test_multiple $test $test {
+ -timeout 2
+ -re "Continuing\\." {
+ set saw_continuing 1
+ exp_continue
+ }
+ timeout {
+ gdb_assert $saw_continuing $test
+ }
+}
+
+# Type something.
+send_gdb "print 1\n"
+
+# Poor buggy GDB would crash before the breakpoint was hit.
+set test "breakpoint hit"
+gdb_test_multiple "" $test {
+ -re "stopped\r\n$gdb_prompt" {
+ pass $test
+ }
+}
+
+set test "print command result"
+gdb_test_multiple "" $test {
+ -re "\r\n1\r\n\r\n\032\032value-history-end\r\n$gdb_prompt" {
+ pass $test
+ }
+}
+
+# Restore the original prompt for the rest of the testsuite.
+
+set gdb_prompt $old_gdb_prompt
# Start the program running and then wait for a bit, to be sure
# that it can be attached to.
- set testpid [eval exec $binfile &]
- exec sleep 2
- if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
- }
+ set testpid [spawn_wait_for_attach $binfile]
# Verify that we cannot attach to nonsense.
remote_exec build "kill -9 ${testpid}"
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
-
- set testpid [eval exec $binfile &]
- exec sleep 2
- if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
- }
+ set testpid [spawn_wait_for_attach $binfile]
# Verify that we can attach to the process, and find its a.out
# when we're cd'd to some directory that doesn't contain the
global gdb_prompt
global binfile2
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
-
- set testpid [eval exec $binfile2 &]
- exec sleep 2
- if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
- }
+ set testpid [spawn_wait_for_attach $binfile2]
# Attach
return 0
}
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
-
- set testpid [eval exec $binfile &]
- exec sleep 2
- if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
- }
+ set testpid [spawn_wait_for_attach $binfile]
gdb_exit
if $verbose>1 then {
remote_exec build "kill -9 ${testpid}"
}
+# Test ' gdb --pid PID -ex "run" '. GDB used to have a bug where
+# "run" would run before the attach finished - PR17347.
+
+proc test_command_line_attach_run {} {
+ global gdb_prompt
+ global binfile
+
+ if ![isnative] then {
+ unsupported "commandline attach run test"
+ return 0
+ }
+
+ with_test_prefix "cmdline attach run" {
+ set testpid [spawn_wait_for_attach $binfile]
+
+ set test "run to prompt"
+ gdb_exit
+
+ set res [gdb_spawn_with_cmdline_opts \
+ "-iex \"set height 0\" -iex \"set width 0\" --pid=$testpid -ex \"start\""]
+ if { $res != 0} {
+ fail $test
+ return $res
+ }
+ gdb_test_multiple "" $test {
+ -re {Attaching to.*Start it from the beginning\? \(y or n\) } {
+ pass $test
+ }
+ }
+
+ send_gdb "y\n"
+
+ set test "run to main"
+ gdb_test_multiple "" $test {
+ -re "Temporary breakpoint .* main .*$gdb_prompt $" {
+ pass $test
+ }
+ }
+
+ # Get rid of the process
+ remote_exec build "kill -9 ${testpid}"
+ }
+}
# Start with a fresh gdb
do_command_attach_tests
+test_command_line_attach_run
+
return 0
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+
+int
+foo (void)
+{
+ return 0; /* set break here */
+}
+
+int
+main (void)
+{
+ foo ();
+ sleep (5);
+ foo ();
+ return 0;
+}
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test that repeating a background command doesn't lose the "&" in the
+# repeat, turning a background command into a foreground command. See
+# PR gdb/17471.
+
+standard_testfile
+
+if { [build_executable "failed to prepare" ${testfile} $srcfile] } {
+ return -1
+}
+
+set linenum [gdb_get_line_number "set break here"]
+
+# Run the test proper. CONTINUE_CMD is the background continue
+# command to issue.
+
+proc test {continue_cmd} {
+ global gdb_prompt
+ global binfile
+ global linenum
+
+ clean_restart $binfile
+
+ if ![runto_main] {
+ return
+ }
+
+ gdb_breakpoint "$linenum"
+
+ set test $continue_cmd
+ gdb_test_multiple $test $test {
+ -re "Continuing\\.\r\n$gdb_prompt " {
+ # Note no end anchor. If the breakpoint triggers soon enough
+ # enough we see further output after the prompt.
+ pass $test
+ }
+ }
+
+ # Wait for the stop. Don't expect a prompt, as we had resumed the
+ # inferior in the background.
+ set test "breakpoint hit 1"
+ gdb_test_multiple "" $test {
+ -re "set break here" {
+ pass $test
+ }
+ }
+
+ # Trigger a repeat. Buggy GDB used to lose the "&", making this a
+ # foreground command...
+ send_gdb "\n"
+ gdb_test "" "Continuing\\." "repeat bg command"
+
+ # ... and thus further input wouldn't be processed until the target
+ # stopped.
+ gdb_test "print 1" " = 1" "input still accepted"
+
+ # Make sure we see a stop after the print, and not before. Don't
+ # expect a prompt, as we had resumed the inferior in the background.
+ set test "breakpoint hit 2"
+ gdb_test_multiple "" $test {
+ -re "set break here ..\r\n" {
+ pass $test
+ }
+ }
+}
+
+# Test with and without extra arguments.
+foreach cmd {"c&" "c 1&"} {
+ with_test_prefix $cmd {
+ test $cmd
+ }
+}
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <unistd.h>
+
+int
+main (void)
+{
+ sleep (10);
+ return 0; /* set break here */
+}
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test that "c -a" doesn't leave GDB processing input, even if all
+# threads were already running. PR gdb/17300.
+
+standard_testfile
+
+if { [prepare_for_testing ${testfile}.exp ${testfile} $srcfile] } {
+ return -1
+}
+
+gdb_test_no_output "set non-stop on"
+
+if ![runto_main] {
+ return
+}
+
+set linenum [gdb_get_line_number "set break here"]
+gdb_breakpoint "$linenum"
+
+gdb_test "c -a&" "Continuing\\."
+
+set test "no stop"
+gdb_test_multiple "" $test {
+ -timeout 1
+ timeout {
+ pass $test
+ }
+}
+
+# Paranoia. Check that input works after bg command.
+gdb_test "print 1" " = 1"
+
+# Continue in the foreground, and wait one second to make sure the
+# inferior really starts running. If we get a prompt to soon (e.g.,
+# the program stops), this issues a fail.
+set saw_continuing 0
+set test "c -a"
+gdb_test_multiple "c -a" $test {
+ -timeout 1
+ -re "Continuing\\." {
+ set saw_continuing 1
+ exp_continue
+ }
+ timeout {
+ gdb_assert $saw_continuing $test
+ }
+}
+
+# Type something while the inferior is running in the foreground.
+send_gdb "print 2\n"
+
+# Poor buggy GDB would crash before the breakpoint was hit.
+set test "breakpoint hit"
+gdb_test_multiple "" $test {
+ -re "set break here ..\r\n$gdb_prompt " {
+ pass $test
+ }
+}
+
+set test "print command result"
+gdb_test_multiple "" $test {
+ -re " = 2\r\n$gdb_prompt $" {
+ pass $test
+ }
+}
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test spawning a subshell from a multi-line command, where the last
+# prompt displayed is a secondary prompt. GDB used to have a bug
+# where in this case the subshell would start with the wrong terminal
+# settings. See PR python/17372.
+
+gdb_exit
+gdb_start
+
+# The subshell's prompt.
+set shell_prompt "gdb-subshell$ "
+set shell_prompt_re [string_to_regexp $shell_prompt]
+
+# Point HOME nowhere to avoid the shell sourcing the user's init
+# scripts.
+set shell_cmd "HOME=/dev/null PS1=\"$shell_prompt\" /bin/sh"
+
+set test "spawn subshell from multi-line"
+gdb_test_multiple "if 1\nshell ${shell_cmd}\nend" $test {
+ -re "$shell_prompt_re$" {
+ pass $test
+
+ # Now check that shell input works and that echo is enabled.
+ set test "shell input works"
+ send_gdb "echo foo\n"
+ gdb_expect {
+ -re "^echo foo\r\nfoo\r\n$shell_prompt_re$" {
+ pass $test
+ }
+ timeout {
+ fail "$test (timeout)"
+ }
+ }
+
+ # Exit the subshell, back to GDB
+ gdb_test "exit" ".*" "exit shell"
+ }
+}
+
+# Check that we restore input in GDB correctly.
+gdb_test "print 1" "^print 1\r\n.. = 1" "gdb input still works"
return -1
}
- # Start the program running and then wait for a bit, to be sure
- # that it can be attached to.
-
- set testpid [eval exec $binfile &]
- sleep 2
- if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
- }
+ set testpid [spawn_wait_for_attach $binfile]
remote_exec build "mv -f ${binfile_lib1} ${binfile_lib1}-running"
remote_exec build "mv -f ${binfile_lib2} ${binfile_lib2}-running"
# Start the programs running and then wait for a bit, to be sure that
# they can be attached to.
-set testpid1 [eval exec $binfile &]
-set testpid2 [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
- # testpid{1,2} are the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid1 [ exec ps -e | gawk "{ if (\$1 == $testpid1) print \$4; }" ]
- set testpid2 [ exec ps -e | gawk "{ if (\$1 == $testpid2) print \$4; }" ]
-}
+
+set pid_list [spawn_wait_for_attach [list $binfile $binfile]]
+set testpid1 [lindex $pid_list 0]
+set testpid2 [lindex $pid_list 1]
gdb_test "attach $testpid1" \
"Attaching to program: .*, process $testpid1.*(in|at).*" \
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from a single line
+ int main (int argc, char **argv) { return 0; }
+ using -g -dA -S -O2 and patched as #if-ed below. */
+
+ .file "py-framefilter-invalidarg.c"
+ .text
+.Ltext0:
+ .globl main
+ .type main, @function
+main:
+.LFB0:
+ .file 1 "py-framefilter-invalidarg.c"
+ # py-framefilter-invalidarg.c:1
+ .loc 1 1 0
+ .cfi_startproc
+# BLOCK 2 seq:0
+# PRED: ENTRY (FALLTHRU)
+ pushq %rbp
+ .cfi_def_cfa_offset 16
+ .cfi_offset 6, -16
+ movq %rsp, %rbp
+ .cfi_def_cfa_register 6
+ movl %edi, -4(%rbp)
+ movq %rsi, -16(%rbp)
+ # py-framefilter-invalidarg.c:2
+ .loc 1 2 0
+ movl $0, %eax
+ # py-framefilter-invalidarg.c:3
+ .loc 1 3 0
+ popq %rbp
+ .cfi_def_cfa 7, 8
+# SUCC: EXIT [100.0%]
+ ret
+ .cfi_endproc
+.LFE0:
+ .size main, .-main
+.Letext0:
+ .section .debug_info,"",@progbits
+.Ldebug_info0:
+ .long .Le - .Ls # Length of Compilation Unit Info
+.Ls:
+ .value 0x4 # DWARF version number
+ .long .Ldebug_abbrev0 # Offset Into Abbrev. Section
+ .byte 0x8 # Pointer Size (in bytes)
+ .uleb128 0x1 # (DIE (0xb) DW_TAG_compile_unit)
+ .long .LASF3 # DW_AT_producer: "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g"
+ .byte 0x1 # DW_AT_language
+ .long .LASF4 # DW_AT_name: "py-framefilter-invalidarg.c"
+ .long .LASF5 # DW_AT_comp_dir: ""
+ .quad .Ltext0 # DW_AT_low_pc
+ .quad .Letext0-.Ltext0 # DW_AT_high_pc
+ .long .Ldebug_line0 # DW_AT_stmt_list
+die2d:
+ .uleb128 0x2 # (DIE (0x2d) DW_TAG_subprogram)
+ # DW_AT_external
+ .long .LASF6 # DW_AT_name: "main"
+ .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c)
+ .byte 0x1 # DW_AT_decl_line
+ # DW_AT_prototyped
+ .long die6b-.Ldebug_info0 # DW_AT_type
+ .quad .LFB0 # DW_AT_low_pc
+ .quad .LFE0-.LFB0 # DW_AT_high_pc
+ .uleb128 0x1 # DW_AT_frame_base
+ .byte 0x9c # DW_OP_call_frame_cfa
+ # DW_AT_GNU_all_call_sites
+die4e:
+ .uleb128 0x3 # (DIE (0x4e) DW_TAG_formal_parameter)
+ .long .LASF0 # DW_AT_name: "argc"
+ .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c)
+ .byte 0x1 # DW_AT_decl_line
+ .long die6b-.Ldebug_info0 # DW_AT_type
+#if 0
+ .uleb128 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -20
+#endif
+#if 0
+ .uleb128 1f - 2f # DW_AT_location
+2:
+ .byte 0x03 # DW_OP_addr
+ .quad 0
+1:
+#endif
+#if 1
+ .uleb128 1f - 2f # DW_AT_location
+2:
+ .byte 0x13 # DW_OP_drop
+ .quad 0
+1:
+#endif
+die5c:
+ .uleb128 0x3 # (DIE (0x5c) DW_TAG_formal_parameter)
+ .long .LASF1 # DW_AT_name: "argv"
+ .byte 0x1 # DW_AT_decl_file (py-framefilter-invalidarg.c)
+ .byte 0x1 # DW_AT_decl_line
+ .long die72-.Ldebug_info0 # DW_AT_type
+ .uleb128 0x2 # DW_AT_location
+ .byte 0x91 # DW_OP_fbreg
+ .sleb128 -32
+ .byte 0 # end of children of DIE 0x2d
+die6b:
+ .uleb128 0x4 # (DIE (0x6b) DW_TAG_base_type)
+ .byte 0x4 # DW_AT_byte_size
+ .byte 0x5 # DW_AT_encoding
+ .ascii "int\0" # DW_AT_name
+die72:
+ .uleb128 0x5 # (DIE (0x72) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long die78-.Ldebug_info0 # DW_AT_type
+die78:
+ .uleb128 0x5 # (DIE (0x78) DW_TAG_pointer_type)
+ .byte 0x8 # DW_AT_byte_size
+ .long die7e-.Ldebug_info0 # DW_AT_type
+die7e:
+ .uleb128 0x6 # (DIE (0x7e) DW_TAG_base_type)
+ .byte 0x1 # DW_AT_byte_size
+ .byte 0x6 # DW_AT_encoding
+ .long .LASF2 # DW_AT_name: "char"
+ .byte 0 # end of children of DIE 0xb
+.Le:
+ .section .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+ .uleb128 0x1 # (abbrev code)
+ .uleb128 0x11 # (TAG: DW_TAG_compile_unit)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x25 # (DW_AT_producer)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x13 # (DW_AT_language)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x1b # (DW_AT_comp_dir)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x10 # (DW_AT_stmt_list)
+ .uleb128 0x17 # (DW_FORM_sec_offset)
+ .byte 0
+ .byte 0
+ .uleb128 0x2 # (abbrev code)
+ .uleb128 0x2e # (TAG: DW_TAG_subprogram)
+ .byte 0x1 # DW_children_yes
+ .uleb128 0x3f # (DW_AT_external)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x27 # (DW_AT_prototyped)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x11 # (DW_AT_low_pc)
+ .uleb128 0x1 # (DW_FORM_addr)
+ .uleb128 0x12 # (DW_AT_high_pc)
+ .uleb128 0x7 # (DW_FORM_data8)
+ .uleb128 0x40 # (DW_AT_frame_base)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .uleb128 0x2117 # (DW_AT_GNU_all_call_sites)
+ .uleb128 0x19 # (DW_FORM_flag_present)
+ .byte 0
+ .byte 0
+ .uleb128 0x3 # (abbrev code)
+ .uleb128 0x5 # (TAG: DW_TAG_formal_parameter)
+ .byte 0 # DW_children_no
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .uleb128 0x3a # (DW_AT_decl_file)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3b # (DW_AT_decl_line)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .uleb128 0x2 # (DW_AT_location)
+ .uleb128 0x18 # (DW_FORM_exprloc)
+ .byte 0
+ .byte 0
+ .uleb128 0x4 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0x8 # (DW_FORM_string)
+ .byte 0
+ .byte 0
+ .uleb128 0x5 # (abbrev code)
+ .uleb128 0xf # (TAG: DW_TAG_pointer_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x49 # (DW_AT_type)
+ .uleb128 0x13 # (DW_FORM_ref4)
+ .byte 0
+ .byte 0
+ .uleb128 0x6 # (abbrev code)
+ .uleb128 0x24 # (TAG: DW_TAG_base_type)
+ .byte 0 # DW_children_no
+ .uleb128 0xb # (DW_AT_byte_size)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3e # (DW_AT_encoding)
+ .uleb128 0xb # (DW_FORM_data1)
+ .uleb128 0x3 # (DW_AT_name)
+ .uleb128 0xe # (DW_FORM_strp)
+ .byte 0
+ .byte 0
+ .byte 0
+ .section .debug_aranges,"",@progbits
+ .long 0x2c # Length of Address Ranges Info
+ .value 0x2 # DWARF Version
+ .long .Ldebug_info0 # Offset of Compilation Unit Info
+ .byte 0x8 # Size of Address
+ .byte 0 # Size of Segment Descriptor
+ .value 0 # Pad to 16 byte boundary
+ .value 0
+ .quad .Ltext0 # Address
+ .quad .Letext0-.Ltext0 # Length
+ .quad 0
+ .quad 0
+ .section .debug_line,"",@progbits
+.Ldebug_line0:
+ .section .debug_str,"MS",@progbits,1
+.LASF1:
+ .string "argv"
+.LASF4:
+ .string "py-framefilter-invalidarg.c"
+.LASF5:
+ .string ""
+.LASF0:
+ .string "argc"
+.LASF3:
+ .string "GNU C 4.9.1 20140813 (Red Hat 4.9.1-7) -mtune=generic -march=x86-64 -g"
+.LASF6:
+ .string "main"
+.LASF2:
+ .string "char"
+ .ident "GCC: (GNU) 4.9.1 20140813 (Red Hat 4.9.1-7)"
+ .section .note.GNU-stack,"",@progbits
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite. It tests Python-based
+# frame-filters.
+import gdb
+import itertools
+from gdb.FrameDecorator import FrameDecorator
+
+
+class FrameObjFile ():
+
+ def __init__ (self):
+ self.name = "Filter1"
+ self.priority = 1
+ self.enabled = False
+ gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
+ gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+
+ def filter (self, frame_iter):
+ return frame_iter
+
+class FrameObjFile2 ():
+
+ def __init__ (self):
+ self.name = "Filter2"
+ self.priority = 100
+ self.enabled = True
+ gdb.current_progspace().frame_filters ["Progspace" + self.name] = self
+ gdb.current_objfile().frame_filters ["ObjectFile" + self.name] = self
+
+ def filter (self, frame_iter):
+ return frame_iter
+
+FrameObjFile()
+FrameObjFile2()
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+load_lib gdb-python.exp
+
+standard_testfile amd64-py-framefilter-invalidarg.S
+
+if { ![istarget x86_64-*-* ] || ![is_lp64_target] } {
+ verbose "Skipping py-framefilter-invalidarg."
+ return
+}
+
+# We cannot use prepare_for_testing as we have to set the safe-patch
+# to check objfile and progspace printers.
+if {[build_executable $testfile.exp $testfile $srcfile {}] == -1} {
+ return -1
+}
+
+# Start with a fresh gdb.
+gdb_exit
+gdb_start
+
+# Skip all tests if Python scripting is not enabled.
+if { [skip_python_tests] } { continue }
+
+# Make the -gdb.py script available to gdb, it is automagically loaded by gdb.
+# Care is taken to put it in the same directory as the binary so that
+# gdb will find it.
+set remote_obj_python_file \
+ [remote_download \
+ host ${srcdir}/${subdir}/${testfile}-gdb.py.in \
+ [standard_output_file ${testfile}-gdb.py]]
+
+gdb_reinitialize_dir $srcdir/$subdir
+gdb_test_no_output "set auto-load safe-path ${remote_obj_python_file}" \
+ "set auto-load safe-path"
+gdb_load ${binfile}
+# Verify gdb loaded the script.
+gdb_test "info auto-load python-scripts" "Yes.*/${testfile}-gdb.py.*" \
+ "Test auto-load had loaded python scripts"
+
+if ![runto_main] then {
+ perror "couldn't run to breakpoint"
+ return
+}
+gdb_test_no_output "set python print-stack full" \
+ "Set python print-stack to full"
+
+# Load global frame-filters
+set remote_python_file [gdb_remote_download host \
+ ${srcdir}/${subdir}/${testfile}.py]
+gdb_test_no_output "python exec (open ('${remote_python_file}').read ())" \
+ "Load python file"
+
+gdb_test "bt" " in niam \\(argc=<error reading variable: dwarf expression stack underflow>, argv=0x\[0-9a-f\]+\\) at py-framefilter-invalidarg.c:\[0-9\]+" "bt full with filters"
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This file is part of the GDB testsuite. It tests Python-based
+# frame-filters.
+import gdb
+import itertools
+from gdb.FrameDecorator import FrameDecorator
+import copy
+
+class Reverse_Function (FrameDecorator):
+
+ def __init__(self, fobj):
+ super(Reverse_Function, self).__init__(fobj)
+ self.fobj = fobj
+
+ def function (self):
+ fname = str (self.fobj.function())
+ if (fname == None or fname == ""):
+ return None
+ if fname == 'end_func':
+ extra = self.fobj.inferior_frame().read_var('str').string()
+ else:
+ extra = ''
+ fname = fname[::-1] + extra
+ return fname
+
+class FrameFilter ():
+
+ def __init__ (self):
+ self.name = "Reverse"
+ self.priority = 100
+ self.enabled = True
+ gdb.frame_filters [self.name] = self
+
+ def filter (self, frame_iter):
+ # Python 3.x moved the itertools.imap functionality to map(),
+ # so check if it is available.
+ if hasattr(itertools, "imap"):
+ frame_iter = itertools.imap (Reverse_Function,
+ frame_iter)
+ else:
+ frame_iter = map(Reverse_Function, frame_iter)
+
+ return frame_iter
+
+FrameFilter()
"prompt_hook argument is default prompt. 2"
gdb_exit
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
set GDBFLAGS [concat $tmp_gdbflags " -ex \"set pagination off\""]
set GDBFLAGS [concat $GDBFLAGS " -ex \"set editing on\""]
return -1
}
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
# Test command 'where' is executed when command 'attach' is done, otherwise
# function 'sleep' may not show up in backtrace.
def A_plus_A(obj, opr):
- print ('From Python <A_plus_A>:')
+ print('From Python <A_plus_A>:')
return obj['a'] + opr['a']
def plus_plus_A(obj):
- print ('From Python <plus_plus_A>:')
+ print('From Python <plus_plus_A>:')
return obj['a'] + 1
def A_geta(obj):
- print ('From Python <A_geta>:')
+ print('From Python <A_geta>:')
return obj['a']
def A_getarrayind(obj, index):
- print 'From Python <A_getarrayind>:'
+ print('From Python <A_getarrayind>:')
return obj['array'][index]
return gdb.lookup_type('char')
def __call__(self, obj, arg):
- print 'From Python <E_method_char>'
+ print('From Python <E_method_char>')
return None
return gdb.lookup_type('int')
def __call__(self, obj, arg):
- print 'From Python <E_method_int>'
+ print('From Python <E_method_int>')
return None
class_tag = class_type.unqualified().tag
if not re.match('^dop::E$', class_tag):
return None
- if not re.match('^method$', method_name):
+ if not re.match('^method$', method_name):
return None
workers = []
if self.methods[0].enabled:
pass
def __call__(self, obj):
- print ('From Python G<>::size_diff()')
+ print('From Python G<>::size_diff()')
return (self._method_template_type.sizeof -
self._class_template_type.sizeof)
pass
def __call__(self, obj):
- print ('From Python G<>::size_mul()')
+ print('From Python G<>::size_mul()')
return self._class_template_type.sizeof * self._method_template_val
return self._method_template_type
def __call__(self, obj, arg):
- print ('From Python G<>::mul()')
+ print('From Python G<>::mul()')
return obj['t'] * arg
"print (23)" "" \
"end" "23"
+# Spawn interactive Python help from a multi-line command, thus, after
+# a secondary prompt.
+
+with_test_prefix "python interactive help" {
+ set test "python; help(); end"
+ gdb_test_multiple "python\nhelp()\nend" $test {
+ -re "online help utility.*help> $" {
+ pass $test
+
+ # The "quit" must be seen on the output. A buggy GDB
+ # would not display it.
+ gdb_test "quit" "^quit.*leaving help.*" "quit help"
+ }
+ }
+}
+
gdb_py_test_multiple "show python command" \
"define zzq" "Type commands for definition of .* just \"end\"\\.*" \
"python" "" \
gdb_test_no_output "set remote exec-file $target_exec" "set remote exec-file"
-# Start the program running and then wait for a bit, to be sure
-# that it can be attached to.
-set testpid [eval exec $binfile &]
-exec sleep 2
-if { [istarget "*-*-cygwin*"] } {
- # testpid is the Cygwin PID, GDB uses the Windows PID, which might be
- # different due to the way fork/exec works.
- set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
-}
+set testpid [spawn_wait_for_attach $binfile]
gdb_test "attach $testpid" \
"Attaching to program: .*, process $testpid.*(in|at).*" \
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <assert.h>
+
+static pthread_t main_thread;
+
+static void *
+start (void *arg)
+{
+ int i;
+
+ i = pthread_join (main_thread, NULL);
+ assert (i == 0);
+
+ return arg; /* break-here */
+}
+
+int
+main (void)
+{
+ pthread_t thread;
+ int i;
+
+ main_thread = pthread_self ();
+
+ i = pthread_create (&thread, NULL, start, NULL);
+ assert (i == 0);
+
+ pthread_exit (NULL);
+ assert (0);
+ return 0;
+}
--- /dev/null
+# Copyright 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+standard_testfile
+set corefile [standard_output_file ${testfile}.core]
+
+if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug] != ""} {
+ return -1
+}
+
+clean_restart ${testfile}
+
+gdb_test_no_output "set non-stop on"
+
+if { ! [ runto_main ] } then {
+ return -1
+}
+
+gdb_test_multiple "info threads" "threads are supported" {
+ -re ".* main .*\r\n$gdb_prompt $" {
+ # OK, threads are supported.
+ }
+ -re "\r\n$gdb_prompt $" {
+ unsupported "gdb does not support threads on this target"
+ return -1
+ }
+}
+
+gdb_breakpoint ${srcfile}:[gdb_get_line_number "break-here"]
+# gdb_continue_to_breakpoint does not work as it uses "$gdb_prompt $" regex
+# which does not work due to the output: (gdb) [Thread ... exited]
+set name "continue to breakpoint: break-here"
+gdb_test_multiple "continue" $name {
+ -re "Breakpoint .* (at|in) .* break-here .*\r\n$gdb_prompt " {
+ pass $name
+ }
+}
+
+gdb_gcore_cmd "$corefile" "save a corefile"
+
+# Do not run "info threads" before "gcore" as it could workaround the bug
+# by discarding non-current exited threads.
+gdb_test "info threads" \
+ {The current thread <Thread ID 1> has terminated\. See `help thread'\.} \
+ "exited thread is current due to non-stop"
--- /dev/null
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2014 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+#include <pthread.h>
+#include <unistd.h>
+#include <stdlib.h>
+
+/* Always zero, used in breakpoint condition. */
+volatile int global_zero;
+
+void *
+child_function (void *arg)
+{
+ while (1)
+ {
+ usleep (1); /* set breakpoint child here */
+ }
+
+ pthread_exit (NULL);
+}
+
+int
+main (void)
+{
+ pthread_t child_thread;
+ int res;
+
+ res = pthread_create (&child_thread, NULL, child_function, NULL);
+ sleep (2); /* set wait-thread breakpoint here */
+ exit (EXIT_SUCCESS);
+}
--- /dev/null
+# Copyright (C) 2014 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# Test that GDB behaves correctly when a "next" steps over a call, and
+# another thread hits a breakpoint that doesn't cause a user visible
+# stop (and so needs to be stepped over). GDB used to trip on an
+# invalid assertion - PR17408.
+
+standard_testfile
+
+if {[prepare_for_testing "failed to prepare" $testfile $srcfile {debug pthreads}] == -1} {
+ return -1
+}
+
+# Test all "set scheduler-locking" variants.
+foreach schedlock {"off" "step" "on" } {
+ with_test_prefix "schedlock=$schedlock" {
+ clean_restart $binfile
+
+ if ![runto_main] {
+ continue
+ }
+
+ gdb_breakpoint [gdb_get_line_number "set wait-thread breakpoint here"]
+ gdb_continue_to_breakpoint "run to wait-thread breakpoint"
+ gdb_test "info threads" "2 .*\\\* 1.*" "info threads shows all threads"
+
+ delete_breakpoints
+
+ gdb_breakpoint [gdb_get_line_number "set breakpoint child here"]
+ # Give it a condition that always fails.
+ gdb_test "condition \$bpnum global_zero == 1" ".*"
+
+ gdb_test_no_output "set scheduler-locking $schedlock"
+
+ # While stepping over the sleep call, the other thread hits a
+ # breakpoint that doesn't cause a user visible stop (and so
+ # needs to be stepped over). The next should complete as if
+ # that breakpoint never triggered.
+ gdb_test "next" "EXIT_SUCCESS.*" "next over function call"
+ }
+}
exit(EXIT_SUCCESS);
}
+void some_function (void) {
+ /* Sleep a bit to give the other threads a chance to run, if not
+ locked. This also ensure that even if the compiler optimizes out
+ or inlines some_function, there's still be some function that
+ needs to be stepped over. */
+ usleep (1);
+}
+
+/* When testing "next", this is set to have the loop call
+ some_function, which GDB should step over. When testing "step",
+ that would step into the function, which is not what we want. */
+volatile int call_function = 0;
+
+/* Call some_function if CALL_FUNCTION is set. This is wrapped in a
+ macro so that it's a single source line in the main loop. */
+#define MAYBE_CALL_SOME_FUNCTION() \
+ do \
+ { \
+ if (call_function) \
+ some_function (); \
+ } while (0)
+
void *thread_function(void *arg) {
int my_number = (long) arg;
int *myp = (int *) &args[my_number];
while (*myp > 0)
{
/* schedlock.exp: main loop. */
- (*myp) ++;
+ MAYBE_CALL_SOME_FUNCTION(); (*myp) ++;
}
pthread_exit(NULL);
# Now we can proceed with the real testing.
-proc get_args { } {
- global list_count
+# Get the current contents of the `args` array in the test program.
+# Description is appended to the test message.
+
+proc get_args { description } {
global gdb_prompt
global NUM
append pattern ", (\[0-9\]+)"
}
- gdb_test_multiple "print args" "listed args ($list_count)" {
+ set test "listed args ($description)"
+ gdb_test_multiple "print args" $test {
-re "\\\$\[0-9\]+ = {$pattern}.*$gdb_prompt $" {
- set list_count [expr $list_count + 1]
- pass "listed args ($list_count)"
+ pass $test
set result ""
for {set i 1} {[expr $i <= $NUM]} {incr i} {
proc get_current_thread { description } {
global gdb_prompt
- gdb_test_multiple "bt" "$description" {
+ set test "find current thread ($description)"
+
+ gdb_test_multiple "bt" $test {
-re "thread_function \\(arg=0x(\[0-9\])\\).*$gdb_prompt $" {
- pass $description
+ pass $test
return $expect_out(1,string)
}
}
return ""
}
+# Make sure we're stopped in the loop, in one of the non-main threads.
+
+proc goto_loop { msg } {
+ gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 0"]
+
+ set test "return to loop"
+ if {$msg != ""} {
+ set test "$test ($msg)"
+ }
+ gdb_continue_to_breakpoint $test
+ delete_breakpoints
+}
+
proc my_continue { msg } {
- gdb_test_multiple "continue" "continuing ($msg)" {
+ set test "continue ($msg)"
+ gdb_test_multiple "continue" $test {
-re "Continuing" {
- pass "continue ($msg)"
+ pass $test
}
}
stop_process "stop all threads ($msg)"
- # Make sure we're in one of the non-main looping threads.
- gdb_breakpoint [concat [gdb_get_line_number "schedlock.exp: main loop"] " if arg != 0"]
- gdb_continue_to_breakpoint "return to loop ($msg)"
- delete_breakpoints
+ goto_loop $msg
}
-proc step_ten_loops { msg } {
+# Use CMD to step the loop 10 times. CMD may be "step" or "next".
+
+proc step_ten_loops { cmd } {
global gdb_prompt
for {set i 0} {[expr $i < 10]} {set i [expr $i + 1]} {
set other_step 0
- gdb_test_multiple "step" "step to increment ($msg $i)" {
+ set test "$cmd to increment ($i)"
+ gdb_test_multiple $cmd $test {
-re ".*myp\\) \\+\\+;\[\r\n\]+$gdb_prompt $" {
- pass "step to increment ($msg $i)"
+ pass $test
}
-re "$gdb_prompt $" {
if {$other_step == 0} {
set other_step 1
- send_gdb "step\n"
+ send_gdb "$cmd\n"
exp_continue
} else {
- fail "step to increment ($msg $i)"
+ fail $test
# FIXME cascade?
}
}
gdb_breakpoint [gdb_get_line_number "schedlock.exp: last thread start"]
gdb_continue_to_breakpoint "all threads started"
-global list_count
-set list_count 0
-
-set start_args [get_args]
+set start_args [get_args "before initial"]
# First make sure that all threads are alive.
my_continue "initial"
-set cont_args [get_args]
+set cont_args [get_args "after initial"]
set bad 0
for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
fail "all threads alive ($bad/$NUM did not run)"
}
-# We can't change threads, unfortunately, in current GDB. Use
-# whichever we stopped in.
-set curthread [get_current_thread "find current thread (1)"]
-
-
-
+# Compare the previous thread and args with the current thread and
+# args. Check that we didn't switch threads, and that the threads
+# incremented their args counter the amounts expected. CMD is the
+# command being tested. BEFORE_THREAD is the thread that was selected
+# before the command was run. BEFORE_ARGS is the value of the
+# thread's args before the command was run. LOCKED indicates whether
+# we expect threads other than the selected thread remained locked.
-# Test stepping without scheduler locking.
-gdb_test_no_output "set scheduler-locking off"
+proc check_result { cmd before_thread before_args locked } {
+ global NUM
-step_ten_loops "unlocked"
+ # Make sure we're still in the same thread.
+ set newthread [get_current_thread "after"]
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (2)"]
-if {$curthread == $newthread} {
- pass "step without lock does not change thread"
-} else {
- fail "step without lock does not change thread (switched to thread $newthread)"
-}
+ set test "$cmd does not change thread"
+ if {$before_thread == $newthread} {
+ pass "$test"
+ } else {
+ fail "$test (switched to thread $newthread)"
+ }
-set start_args $cont_args
-set cont_args [get_args]
+ set after_args [get_args "after"]
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
- if {[lindex $start_args $i] == [lindex $cont_args $i]} {
- if {$i == $curthread} {
- fail "current thread stepped (didn't run)"
+ set test "current thread advanced"
+ if { $locked } {
+ set test "$test - locked"
+ } else {
+ set test "$test - unlocked"
}
- } else {
- if {$i == $curthread} {
- if {[lindex $start_args $i] == [expr [lindex $cont_args $i] - 10]} {
- pass "current thread stepped"
+
+ set num_other_threads 0
+ for {set i 0} {$i < $NUM} {incr i} {
+ if {[lindex $before_args $i] == [lindex $after_args $i]} {
+ if {$i == $before_thread} {
+ fail "$test (didn't run)"
+ }
} else {
- fail "current thread stepped (wrong amount)"
+ if {$i == $before_thread} {
+ if {$cmd == "continue"
+ || [lindex $before_args $i] == [expr [lindex $after_args $i] - 10]} {
+ pass "$test"
+ } else {
+ fail "$test (wrong amount)"
+ }
+ } else {
+ incr num_other_threads
+ }
}
+ }
+
+ if { $locked } {
+ gdb_assert {$num_other_threads == 0} "other threads didn't run - locked"
} else {
- set num_other_threads [expr $num_other_threads + 1]
+ gdb_assert {$num_other_threads > 0} "other threads ran - unlocked"
}
- }
-}
-if {$num_other_threads > 0} {
- pass "other threads ran - unlocked"
-} else {
- fail "other threads ran - unlocked"
}
-# Test continue with scheduler locking
-gdb_test "set scheduler-locking on" ""
+with_test_prefix "schedlock=on: cmd=continue" {
+ # Use whichever we stopped in.
+ set curthread [get_current_thread "before"]
-my_continue "with lock"
+ # Test continue with scheduler locking.
+ gdb_test "set scheduler-locking on" ""
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (3)"]
-if {$curthread == $newthread} {
- pass "continue with lock does not change thread"
-} else {
- fail "continue with lock does not change thread (switched to thread $newthread)"
+ my_continue "with lock"
+
+ check_result "continue" $curthread $cont_args 1
}
-set start_args $cont_args
-set cont_args [get_args]
+# Test stepping/nexting with different modes of scheduler locking.
+proc test_step { schedlock cmd call_function } {
+ global NUM
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
- if {[lindex $start_args $i] == [lindex $cont_args $i]} {
- if {$i == $curthread} {
- fail "current thread ran (didn't run)"
- }
- } else {
- if {$i == $curthread} {
- pass "current thread ran"
- } else {
- incr num_other_threads
+ gdb_test_no_output "set scheduler-locking off"
+ goto_loop ""
+
+ set curthread [get_current_thread "before"]
+
+ # No need to set to off again. This avoids a duplicate message.
+ if {$schedlock != "off"} {
+ gdb_test_no_output "set scheduler-locking $schedlock"
}
- }
-}
-if {$num_other_threads > 0} {
- fail "other threads didn't run - locked"
-} else {
- pass "other threads didn't run - locked"
-}
-# Test stepping with scheduler locking
-step_ten_loops "locked"
+ gdb_test "print call_function = $call_function" \
+ " = $call_function"
-# Make sure we're still in the same thread.
-set newthread [get_current_thread "find current thread (2)"]
-if {$curthread == $newthread} {
- pass "step with lock does not change thread"
-} else {
- fail "step with lock does not change thread (switched to thread $newthread)"
-}
+ set before_args [get_args "before"]
-set start_args $cont_args
-set cont_args [get_args]
+ step_ten_loops $cmd
-set num_other_threads 0
-for {set i 0} {[expr $i < $NUM]} {set i [expr $i + 1]} {
- if {[lindex $start_args $i] == [lindex $cont_args $i]} {
- if {$i == $curthread} {
- fail "current thread stepped locked (didn't run)"
- }
- } else {
- if {$i == $curthread} {
- if {[lindex $start_args $i] == [expr [lindex $cont_args $i] - 10]} {
- pass "current thread stepped locked"
- } else {
- fail "current thread stepped locked (wrong amount)"
- }
+ # "next" lets other threads run while stepping over functions.
+ if { $schedlock == "on" || ($schedlock == "step" && !$call_function) } {
+ set locked 1
} else {
- incr num_other_threads
+ set locked 0
}
- }
-}
-if {$num_other_threads > 0} {
- fail "other threads didn't run - step locked"
-} else {
- pass "other threads didn't run - step locked"
+
+ check_result $cmd $curthread $before_args $locked
}
-return 0
+# Test stepping/nexting with different modes of scheduler locking.
+foreach schedlock {"off" "step" "on"} {
+ with_test_prefix "schedlock=$schedlock" {
+ with_test_prefix "cmd=step" {
+ test_step $schedlock "step" 0
+ }
+ with_test_prefix "cmd=next" {
+ # With "next", and schedlock "step", threads run unlocked
+ # when stepping over a function call. This exercises both
+ # with and without a function call. Without a function
+ # call "next" should behave just like "step".
+ foreach call_function {0 1} {
+ with_test_prefix "call_function=$call_function" {
+ test_step $schedlock "next" $call_function
+ }
+ }
+ }
+ }
+}
default_gdb_spawn
}
+# Spawn GDB with CMDLINE_FLAGS appended to the GDBFLAGS global.
+
+proc gdb_spawn_with_cmdline_opts { cmdline_flags } {
+ global GDBFLAGS
+
+ set saved_gdbflags $GDBFLAGS
+
+ append GDBFLAGS $cmdline_flags
+
+ set res [gdb_spawn]
+
+ set GDBFLAGS $saved_gdbflags
+
+ return $res
+}
+
# Start gdb running, wait for prompt, and disable the pagers.
# Overridable function -- you can override this function in your
catch default_gdb_exit
}
+# Start a set of programs running and then wait for a bit, to be sure
+# that they can be attached to. Return a list of the processes' PIDs.
+
+proc spawn_wait_for_attach { executable_list } {
+ set pid_list {}
+
+ foreach {executable} $executable_list {
+ lappend pid_list [eval exec $executable &]
+ }
+
+ sleep 2
+
+ if { [istarget "*-*-cygwin*"] } {
+ for {set i 0} {$i < [llength $pid_list]} {incr i} {
+ # testpid is the Cygwin PID, GDB uses the Windows PID,
+ # which might be different due to the way fork/exec works.
+ set testpid [lindex $pid_list $i]
+ set testpid [ exec ps -e | gawk "{ if (\$1 == $testpid) print \$4; }" ]
+ set pid_list [lreplace $pid_list $i $i $testpid]
+ }
+ }
+
+ return $pid_list
+}
+
#
# gdb_load_cmd -- load a file into the debugger.
# ARGS - additional args to load command.
}
}
+/* See top.h. */
+
+void
+maybe_wait_sync_command_done (int was_sync)
+{
+ /* If the interpreter is in sync mode (we're running a user
+ command's list, running command hooks or similars), and we
+ just ran a synchronous command that started the target, wait
+ for that command to end. */
+ if (!interpreter_async && !was_sync && sync_execution)
+ {
+ while (gdb_do_one_event () >= 0)
+ if (!sync_execution)
+ break;
+ }
+}
+
/* Execute the line P as a command, in the current user context.
Pass FROM_TTY as second argument to the defining function. */
else
cmd_func (c, arg, from_tty);
- /* If the interpreter is in sync mode (we're running a user
- command's list, running command hooks or similars), and we
- just ran a synchronous command that started the target, wait
- for that command to end. */
- if (!interpreter_async && !was_sync && sync_execution)
- {
- while (gdb_do_one_event () >= 0)
- if (!sync_execution)
- break;
- }
+ maybe_wait_sync_command_done (was_sync);
/* If this command has been post-hooked, run the hook last. */
execute_cmd_post_hook (c);
/* Prevent parts of the prompt from being redisplayed if annotations
are enabled, and readline's state getting out of sync. We'll
- restore it in gdb_readline_wrapper_cleanup. */
+ reinstall the callback handler, which puts the terminal in raw
+ mode (or in readline lingo, in prepped state), when we're next
+ ready to process user input, either in display_gdb_prompt, or if
+ we're handling an asynchronous target event and running in the
+ background, just before returning to the event loop to process
+ further input (or more target events). */
if (async_command_editing_p)
- rl_callback_handler_remove ();
+ gdb_rl_callback_handler_remove ();
}
struct gdb_readline_wrapper_cleanup
gdb_assert (input_handler == gdb_readline_wrapper_line);
input_handler = cleanup->handler_orig;
- /* Reinstall INPUT_HANDLER in readline, without displaying a
- prompt. */
- if (async_command_editing_p)
- rl_callback_handler_install (NULL, input_handler);
+ /* Don't restore our input handler in readline yet. That would make
+ readline prep the terminal (putting it in raw mode), while the
+ line we just read may trigger execution of a command that expects
+ the terminal in the default cooked/canonical mode, such as e.g.,
+ running Python's interactive online help utility. See
+ gdb_readline_wrapper_line for when we'll reinstall it. */
gdb_readline_wrapper_result = NULL;
gdb_readline_wrapper_done = 0;
extern void quit_cover (void);
extern void execute_command (char *, int);
+/* If the interpreter is in sync mode (we're running a user command's
+ list, running command hooks or similars), and we just ran a
+ synchronous command that started the target, wait for that command
+ to end. WAS_SYNC indicates whether sync_execution was set before
+ the command was run. */
+
+extern void maybe_wait_sync_command_done (int was_sync);
+
extern void check_frame_language_change (void);
/* Prepare for execution of a command.
current thread until we report an event out of windows_wait. */
inferior_ptid = pid_to_ptid (pid);
- child_terminal_init_with_pgrp (pid);
+ target_terminal_init ();
target_terminal_inferior ();
windows_initialization_done = 0;
a3d687bc21313648dbae3013c5c51583 bfd/doc/bfdint.texi
236e856bb13ee47adc5d7d253037640d bfd/doc/bfdwin.texi
37ba364fb34b96a1dbb55b0f6f612432 bfd/doc/init.texi
-077e32febe5cfb7125746cb120b9d668 bfd/doc/bfdver.texi
+21851c80ccaf48c68959739e47e29115 bfd/doc/bfdver.texi
c21a4ec3dfb39f4c344a51b2dedffb7e bfd/doc/bfd.texinfo
51139f6af786e74446d01ec49807fc28 bfd/doc/elf.texi
5b895f9b96e315703b490f99fdcf04fa bfd/doc/Makefile.am
2fdee0a4cafeb78e5001de80d27f267e bfd/elf32-tilepro.h
1ded054093de910d9786c62bc4fe8cc6 bfd/stamp-h.in
3ff448c8aa25a9c5e3c0c1dfc27caa5d bfd/aout-cris.c
-608cb5cd94e6b81345c71434308e61ca bfd/version.h
+6f815551fdc9657190ba94f5c0078f5b bfd/version.h
0a4511be36b5bfec01d80f3b13e52839 bfd/aout-ns32k.c
c7f04d335e5450ee49717b66834a23e1 bfd/cpu-sh.c
c191ee10b2a77b07098dfb973de16440 bfd/elfxx-tilegx.h
53e0ec4a5ea828101c9d1cb650bae56c bfd/elf-hppa.h
42d38002711deeaf2d9ba8ab6f72d99d bfd/cpu-tic30.c
6b0426f61872d06b138e0aa6dcd3149d bfd/elf32-xtensa.c
-fb7db5f2dde1338217c138e0ccc8c60f bfd/elfcode.h
+0b3482bc51441158de373feb92dc409d bfd/elfcode.h
2f37446a625434bf92958013fc0b5c3f bfd/libbfd.h
e41bf4306979bec62eb8430fb41df6a5 bfd/ChangeLog-2013
26c5fba0e8dc748e3662f1015a81711d bfd/i386freebsd.c
6474afde93f8e964e3d6dddffde3c41e bfd/ChangeLog-0001
54bf68b3aca32f721a0e216361ab8848 bfd/coff-arm.c
1c4d23bb61bcb88b88fe5d91c2d5a6a1 bfd/elf32-mips.c
-28e9c4c11e9f8e7bccbeec36e1ff2e7c bfd/ChangeLog
+544824b90a7d49af410f81df7759894f bfd/ChangeLog
131483790aad1c9bcdac960a2df6c2cd bfd/hpux-core.c
956eb4cbdb3f4c79b88da27ba32b518b bfd/i386os9k.c
f0081a1eb7e7392ae4ec3531bf8bb7a2 bfd/ChangeLog-9193
fc270b3eb1edf41b9084e18cf7b6c8b5 gdb/ada-exp.y
bcaca0d8e31702069f47a21410f9f923 gdb/agent.c
3c99e4fcb682dfa2d4f67578c7f068c2 gdb/xtensa-linux-nat.c
-1cf2c171621acbd5cb162779c9b8438f gdb/event-top.c
+70b6d12b072d286c199457ad5cc1b211 gdb/event-top.c
442e920d795f6527f7b06added328ae4 gdb/buildsym.h
fe9516b5c544416eb653f4dbc876a44c gdb/c-varobj.c
9a72335b805d8cf43f2b459f3d4b3f8a gdb/parser-defs.h
86a2f02a1a41c213921ee0c3fdc542d5 gdb/c-exp.y
c7487ed1209127959578827f7b659610 gdb/moxie-tdep.h
3b7f8f2c2a9f3f8e891438117e968178 gdb/amd64nbsd-tdep.c
-1197d9e1e7751fbee5c99c0e84868516 gdb/infcmd.c
+03baf8387f031d7610de2bb5ba961831 gdb/infcmd.c
991b7b1ab5361373c05298beda368849 gdb/m88kbsd-nat.c
065d8bfef50666d8203412d6f771b982 gdb/maint.c
4022a31dd4992a2c771e889262714bba gdb/alphanbsd-tdep.c
34ad1d6039840e2ed14d34841620b0ff gdb/objfiles.h
559cd5a59cbdb824272146e3c3cf2ce2 gdb/obsd-tdep.h
2bbc04be2960b3cd116cb8ad77f7359a gdb/frame.c
-b0fa49c09da35ea9c078ad6628cf6b82 gdb/top.c
+a8e5b86347f27209a1025c84b6ddcf59 gdb/top.c
7a5f09aaab77ccbf811d3d1006797092 gdb/nios2-tdep.c
e130801087bce8e5142d86d31a99a663 gdb/xml-support.h
7e2616730c03776cf51b3a289782cc4b gdb/i386-dicos-tdep.c
-a56a37f47f83faec8416c020c168a02b gdb/gdbarch.sh
+c9c74aca356654764613cd67a5cae240 gdb/gdbarch.sh
c86c6cc30a5e88698f9448b0f26ffd60 gdb/tic6x-tdep.c
2e6b4456329c85431c3ed671e92634db gdb/extension.h
4541a133e8378684e70f591b83293534 gdb/mips64obsd-tdep.c
b56edf5f12b7b92547fba91ab5512369 gdb/guile/lib/gdb/types.scm
94c022b91683f6b925b4ce9f7c7eacdf gdb/guile/lib/gdb.scm
8cd617e583a2824fc5036eebb1d0fcd9 gdb/guile/scm-symtab.c
-a0490a3de0c012da98b19166d0742a55 gdb/guile/guile.c
+41888e11a65319cf6584699ac3b558ed gdb/guile/guile.c
fc77254c80da9521716b702a5ea0c0e2 gdb/guile/scm-ports.c
a474c24f02a6881e46eff4bc2cd38d30 gdb/guile/scm-disasm.c
5efe973da5a50ab3c4869ceedefc07db gdb/guile/scm-cmd.c
8e90f3b590dbd1cba29fd749ac9c8611 gdb/darwin-nat.h
d5d06eaf9b4d44aa442a4a281aa9aea4 gdb/doc/a4rc.sed
cd5e3faa9bd1b684a73c7d527cdb4988 gdb/doc/filter-params.pl
-31a74f278cc8c31dba1154ab42e78c32 gdb/doc/gdb.info-6
+7f65562a63a62f801ba2d0245bee86ce gdb/doc/gdb.info-6
7bfdb0765c5d050d204fbb30aeeba0d8 gdb/doc/stack_frame.eps
10f160cac8a8bb7c5d7c4eadafaee68f gdb/doc/Doxyfile-base.in
53c4421fce28f695c1e8100a1736154d gdb/doc/stabs.texinfo
d18f5345c0efad2e1ea93d32fe5aa220 gdb/doc/agentexpr.texi
4177806e15c6d3dfd8a2467b949be4c3 gdb/doc/observer.texi
-622efa4250d8612a247594139facb433 gdb/doc/gdb.info-1
-0a1bf9f2d1ad89faecb4511c55d5e588 gdb/doc/gdb.info-4
-601203788f7860b0ffd9263548119822 gdb/doc/gdb.info-2
-92fb840d6c396dbab04bdb2b57c6374c gdb/doc/gdb.info-7
+472a6b721164a65936b6620a5f7d752c gdb/doc/gdb.info-1
+b27913b81b51535bb803ebe14bcc3fb3 gdb/doc/gdb.info-4
+21e5935774cce1c1b539b2897d366045 gdb/doc/gdb.info-2
+6c27d6c145d472222920c6ea93082d44 gdb/doc/gdb.info-7
73ec71cd3b2e7f61bc530f19d4b35056 gdb/doc/lpsrc.sed
-7b7ddd58e7b5450d49db966d574f5fc5 gdb/doc/gdbserver.1
-4b136c4c8387b0d7dafd422bfed20395 gdb/doc/gdbinit.5
+f967e757b2a166de08dcd405aa8c1e4b gdb/doc/gdbserver.1
+3510afef87d46d6629e5e704cfad5b74 gdb/doc/gdbinit.5
553b7fe1bf4b5d8b96fdb8cd83503de1 gdb/doc/stack_frame.svg
ab0fe311032294b952da80585b8b90e7 gdb/doc/fdl.texi
0d0ec0c36a30512d61f402b8990ebe14 gdb/doc/Doxyfile-gdbserver.in
6076d300a46651562d4ecd0604442414 gdb/doc/stack_frame.png
-02e9f6847677e0ed98157cdeea4d3878 gdb/doc/gdb.info-3
+db597144f927845c6df82111a77c1acf gdb/doc/gdb.info-3
67d6ecf1abfb2ec6ff1c32f8715c6c22 gdb/doc/gdb.texinfo
c9e2dc8be9bf526bceffd17e52f5fc42 gdb/doc/Doxyfile-gdb-api.in
8d169ff7e7d99dff9d951fa869f90fe2 gdb/doc/annotate.texinfo
f81a0e00e0cb9e41b078069fb9bedb07 gdb/doc/stack_frame.txt
ea8823843bcd028f03c86436ff4fe7fd gdb/doc/stabs.info
-827a87b24235e35717749e728a78969d gdb/doc/gdb.info-5
+76a96988eb6850a53310de4d1b30fe07 gdb/doc/gdb.info-5
bf96494e6e4d346175babd5ef9781882 gdb/doc/gpl.texi
ef64c20658907115794618aa8bd6539d gdb/doc/guile.texi
2c65d15ffe9be0a73b7b06c7526a3f6f gdb/doc/Makefile.in
-9f78991eb3aa3e75a185c3ae1e4cf567 gdb/doc/gdb.info
+3d74dd0dd1a57f7210dbf8b312e1917a gdb/doc/gdb.info
f44023a05ad33ffb8254965d32eef766 gdb/doc/refcard.tex
86a4ae834847eda74e2b062539368052 gdb/doc/python.texi
3f3e1ce3f63d9833af6e4a2bfdb81c11 gdb/doc/ChangeLog
8108dd8f906f2654fecc74958cf383db gdb/doc/psrc.sed
-44564021c4a456f9b139c13fd951e102 gdb/doc/gdb.1
-0cb50ed7b830e889a88c796864c3c63a gdb/doc/gcore.1
+78a2f5ae209423bf7bf1c1f43409cdf0 gdb/doc/gdb.1
+c2d27636c1030643718922927c5c5300 gdb/doc/gcore.1
f5d7d479f48f5bcc74d6e75c624d553a gdb/doc/annotate.info
73b97f7f195c39a874818e550df55a4f gdb/doc/Doxyfile-gdb-xref.in
03454533593a5ff355235ae150ced2e9 gdb/doc/doxy-index.in
4b8fa9ef6bfb499f484f1e5c41f4d802 gdb/m2-valprint.c
182aed1992c09559cc2448cdeee4354e gdb/tilegx-linux-tdep.c
7c975d8777399a3795511bffd65e1909 gdb/nbsd-nat.c
-87b409f11f18efb8594104d8f9b38623 gdb/data-directory/Makefile.in
+2c994ff6db1ba6959b5ee12fc37809d0 gdb/data-directory/Makefile.in
f6f483a051a584c96c61483e221eef86 gdb/thread.c
d99372a03fd71feb649f40734ef4fe5e gdb/srec.h
c8cd35cb646f2e1504cd0d0fe21f57d8 gdb/gdb_mbuild.sh
9d553ea3d9b91ff8c44986b11314d7b8 gdb/disasm.h
1a998ee1a01dff7041f6fb77c5cd6a69 gdb/gdb_proc_service.h
bdedc5d290cb08f622b787c388181d3b gdb/hppabsd-nat.c
-e65676fe84e04549ba0d750eeb7542f8 gdb/infrun.c
+3d77e42a1805653bcafde7184ddf16f3 gdb/infrun.c
f4ef0912947a93062477a8f4dbe7a90c gdb/aarch64-tdep.h
3ea4f0b924e0fee10d9eb8f07d1c953f gdb/sim-regno.h
1bbe8a3e1cdd9840472d5546f85e6b84 gdb/copying.awk
6d46600c9cbd9fe4ad15775629226923 gdb/amd64-dicos-tdep.c
daf0d1cae306df7fa877cc09a87ed8d3 gdb/linux-record.c
3591ff34ffa292804c545d2d6fea6728 gdb/progspace.c
-830ca9d23211d7c340deed2acdc3bd3c gdb/version.in
+3b97d0dde0259a1aa9b4d9cd36c09461 gdb/version.in
188e177300e0018f2c1065bb259fd8da gdb/arm-tdep.h
f1eadf38ba537ea23b3076317f7bc488 gdb/ppc64-tdep.c
cbf9b37187f738b1c73cca0341b75a60 gdb/sparcnbsd-nat.c
60d6b820ad2c3e64f8198ca9c5c38d1e gdb/mipsnbsd-tdep.h
0ead43d3d1bc40473287e094707b8052 gdb/p-lang.c
1851bff0653201a488dcae18dde7efad gdb/po/gdbtext
-e068778a8515e26dcdbf55c1451a6ebf gdb/po/gdb.pot
+c4488056d0f863ae5cc33a0a7f551805 gdb/po/gdb.pot
d825a408a0c74e03f68342abc095dbac gdb/score-tdep.c
d96e90bf4c9b1258f69cabbe11edd704 gdb/gnu-nat.c
6ee0139dea99882f303fdfd9f2458e66 gdb/jit-reader.in
68de77a6756261923196c304c86b5950 gdb/testsuite/gdb.guile/scm-type.c
8e2862633532cd563f4d810bfef58c83 gdb/testsuite/gdb.guile/scm-objfile.c
e50a6105b3f992e58170b7da8c8ef2e7 gdb/testsuite/gdb.threads/pending-step.c
-04e325c08c995433dffd01a4b77f8d1c gdb/testsuite/gdb.threads/schedlock.exp
+13100c4fcab15f0dfa1961d23b32ca53 gdb/testsuite/gdb.threads/schedlock.exp
41a77711d86b92183d5d8872d0794a9f gdb/testsuite/gdb.threads/kill.exp
dd7e048ba4d52b17979242914fa1312d gdb/testsuite/gdb.threads/corethreads.c
0ec6658d79151dbf4b4d5fba0315eee5 gdb/testsuite/gdb.threads/local-watch-wrong-thread.c
674118adc30800e8f884a865f98add05 gdb/testsuite/gdb.threads/step-over-trips-on-watchpoint.exp
daba9799c8549458c9783ed546a03051 gdb/testsuite/gdb.threads/no-unwaited-for-left.exp
df82452f754ef15a81d71f46a0892757 gdb/testsuite/gdb.threads/print-threads.c
+e177db267f6e405c01914d83f2890fb0 gdb/testsuite/gdb.threads/gcore-stale-thread.c
833ca3fdb91c615714def46e4427c5d8 gdb/testsuite/gdb.threads/tls-shared.exp
b1873122dc466272ab1416f015925330 gdb/testsuite/gdb.threads/killed.c
+b8569191ccbc295badca0ad8a6db1b89 gdb/testsuite/gdb.threads/next-bp-other-thread.c
b163080f176346d52ac20391655aa690 gdb/testsuite/gdb.threads/tls.exp
887ac67db3e53d926301bc46fe548d3e gdb/testsuite/gdb.threads/linux-dp.c
92bdb0e16674f2d9cb039d7ffe17a856 gdb/testsuite/gdb.threads/multiple-step-overs.c
29c6ee2992d19c9ba483e207aecab664 gdb/testsuite/gdb.threads/hand-call-in-threads.c
8472795a8050aaa93957ee5356bad17d gdb/testsuite/gdb.threads/info-threads-cur-sal-2.c
7f67686871a103cc24f9b51eea5a3ebf gdb/testsuite/gdb.threads/dlopen-libpthread.c
+5fbfc4411b91ed56e82f3bb05d88acb3 gdb/testsuite/gdb.threads/next-bp-other-thread.exp
c5bd39c5b29f906164d3040f8e10a730 gdb/testsuite/gdb.threads/watchthreads2.exp
a68ecd5a059579c148624212ea6d514a gdb/testsuite/gdb.threads/wp-replication.c
90dfd6105bcef197d91ff453820d8534 gdb/testsuite/gdb.threads/watchthreads.c
60029a7159b1b08315a5d2ce7607eeb5 gdb/testsuite/gdb.threads/siginfo-threads.exp
90fde5844f11246b72554b209e5c6cb8 gdb/testsuite/gdb.threads/multi-create.c
654d0b49216b8553ceeeb22e500a58e1 gdb/testsuite/gdb.threads/watchpoint-fork-child.c
-bd534819118708fd1e7ba4e7a2cd9974 gdb/testsuite/gdb.threads/schedlock.c
+830013ebbd22533085a13d6e7388b710 gdb/testsuite/gdb.threads/schedlock.c
1c2e5a86e6d4b557921640b09056a9da gdb/testsuite/gdb.threads/thread-specific-bp.exp
a2bb3216b24530633d9967c0f8ad8b1b gdb/testsuite/gdb.threads/thread-specific-bp.c
9368ad32ffc463a295399b6ca1795b75 gdb/testsuite/gdb.threads/sigstep-threads.c
256db74d9e698b842b7a768647055f7e gdb/testsuite/gdb.threads/create-fail.exp
930e3bb22ca8b8efaec8385816e05b8f gdb/testsuite/gdb.threads/Makefile.in
c45f77a17131a68015511c21fece7453 gdb/testsuite/gdb.threads/reconnect-signal.exp
+6428eb914f064052a6241c284e9fe1aa gdb/testsuite/gdb.threads/gcore-stale-thread.exp
77a280edf5a6a3df88ce81ef6168a9c8 gdb/testsuite/gdb.threads/attach-stopped.c
fea84a00b8c92e31f71a822ca447f15c gdb/testsuite/gdb.threads/threxit-hop-specific.exp
a527b577c6d71ad1f57500cb6ec9152f gdb/testsuite/gdb.threads/info-threads-cur-sal.exp
4a5e81754ef25b9297cce687c39788c7 gdb/testsuite/gdb.reverse/step-reverse.exp
7287898ff83b2ad3153f6f7dcdea751e gdb/testsuite/gdb.reverse/i387-stack-reverse.c
d0b233927c5e4e2ed37d730ebb74d0c1 gdb/testsuite/gdb.reverse/shr1.c
-d7e780a12db484edd9e9dbf2d758fb55 gdb/testsuite/gdb.multi/multi-attach.exp
+a97adda3ec290af080871e37119ee09c gdb/testsuite/gdb.multi/multi-attach.exp
b6acdf6f3a300a9926cc2fe69459a488 gdb/testsuite/gdb.multi/hello.c
682edc57f496ffa5ba81f60a534337b2 gdb/testsuite/gdb.multi/multi-arch.exp
3d1bb648dad1200e050d78b77bc74ba8 gdb/testsuite/gdb.multi/multi-arch-exec.c
e30fcfa31411c9c834602ac00089531f gdb/testsuite/gdb.python/py-pp-maint.c
4394a603c304d6a44f97f6fe6a6c5198 gdb/testsuite/gdb.python/py-pp-re-notag.exp
c370e81b5b7000400143ecd39d32ef1d gdb/testsuite/gdb.python/source1
-257a2c24952699acc232299e2b4b8c70 gdb/testsuite/gdb.python/py-xmethods.py
+36550d0c9c4f314025044c626eb1df1c gdb/testsuite/gdb.python/py-xmethods.py
243db30bd42444a05379d225c4cc45ca gdb/testsuite/gdb.python/py-breakpoint.exp
dc8fbf5cdbd88f8bcd06e1ab1805af0a gdb/testsuite/gdb.python/py-objfile-script.c
5f2a14106984ed919fa12f9d8cd9d4b8 gdb/testsuite/gdb.python/py-inferior.c
7c157ffcfb2d0d9e8f27b2ed035f6707 gdb/testsuite/gdb.python/py-shared.c
38f5f5200aecaf1816baff434c5f1880 gdb/testsuite/gdb.python/py-linetable.c
f0684babfc7a18e9df64fa364db55eaf gdb/testsuite/gdb.python/py-finish-breakpoint.c
+93a9b8e199127facec02729eba30286e gdb/testsuite/gdb.python/py-framefilter-invalidarg-gdb.py.in
af37b4651b873cf145e60d9e308524b0 gdb/testsuite/gdb.python/py-symtab.exp
01288ea9e162ec80702c619fe1a39aed gdb/testsuite/gdb.python/py-explore.cc
19640bb48cbab2b3a1edbc3b40d0a65d gdb/testsuite/gdb.python/py-mi.exp
0ca4a082be57d676107572ef2dd2c7b4 gdb/testsuite/gdb.python/py-finish-breakpoint2.exp
1bc02a96f981257f866540d12c3ab979 gdb/testsuite/gdb.python/py-events.c
095d8f8d5e856a51a21c173f09afbe7c gdb/testsuite/gdb.python/py-objfile-script.exp
-e1e3603f0df6edfdbbd0f32087d12a7d gdb/testsuite/gdb.python/py-prompt.exp
+7c7bed3fe28f13265506c50543eef6ee gdb/testsuite/gdb.python/py-prompt.exp
+0cb2ddfb1a76f49c48ee3a0b63278f95 gdb/testsuite/gdb.python/amd64-py-framefilter-invalidarg.S
492d58b0696e5592c92493ae80cb31de gdb/testsuite/gdb.python/py-progspace.exp
3944dda0cb69696331566f6cdca03af3 gdb/testsuite/gdb.python/py-breakpoint.c
22f4a6feaa794a233a4470da73777887 gdb/testsuite/gdb.python/py-infthread.exp
62b463d200790d10a5c7acf7a2a1cc20 gdb/testsuite/gdb.python/py-value-cc.exp
96b47b6ea61db52b0a49ba23b00e6fd3 gdb/testsuite/gdb.python/py-cmd.exp
4860ded780279c165f8993fa4848efcc gdb/testsuite/gdb.python/py-typeprint.py
-d855e968f11334c893bca3c0ff4ada4b gdb/testsuite/gdb.python/py-sync-interp.exp
+564456890016bc7f778d3f2b584adba5 gdb/testsuite/gdb.python/py-sync-interp.exp
90d656ad13044ea3535ee7d237e0a1a2 gdb/testsuite/gdb.python/py-frame-args.py
67f18866771f18f63a069fb5e1d1cfc0 gdb/testsuite/gdb.python/py-framefilter.py
a04c422ab487fa190a6abad9034567fc gdb/testsuite/gdb.python/py-type.exp
c276f7018fff03337873146035cf9344 gdb/testsuite/gdb.python/py-cmd.c
111a4dcd323d71e7701eacee1661a7fa gdb/testsuite/gdb.python/py-finish-breakpoint2.py
44cfa43f03be967471d5edd96d71cafb gdb/testsuite/gdb.python/py-pp-re-notag.c
+8ccfb8641439ad2ee3b2710a4e7324ee gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
00619b294de15aef19d6b648767b804e gdb/testsuite/gdb.python/py-sync-interp.c
17e570390bda6b30df54a35316184aa7 gdb/testsuite/gdb.python/py-strfns.c
d94b3c187b3d60b709ba7f78f4cf15f3 gdb/testsuite/gdb.python/py-evsignal.exp
+f55b389a31e7ec69206c3bd50933fd1c gdb/testsuite/gdb.python/py-framefilter-invalidarg.exp
a720d8520b295d698cfeefd35f245e76 gdb/testsuite/gdb.python/py-pp-re-notag.py
cf9b429848cec5a6a896edb849f42ee6 gdb/testsuite/gdb.python/py-arch.exp
78c3f02dfbc35b2af10214ec125ea8a5 gdb/testsuite/gdb.python/py-framefilter.c
1425b161cdfa8c9fbedf79ae941a12d4 gdb/testsuite/gdb.python/py-value.c
d9db3ee70858ea31047f61732d4be2a1 gdb/testsuite/gdb.python/py-block.c
43148a4f0da0d0e8b8cdb6e6431c643e gdb/testsuite/gdb.python/py-framefilter-mi.c
-5585ee1754971991b73ea87d20ef05c1 gdb/testsuite/gdb.python/python.exp
+7602f5fcf63a7679e7fb1fe7c60508da gdb/testsuite/gdb.python/python.exp
fb116a830868db21f93705fe3ab00e01 gdb/testsuite/gdb.python/py-arch.c
70828afef214ac80c3b5aec228cc94b5 gdb/testsuite/gdb.python/py-events-shlib.c
8394f39336e845e3dd7f92d480fc5399 gdb/testsuite/gdb.python/py-template.cc
95f80085cf4f3e6c5ee5575a3c2bdc58 gdb/testsuite/lib/trace-support.exp
cdb6a731d505831e8ed0a5873fd28cd4 gdb/testsuite/lib/dwarf.exp
33b4818b4df1523ce1f7305563b6c996 gdb/testsuite/lib/gdb-guile.exp
-1821caf0f45ede876efc5849c9548e37 gdb/testsuite/lib/gdb.exp
+86686cfd0feafc8cfcb7f1a0b4ce24ad gdb/testsuite/lib/gdb.exp
9260071c37938c2c594eadc9e2396ea6 gdb/testsuite/lib/opencl_hostapp.c
7eb5014d3e78bf93bed69da1dcb08bd2 gdb/testsuite/lib/cl_util.c
da88fd9c15218507b72229fc7ae84cfc gdb/testsuite/lib/compiler.c
bffdc5f840da7341b24d115f04f2ad5b gdb/testsuite/gdb.ada/print_chars/pck.adb
91eed381654c8811d6cdfc4d12d636fe gdb/testsuite/gdb.ada/print_chars/foo.adb
aba48808b12dec37b428b9065b3219ad gdb/testsuite/gdb.ada/ptype_arith_binop.exp
-e85ef9839559eb18dccbbdba7013dc6d gdb/testsuite/ChangeLog
+e406dc978350ef3a511170a771701fb9 gdb/testsuite/ChangeLog
00f1943eda306eea1225aa67d0716842 gdb/testsuite/gdb.hp/gdb.compat/average.c
21d8ad7baeeaac1551ef79c4f7828ea0 gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp
fbf537e72ce89db0e107c27b0339b49b gdb/testsuite/gdb.hp/gdb.compat/xdb.c
16c1e58c8b1c5d45359fb7cb85190a1c gdb/testsuite/gdb.base/code_elim2.c
850a5b2b54ffab34f2ee1730c94b38c0 gdb/testsuite/gdb.base/print-symbol-loading-main.c
c2615e9d8e4ad57addf226411d6641c2 gdb/testsuite/gdb.base/call-signals.c
+ef589380c7ef658fba795ed84363baad gdb/testsuite/gdb.base/continue-all-already-running.c
7964ed64a590bfc657dc599a2accfc56 gdb/testsuite/gdb.base/source-nofile.gdb
7917f3d1ef819aadd582ec98629d7563 gdb/testsuite/gdb.base/debug-expr.c
b633b1a8a5a91896955c19f7258759b9 gdb/testsuite/gdb.base/code-expr.exp
525375937f21516b333e448c49aae147 gdb/testsuite/gdb.base/bang.exp
32b0d9fb084af9251c10e4349951d337 gdb/testsuite/gdb.base/condbreak.exp
246912b4a24edf28c2896b2b0581372b gdb/testsuite/gdb.base/args.c
+bf1cfd094cbd132aa408cce057585d73 gdb/testsuite/gdb.base/bg-execution-repeat.c
45d6ef5c470266bf58cb40b01a0f5677 gdb/testsuite/gdb.base/infnan.c
78c45a2c94c24872dc6d4aea26859a01 gdb/testsuite/gdb.base/store.exp
9db035ed7b598af31af328e39988b3ce gdb/testsuite/gdb.base/remotetimeout.exp
ec14f7ea8d484886d8f8417d7ac75007 gdb/testsuite/gdb.base/siginfo-thread.exp
e009088beed434df3313c1516bc76732 gdb/testsuite/gdb.base/step-break.exp
09b3514ecddad4ca9dd40f06f77ca5cc gdb/testsuite/gdb.base/solib1.c
-7ab209c534fe4017c8f70a444a0632e5 gdb/testsuite/gdb.base/attach.exp
+fcae82ce70fae182531b761fc12bd284 gdb/testsuite/gdb.base/attach.exp
a7eec13082c0bf5a6bcf3bea3e8f143c gdb/testsuite/gdb.base/pointers.c
5fbd9109e5a2b932ebfca2209dc3655c gdb/testsuite/gdb.base/recpar.c
5fefadea13c06424265ee8e5dbf68dd6 gdb/testsuite/gdb.base/jump.c
875a150f7fd4db096ea08b9acd105dae gdb/testsuite/gdb.base/baz.c
e894aa2115855c7f477dd2af335d97a1 gdb/testsuite/gdb.base/prologue.exp
06af9ba47a85b7d5d7f69a78dc00054f gdb/testsuite/gdb.base/sepdebug2.c
+2b5807a1cbc635ddc0a020033e3649c5 gdb/testsuite/gdb.base/bg-execution-repeat.exp
96414feab41b4954360074ac656e2b8e gdb/testsuite/gdb.base/varargs.c
a465fb9cef999334ae1682da2a72d4df gdb/testsuite/gdb.base/volatile.exp
6a12cce54a177a6b40cddded00f1850d gdb/testsuite/gdb.base/fixsectshr.c
9a83bced47156c845361301857d0426a gdb/testsuite/gdb.base/pendshr.c
1b55267ad36e5a40155e6b64760c0996 gdb/testsuite/gdb.base/print-file-var-main.c
7b21e77cbde5cd739afd2a4bf76df7eb gdb/testsuite/gdb.base/sss-bp-on-user-bp-2.c
-e708353e71bb87d402d10475d0671d95 gdb/testsuite/gdb.base/solib-overlap.exp
+aeebe7d674b49d89fb794b1628e72865 gdb/testsuite/gdb.base/solib-overlap.exp
ec1751cd679a4b52946d065af73c1de0 gdb/testsuite/gdb.base/interact.exp
9b5b2f0fcf279f9ee30283799303bb25 gdb/testsuite/gdb.base/mips_pro.c
ba24922006aa549443c65f9482d9b650 gdb/testsuite/gdb.base/solib-disc.c
d5a026eb45acae831b4541c85b4ccab9 gdb/testsuite/gdb.base/info-shared.exp
94c1f1818c9234b5e8e7669b457865c1 gdb/testsuite/gdb.base/bar.c
0cb031a7e7dc09f9db15197f07176655 gdb/testsuite/gdb.base/info-fun.exp
+724ddcc16972db62b1a05142ed68cf38 gdb/testsuite/gdb.base/multi-line-starts-subshell.exp
a577194c15e0d3318fc4e2e28634fa1c gdb/testsuite/gdb.base/expand-psymtabs.c
94725a575ade5e3fc1c8d41581c2d507 gdb/testsuite/gdb.base/charset.c
3764973c71d5aa701031b4e66fd276d3 gdb/testsuite/gdb.base/shreloc.c
a8b28046d7a613dc6a0320715195a307 gdb/testsuite/gdb.base/vla-ptr.c
7fcf56c612ac3258cecf8546b3322038 gdb/testsuite/gdb.base/dmsym.exp
b96c3d19e96aeed6a87dd12b5f81c21c gdb/testsuite/gdb.base/sigchld.c
+f9824b8db5cc422ec134f5e1017608e9 gdb/testsuite/gdb.base/annota-input-while-running.c
416ecd50cac44b3a2fa2ed5a2b2f0b86 gdb/testsuite/gdb.base/inferior-died.exp
1a35c6065c10f7f5e7d5fdc9d0136d67 gdb/testsuite/gdb.base/huge.c
f9b691748adf6fd32bb5addc102a8dc8 gdb/testsuite/gdb.base/find.exp
a5f0713ea868e92ed92640aef8316461 gdb/testsuite/gdb.base/pending.exp
9aa2f88bc5ed966dbead9b7b650e0708 gdb/testsuite/gdb.base/lineinc.exp
fa9edb1dbd58e187e9f7898df8858f35 gdb/testsuite/gdb.base/solib-overlap-main.c
+803f78c7721914103384d530f59274d9 gdb/testsuite/gdb.base/continue-all-already-running.exp
9ad0dde0929a46dd3fa4b5794d786768 gdb/testsuite/gdb.base/auto-connect-native-target.c
d80d182dc61475887ba30eb12cd5b20e gdb/testsuite/gdb.base/watch-read.c
3429644b6f97aeeabf6edf167745d3b4 gdb/testsuite/gdb.base/ifelse.exp
6faf4b1c7fffaba1a1045e3781d76a6f gdb/testsuite/gdb.base/nextoverexit.c
bed596b24d9277d2100db0fc1b17477e gdb/testsuite/gdb.base/siginfo-addr.exp
36a82aba22a764791ca0b54e737deea1 gdb/testsuite/gdb.base/whatis-exp.exp
+d7d64996aeefb0ed6a5eb6b4ee7669b8 gdb/testsuite/gdb.base/annota-input-while-running.exp
a085ede01a745f23048c6650b72566a2 gdb/testsuite/gdb.base/catch-load.exp
ad2807392b27734b5e53bf945783abd2 gdb/testsuite/gdb.base/cond-eval-mode.c
1a30dc9f7a4c70f531b39bc52afec449 gdb/testsuite/gdb.base/catch-signal-fork.c
83875fee817f16ef54d34c29ea243bd9 gdb/testsuite/gdb.server/server-mon.exp
b36711b735d4630ab900b5d8b696b924 gdb/testsuite/gdb.server/server.c
c4cb7e2b6367fd0c31343d582d2df980 gdb/testsuite/gdb.server/ext-run.exp
-c2621f1c0e08d0baa431c5286c85c3d6 gdb/testsuite/gdb.server/ext-attach.exp
+f10348db85cec60bc1eb5563090e8fd9 gdb/testsuite/gdb.server/ext-attach.exp
74fb1987704dffa9dc1f07d459b4c6b3 gdb/testsuite/gdb.server/file-transfer.exp
62b3f1ad3467aec800ad8d0cd591b7cb gdb/testsuite/gdb.server/no-thread-db.c
7fac70ba3780dc214df0339d09b45dac gdb/testsuite/gdb.server/server-kill.exp
1f6b545be0b6822eca215d0b5f1edfc2 gdb/exc_request.defs
a913bea638e4167eedc456b4d9f2bdee gdb/gdb-dlfcn.c
12e75696b0c454d9a143c9aeacd65aed gdb/remote-sim.c
-382e9a9b64a2eccd75c06020b2bd462f gdb/event-top.h
+3718424f87353bc7baccac76d4c1cab5 gdb/event-top.h
4ac56e83f9218989f267a57c3f1db63d gdb/m68k-tdep.h
b6f83c198a1c5e4fe35a072c1fcb1d06 gdb/hppanbsd-nat.c
647df70b15a4dc2ed19b7cf70314ef93 gdb/p-exp.c
bd299770877877bd1870630aaf307c0b gdb/python/lib/gdb/prompt.py
9e607e37c56ea883c7cad27423ed4921 gdb/python/lib/gdb/FrameDecorator.py
a8d5a3aa0f47a31802a9c13ee74332f8 gdb/python/lib/gdb/frames.py
-05bcc0c61846a4c66a5e188d2274bcb6 gdb/python/lib/gdb/printing.py
+8c82d5c91112c09bb51f6ead3744ee83 gdb/python/lib/gdb/printing.py
ba173e9549a2ce347ed385bbc67455d0 gdb/python/lib/gdb/xmethod.py
a2d765a4bc30142b0f28d896c86e968f gdb/python/lib/gdb/types.py
-83a8a83297fedcabdcd033de43b521ee gdb/python/lib/gdb/__init__.py
-acd34dd05c505d88189451ac8f05c055 gdb/python/lib/gdb/command/bound_registers.py
+4ab79f3d3cfabe265afd64c0fc579b8c gdb/python/lib/gdb/printer/bound_registers.py
+6a562507d99b6de8b487de3b6c87740c gdb/python/lib/gdb/printer/__init__.py
+1b9e909b4e331b4c8e28cf0adb01c1a5 gdb/python/lib/gdb/__init__.py
1ba79b5528a4c9f1ba5aed1cf4355e48 gdb/python/lib/gdb/command/prompt.py
49324b50da3d22e820c0b68fc2c46ea7 gdb/python/lib/gdb/command/explore.py
f4069242c2b42d5d57c74d525d34ca20 gdb/python/lib/gdb/command/pretty_printers.py
f96aaf68fea792b3f47a78d3c429d67e gdb/python/lib/gdb/command/frame_filters.py
5a04851e2253842d269def1d66d49bbf gdb/python/lib/gdb/command/type_printers.py
d185ce6905dd968e07c9271f420f62dc gdb/python/lib/gdb/command/__init__.py
-0c2a8997f72cf16f447b64125deabacc gdb/python/lib/gdb/command/xmethods.py
+4d5d9e6ac66e6432c76ba040dacfe4a1 gdb/python/lib/gdb/command/xmethods.py
f6630b6c7f8022030948c09f8d52629a gdb/python/lib/gdb/FrameIterator.py
86eda4157d3220f4dad14b0d3af55649 gdb/python/py-event.c
81d757d566b7d38b11fa7399667ab52c gdb/python/py-gdb-readline.c
99577bb6511c4fd9dece4bec79521789 gdb/python/py-utils.c
a5db5d019fadc01e73754ed0f046e299 gdb/python/py-exitedevent.c
b4515db38110fb5d8d74a8ad32e7d714 gdb/python/py-stopevent.c
-73464c5a84d536010fddc9ac8101c259 gdb/python/py-framefilter.c
+03db4d43bbe4b8e8605dfdeef267308a gdb/python/py-framefilter.c
96a70fa36e8d872384482ac518e18720 gdb/python/py-evtregistry.c
3e9ee0bd644a7a5ac70d21b749eb9a7a gdb/python/py-symbol.c
64523ac865e09fa70f1a97b5608af72a gdb/python/python.c
ddf1ed323fe1aa9d23d7a04a9ce24ae8 gdb/progspace.h
7659834858e08f7cbfd9be267f1825ec gdb/bsd-kvm.c
7512311bbfdf6ac079ef6441e826ce94 gdb/gdb_usleep.c
-d3a9698c5b83e34907e5b7253f14ae37 gdb/configure
+c0c5c0a4e9145e14c84dde871297c614 gdb/configure
62917ac422d8dbc4a9a53eafc95db9e6 gdb/machoread.c
bbf613cf4c07ef33996aecc60a1ccbec gdb/ppcnbsd-tdep.c
836ac74787cd55955801935e7f6fb1c6 gdb/cris-linux-tdep.c
02d03769e292a3797195cc1657e4ea05 gdb/bfin-tdep.h
7fc9eeb3966e4ef503259353acdd7232 gdb/target-descriptions.h
-6f3205a60744ac873c9b967a824e04c5 gdb/acinclude.m4
+f6bed958901141f12a834ec2bda39c99 gdb/acinclude.m4
f9a31fb29520e5901a4d688e73d9d50b gdb/cp-namespace.c
95314841b335494c9d7663d7fa82340e gdb/auxv.h
278a38a841bdb7d807e0f069e90a9c4d gdb/dummy-frame.h
22b42df9eff92e5390d0e546a3ceedde gdb/syscalls/amd64-linux.xml
a9ac5e415baa9cb6254f8e74d7e45fdf gdb/syscalls/mips-n64-linux.xml
d7719c910b17ff58ef8bc5c8dcc69b78 gdb/syscalls/ppc-linux.xml
-c571d8459a244ef440bb63d938f8e25d gdb/target.h
+0b3a20b6d092e2ad5e6bb6dc1b122019 gdb/target.h
21da014c7233e55d608fd91d15a1d17c gdb/eval.c
317972300365b3042885fa3aa98a6e64 gdb/environ.c
199f0df31f516222f0a63d350ac76403 gdb/p-valprint.c
0130a3cbd233b0191e3b25ebcf333904 gdb/remote-fileio.h
5db2dbedeed407edce20576b48e26488 gdb/linux-nat.h
e1e4c8e1e81ad62199a081fac568d32d gdb/darwin-nat-info.c
-4b2f97d7068a394bf7577bc307bc4392 gdb/linux-tdep.c
+98c80398760caae07a468993a0fa2983 gdb/linux-tdep.c
ce9bb42fb64ba80238b385c0810eba31 gdb/bfd-target.c
5cdfd9b2d6910e9e95d30a8a3de69d8d gdb/symfile.h
-a1473c53fe4e600da841f29fdddacc6d gdb/main.c
+7c25a9ad03d7395fd48cd7dd858933b2 gdb/main.c
a6ebe1725ec66dd61a02bbe5eb013291 gdb/m68hc11-tdep.c
c00553c89cc50cdcd2df196f98a07cec gdb/spu-linux-nat.c
5d39ccb21c9e46518c3a6afafc3e53bf gdb/ravenscar-thread.c
db6d0cf6e201962e53d12580aca24f54 gdb/gdbserver/server.c
318b8d28d4f44483f0b6d89300233711 gdb/gdbserver/win32-low.h
4d0706717672491c95a4f3842c799f6a gdb/gdbserver/dll.c
-07a41af710f4226f7b81f9ebb42d85a1 gdb/gdbserver/win32-i386-low.c
+5cef6883b569adf6bb5996eeb3525abe gdb/gdbserver/win32-i386-low.c
dc372aa6711da296c9f7808249115539 gdb/gdbserver/configure
73cb29ba1b0b5e9c45c56de162e31c49 gdb/gdbserver/linux-arm-low.c
2e7940b5359daf39145a72138e035140 gdb/gdbserver/acinclude.m4
a97c70e6df58989849dc316abd3ecb7c gdb/gdbserver/thread-db.c
865ed7eede837e6f066786c1f24b50fb gdb/gdbserver/xtensa-xtregs.c
c61ca5fd9fea3ca50ddbca0a431bcd7a gdb/gdbserver/mem-break.h
-a47ef6828b9e82139e9689b741c7372c gdb/gdbserver/ChangeLog
+bdcd09187bf01b89fe7a453757db534d gdb/gdbserver/ChangeLog
8c470ed95089593a86c854f04ce683ec gdb/gdbserver/inferiors.h
26fcc13527ca353ccdd331cbb81856c2 gdb/gdbserver/proc-service.list
6f867eac14f8004f51d32841ec442c04 gdb/gdbserver/linux-sh-low.c
6bb35778971ee3def383ef0b604c13f7 gdb/features/aarch64.xml
30e6b5d2b5054f618bf75227a86cb9ed gdb/features/s390-linux64v1.c
4a76f2ccac2311e86865601c8c817fe0 gdb/features/s390x-te-linux64.c
-ee3b58ee6c44ed4c8f9b8571ecc4d2db gdb/features/aarch64-core.xml
+d32f1eb65e845bd8e7b78b62d3564193 gdb/features/aarch64-core.xml
779b74c6dc6250a855a115e6172360af gdb/features/s390-linux32v2.c
f72ac861a7851a1d2d1b61073f7e67f3 gdb/features/library-list-svr4.dtd
3641efbb2e14dedc54e98cc00be7aaae gdb/features/nios2-linux.xml
-1b1022ab756bfb899af4592ee25f7932 gdb/features/aarch64.c
+b490c2b335ff7d3f812b1dbfe7b6933b gdb/features/aarch64.c
0dff619d2f70e8717e65c1c1620ed9c0 gdb/features/i386/32bit-sse.xml
51852c22ffbd66ec043a388d7a40ae4c gdb/features/i386/amd64-mpx.xml
b95a64b6f654d37b6b8f93b449d05f09 gdb/features/i386/32bit-mpx.xml
43f0cdbfe2c8ba0a1abd5c5f132053ad gdb/f-lang.c
78f0372421a7603e3d694b9d38b5cb5c gdb/obsd-tdep.c
b89249df7f1a73b126ce8a6b7395716b gdb/fbsd-nat.h
-a4bb43103037d98aba786cbd95c3cef3 gdb/config.in
+cacac0f4df490f3d0ffbde61495ced65 gdb/config.in
05d89bbdfd8c3834f5a27f421bc7445a gdb/sparc-linux-nat.c
a05e4d1ad58dacd5fe9e826013fc8779 gdb/solist.h
-a2360cdd4d7f0fe6945503e6f1e11487 gdb/gdbarch.h
+119071e1bf56fc527aab9e560aaee363 gdb/gdbarch.h
e8445e4ad9fe4253595d865e2c771735 gdb/ax-gdb.c
3adae45d9002fedd4935b9c5116da21f gdb/i386gnu-tdep.c
aa8d7d35ee08238b35a97b7947408255 gdb/mips-linux-tdep.h
12cbbb7ce798b9dee6b443c0d89b232e gdb/sparcobsd-tdep.c
ecaf3e9686fdbecec3ed9839ad3924f1 gdb/sparc64-tdep.h
e89051f69c9abf9baf2f9276fff8b109 gdb/macroexp.c
-cdcd38b11bce5e39ce9f9ec67678a67a gdb/ChangeLog
+a8bc8e76f4c78da5fd0a438850857b76 gdb/ChangeLog
4dd23bbb332ff3d6458dac9cec1f0897 gdb/amd64-windows-tdep.c
250394f07727c8aedf91a0df78c6ebbe gdb/lm32-tdep.c
e904668b5ecc32e240f4d7c4c834ab71 gdb/xtensa-tdep.h
603c81655b69051be8f942cb316e0fcb gdb/gdbtypes.h
2efbf8832759acd0be37dc401679c445 gdb/sh-tdep.h
8d24adbb0c5ddc7eb413f11546b4d8c6 gdb/proc-service.list
-8b710860fd9bf18f3e6a83c6576423bc gdb/ctf.c
+181f294ea74e6afe005dcdbf4bb6817f gdb/ctf.c
6fc08d8f674a26d164c67ada1517ca73 gdb/go-lang.c
60ae4bd890b5f723be5188cffd40a40a gdb/p-exp.y
665fc785a8ebd863618507a50da879bc gdb/hppaobsd-tdep.c
5fffd8c47764eda70194c34de6e02f2e gdb/ChangeLog-2003
e4e19c19f20d441737a53e7bde1b13ed gdb/gdbcmd.h
6df7169de25eb5f3718ae01eb55a3718 gdb/inflow.h
-0d8bbb432cb01b0b5237685194c9283b gdb/annotate.c
+bd4b5f00f61edd4e4482fbb170050295 gdb/annotate.c
fa8fe80f8b9e9e585edcd3e7e61f2b7e gdb/m2-exp.y
4fef0ed95e91265d7e68fcbde7025c44 gdb/ser-mingw.c
389442da29269e91316148273a78b180 gdb/p-lang.h
aead3e4d893def855148445926ba98b9 gdb/filesystem.h
840d88e59cb14e367794512bd79ddba4 gdb/inf-ptrace.h
872be449ea0ede048ac193747d131870 gdb/ChangeLog-2002
-06ba470c834a5d65d5c4e21146f50893 gdb/dcache.h
+c7a23adbcd07e4e773741f5625657b3c gdb/dcache.h
a92a9b3dcd8e89a2fdd554ddfeadf335 gdb/cp-valprint.c
076f775ad2d40deda81f7be7da62ae76 gdb/posix-hdep.c
6c8fc08f21b3a4c00db130a32a4707d9 gdb/solib-aix.c
4d217f21b393726b7bd7dc753fd11c24 gdb/common/format.c
390a37bb5c4d1ad8308d67b8e5dd9682 gdb/common/linux-btrace.c
7bef8438920cb5c33987b114af94fba9 gdb/common/i386-cpuid.h
-3847ee7cc1fe2b6e7efd34b9db80fc1a gdb/top.h
+94847a9de0059cd22fcee6453a7b664b gdb/top.h
3a107fccd4ad682a20212c7c47817ab6 gdb/macrotab.h
002c16c6db49f2959085dfcdffc6208b gdb/irix5-nat.c
1d9a3efc3e23c98c914cf1786c619a3a gdb/gdb_buildall.sh
eb324e5cac4b495b316bad72de02ff4f gdb/aarch64-newlib-tdep.c
88d9b000dc78dd272dd3cc6f81e10244 gdb/record.h
0a759c024e819c0f83da92ca6811f251 gdb/osabi.c
-8b3a27f8ed274a633af63e1f262bbc2d gdb/configure.ac
+213327bb1b13beaf9bdfd482e3b8b8f8 gdb/configure.ac
b2907ba4fd2c65dbc51985ce4a5e24d6 gdb/dsrec.c
561ac3fda07a5af8dfd1f7bd67c9d28d gdb/sol2-tdep.h
f6d6d2815b1f1db61db137f98ad964db gdb/extension.c
07f775324cfc6a9bff9ea0a29670eb21 gdb/exceptions.c
-e914b1db0ed467ac531771959d5373df gdb/target.c
+3dd395c9bc8015d43b671ce6208a6024 gdb/target.c
48b4608c3ff4a33460421c35ae101671 gdb/c-lang.c
82242227dc619eb0198929f40fca3806 gdb/core-regset.c
81e39d5e7648bd038bf903ca7d068ced gdb/sparc64-tdep.c
ca71f195163df1b74c1abb5a52c61f76 gdb/ppcnbsd-tdep.h
4ddb2ea4db7bf54117d15bb1a5b238a1 gdb/f-valprint.c
7c1e1746448fcf7a03497c8e9b8e6a65 gdb/ui-out.h
-9e31f7cc3ccb17a3cc9246f2d7aa70fa gdb/NEWS
+97a6c6e9590b06e581af46dc648b9cf2 gdb/NEWS
93226b4618a4a4b22fa82f34ab0b25b1 gdb/frame-base.h
29036ddaeff3da8405f91cf89e8ce14c gdb/rs6000-nat.c
f7b44fa8c7509d95ee0351e20165b25a gdb/m32c-tdep.c
ff9835f628206893b03acc7d68bac310 gdb/windows-nat.h
d736b69e538410d7f046342a77e67024 gdb/go-valprint.c
af86a4ed563c80b9d3103b44a68bca62 gdb/v850-tdep.c
-a15a8eac0e2c9c5c4902e4a84b2c84ce gdb/windows-nat.c
+06dab90d36bdb946fe75f63214596ac4 gdb/windows-nat.c
85d9ff43fb8b6173ac4350a42195b5a8 gdb/ui-out.c
b1485a5b0af05d05f52866dde179d8cf gdb/gdb_obstack.c
87c6f60cab43e339f11f78d6d07accfc gdb/gdbthread.h