Imported Upstream version 7.9.1 upstream/7.9.1
authorVyacheslav Barinov <v.barinov@samsung.com>
Mon, 20 Jul 2015 11:23:10 +0000 (14:23 +0300)
committerHyeongsik Min <hyeongsik.min@samsung.com>
Mon, 11 Jan 2016 05:52:15 +0000 (14:52 +0900)
46 files changed:
bfd/doc/bfdver.texi
bfd/version.h
djunpack.bat
gdb/ChangeLog
gdb/NEWS
gdb/compile/compile-c-support.c
gdb/compile/compile-object-load.c
gdb/compile/compile.c
gdb/doc/ChangeLog
gdb/doc/gcore.1
gdb/doc/gdb.1
gdb/doc/gdb.info
gdb/doc/gdb.info-1
gdb/doc/gdb.info-2
gdb/doc/gdb.info-3
gdb/doc/gdb.info-4
gdb/doc/gdb.info-5
gdb/doc/gdb.info-6
gdb/doc/gdb.info-7
gdb/doc/gdbinit.5
gdb/doc/gdbserver.1
gdb/doc/python.texi
gdb/eval.c
gdb/extension-priv.h
gdb/extension.c
gdb/extension.h
gdb/iq2000-tdep.c
gdb/p-exp.c
gdb/p-exp.y
gdb/po/gdb.pot
gdb/python/lib/gdb/printing.py
gdb/python/lib/gdb/xmethod.py
gdb/python/py-xmethods.c
gdb/python/python-internal.h
gdb/python/python.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.python/py-pp-maint.py
gdb/testsuite/gdb.python/py-xmethods.exp
gdb/testsuite/gdb.python/py-xmethods.py
gdb/testsuite/lib/pascal.exp
gdb/tui/tui-io.c
gdb/valarith.c
gdb/value.c
gdb/value.h
gdb/version.in
md5.sum

index 2494664..8c317e8 100644 (file)
@@ -1,4 +1,4 @@
 @set VERSION 2.25.51
 @set VERSION_PACKAGE (GNU Binutils) 
-@set UPDATED February 2015
+@set UPDATED May 2015
 @set BUGURL @uref{http://www.sourceware.org/bugzilla/}
index bbef926..98c4e30 100644 (file)
@@ -1,4 +1,4 @@
-#define BFD_VERSION_DATE 20150220
+#define BFD_VERSION_DATE 20150513
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING  @bfd_version_package@ @bfd_version_string@
 #define REPORT_BUGS_TO @report_bugs_to@
index d825382..3e9a52e 100644 (file)
@@ -17,8 +17,8 @@ Rem
 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=$package-7.9\r
-if "%GDBVER%"=="$package-7.9" GoTo EnvOk\r
+set GDBVER=$package-7.9.1\r
+if "%GDBVER%"=="$package-7.9.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
index dff7d6b..4fa89a9 100644 (file)
@@ -1,3 +1,74 @@
+2015-05-13  Joel Brobecker  <brobecker@adacore.com>
+
+       * version.in: Set GDB version number to 7.9.1.
+
+2015-05-12  Doug Evans  <dje@google.com>
+
+       PR python/18285
+       * NEWS: Document new gdb.XMethodWorker.get_result_type method.
+       * eval.c (evaluate_subexp_standard) <OP_FUNCALL>: Handle
+       EVAL_AVOID_SIDE_EFFECTS for xmethods.
+       * extension-priv.h (struct extension_language_ops)
+       <get_xmethod_result_type>: New member.
+       * extension.c (get_xmethod_result_type): New function.
+       * extension.h (get_xmethod_result_type): Declare.
+       * python/py-xmethods.c (get_result_type_method_name): New static
+       global.
+       (py_get_result_type_method_name): Ditto.
+       (gdbpy_get_xmethod_result_type): New function.
+       (gdbpy_initialize_xmethods): Initialize py_get_result_type_method_name.
+       * python/python-internal.h (gdbpy_get_xmethod_result_type): Declare.
+       * python/python.c (python_extension_ops): Add
+       gdbpy_get_xmethod_result_type.
+       * python/lib/gdb/xmethod.py (XMethodWorker): Add get_result_type.
+       * valarith.c (value_x_binop): Handle EVAL_AVOID_SIDE_EFFECTS for
+       xmethods.
+       (value_x_unop): Ditto.
+       * value.c (result_type_of_xmethod): New function.
+       * value.h (result_type_of_xmethod): Declare.
+
+2015-05-02  Pierre Muller  <muller@sourceware.org>
+
+       PR pascal/17815
+       p-exp.y (yylex): Reorganize code to return the matched pattern
+       for a field of this.
+
+2015-04-28  Doug Evans  <dje@google.com>
+
+       PR python/18299
+       * python/lib/gdb/printing.py (register_pretty_printer): Handle
+       name or __name__ attributes.  Handle gdb module as first argument.
+
+2015-03-31  Matthias Klose  <doko@ubuntu.com>
+
+       * compile/compile.c (compile_to_object): Allow triplets with or
+       without vendor set.
+
+2015-03-21  Eli Zaretskii  <eliz@gnu.org>
+
+       * tui/tui-io.c (tui_expand_tabs): Reinitialize the column counter
+       before the second loop, to avoid undefined behavior.  Reported by
+       Anton Blanchard <anton@samba.org>.
+
+2015-02-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       PR build/18033
+       * compile/compile-c-support.c (c_compute_program): Change // comment.
+       * compile/compile-object-load.c (setup_sections): Change // comment.
+
+2015-02-26  Joel Brobecker  <brobecker@adacore.com>
+
+       PR build/18033:
+       * iq2000-tdep.c (iq2000_frame_cache): Delete C++-style comment.
+
+2015-02-20  Joel Brobecker  <brobecker@adacore.com>
+
+       * version.in: Set GDB version number to 7.9.0.DATE-cvs.
+
+2015-02-20  Joel Brobecker  <brobecker@adacore.com>
+
+       GDB 7.9 released.
+
 2015-02-20  David Taylor  <dtaylor@emc.com>
 
        * common/ax.def (setv): Fix consumed entry in setv DEFOP.
index 9848dbb..446f13d 100644 (file)
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -1,6 +1,12 @@
                What has changed in GDB?
             (Organized release by release)
 
+*** Changes in GDB 7.9.1
+
+* Python Scripting
+
+  ** Xmethods can now specify a result type.
+
 *** Changes in GDB 7.9
 
 * GDB now supports hardware watchpoints on x86 GNU Hurd.
index 8f1f45d..1711cda 100644 (file)
@@ -351,7 +351,7 @@ c_compute_program (struct compile_instance *inst,
                        " __gdb_intptr;\n",
                        buf);
 
-      // Iterate all log2 sizes in bytes supported by c_get_mode_for_size.
+      /* Iterate all log2 sizes in bytes supported by c_get_mode_for_size.  */
       for (i = 0; i < 4; ++i)
        {
          const char *mode = c_get_mode_for_size (1 << i);
index 5903f18..e187970 100644 (file)
@@ -67,7 +67,7 @@ setup_sections (bfd *abfd, asection *sect, void *data_voidp)
       if ((bfd_get_section_flags (abfd, sect) & SEC_ALLOC) == 0)
        return;
 
-      // Make the memory always readable.
+      /* Make the memory always readable.  */
       prot = GDB_MMAP_PROT_READ;
       if ((bfd_get_section_flags (abfd, sect) & SEC_READONLY) == 0)
        prot |= GDB_MMAP_PROT_WRITE;
index c204a13..1806b90 100644 (file)
@@ -483,7 +483,9 @@ compile_to_object (struct command_line *cmd, char *cmd_string,
 
   os_rx = osabi_triplet_regexp (gdbarch_osabi (gdbarch));
   arch_rx = gdbarch_gnu_triplet_regexp (gdbarch);
-  triplet_rx = concat (arch_rx, "-[^-]*-", os_rx, (char *) NULL);
+
+  /* Allow triplets with or without vendor set.  */
+  triplet_rx = concat (arch_rx, "(-[^-]*)?-", os_rx, (char *) NULL);
   make_cleanup (xfree, triplet_rx);
 
   /* Set compiler command-line arguments.  */
index 6c4d5cf..bfbda9e 100644 (file)
@@ -1,3 +1,9 @@
+2015-05-12  Doug Evans  <dje@google.com>
+
+       * python.texi (Xmethod API) <gdb.XMethodWorker.get_result_type>:
+       Document.
+       (Writing an Xmethod): Add get_result_type to example.
+
 2015-02-20  David Taylor  <dtaylor@emc.com>
 
        * agentexpr.texi (Bytecode Descriptions): Fix summary line for setv.
index 0243f9e..306f55b 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GCORE 1"
-.TH GCORE 1 "2015-02-20" "gdb-7.9" "GNU Development Tools"
+.TH GCORE 1 "2015-05-13" "gdb-7.9.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
index f3513de..df073e0 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDB 1"
-.TH GDB 1 "2015-02-20" "gdb-7.9" "GNU Development Tools"
+.TH GDB 1 "2015-05-13" "gdb-7.9.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
index 2b69583..a420aae 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -38,700 +38,700 @@ developing GNU and promoting software freedom."
 
 \1f
 Indirect:
-gdb.info-1: 1700
-gdb.info-2: 301885
-gdb.info-3: 602526
-gdb.info-4: 903816
-gdb.info-5: 1204136
-gdb.info-6: 1511706
-gdb.info-7: 1821081
+gdb.info-1: 1702
+gdb.info-2: 301893
+gdb.info-3: 602536
+gdb.info-4: 903828
+gdb.info-5: 1204693
+gdb.info-6: 1512323
+gdb.info-7: 1821700
 \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\7f69815
-Ref: set auto-connect-native-target\7f71969
-Node: Arguments\7f76365
-Node: Environment\7f77634
-Node: Working Directory\7f81368
-Node: Input/Output\7f82520
-Node: Attach\7f84491
-Node: Kill Process\7f86957
-Node: Inferiors and Programs\7f87938
-Node: Threads\7f95181
-Ref: set libthread-db-search-path\7f102590
-Node: Forks\7f104644
-Node: Checkpoint/Restart\7f110958
-Ref: Checkpoint/Restart-Footnote-1\7f115486
-Node: Stopping\7f115521
-Node: Breakpoints\7f116784
-Node: Set Breaks\7f120323
-Node: Set Watchpoints\7f138744
-Node: Set Catchpoints\7f148148
-Node: Delete Breaks\7f159022
-Node: Disabling\7f160962
-Node: Conditions\7f164347
-Node: Break Commands\7f169994
-Node: Dynamic Printf\7f173215
-Node: Save Breakpoints\7f177474
-Node: Static Probe Points\7f178649
-Node: Error in Breakpoints\7f181336
-Node: Breakpoint-related Warnings\7f182072
-Node: Continuing and Stepping\7f184399
-Ref: range stepping\7f193862
-Node: Skipping Over Functions and Files\7f194942
-Node: Signals\7f198514
-Ref: stepping and signal handlers\7f202948
-Ref: stepping into signal handlers\7f203744
-Ref: extra signal information\7f204977
-Node: Thread Stops\7f206481
-Node: All-Stop Mode\7f207580
-Node: Non-Stop Mode\7f211480
-Node: Background Execution\7f214893
-Node: Thread-Specific Breakpoints\7f217109
-Node: Interrupted System Calls\7f219127
-Node: Observer Mode\7f220641
-Node: Reverse Execution\7f224077
-Ref: Reverse Execution-Footnote-1\7f228702
-Ref: Reverse Execution-Footnote-2\7f229329
-Node: Process Record and Replay\7f229379
-Node: Stack\7f243705
-Node: Frames\7f245253
-Node: Backtrace\7f248020
-Ref: backtrace-command\7f248371
-Ref: Backtrace-Footnote-1\7f254141
-Node: Frame Filter Management\7f254329
-Ref: disable frame-filter all\7f254873
-Node: Selection\7f259181
-Node: Frame Info\7f262053
-Node: Source\7f264040
-Node: List\7f265106
-Node: Specify Location\7f267808
-Node: Edit\7f272412
-Ref: Edit-Footnote-1\7f273888
-Node: Search\7f274123
-Node: Source Path\7f274931
-Ref: set substitute-path\7f281297
-Node: Machine Code\7f283517
-Node: Data\7f290418
-Node: Expressions\7f298082
-Node: Ambiguous Expressions\7f301885
-Node: Variables\7f305115
-Node: Arrays\7f311181
-Node: Output Formats\7f313712
-Ref: Output Formats-Footnote-1\7f317085
-Node: Memory\7f317242
-Node: Auto Display\7f323639
-Node: Print Settings\7f328181
-Ref: set print entry-values\7f336343
-Node: Pretty Printing\7f347657
-Node: Pretty-Printer Introduction\7f348171
-Node: Pretty-Printer Example\7f349926
-Node: Pretty-Printer Commands\7f350704
-Node: Value History\7f353128
-Node: Convenience Vars\7f355550
-Node: Convenience Funs\7f362032
-Node: Registers\7f367161
-Ref: standard registers\7f368143
-Ref: Registers-Footnote-1\7f373094
-Node: Floating Point Hardware\7f373489
-Node: Vector Unit\7f374021
-Node: OS Information\7f374408
-Ref: linux info os infotypes\7f376432
-Node: Memory Region Attributes\7f380639
-Node: Dump/Restore Files\7f385303
-Node: Core File Generation\7f387608
-Node: Character Sets\7f388832
-Node: Caching Target Data\7f395197
-Ref: Caching Target Data-Footnote-1\7f397925
-Node: Searching Memory\7f398163
-Node: Optimized Code\7f401041
-Node: Inline Functions\7f402718
-Node: Tail Call Frames\7f405345
-Ref: set debug entry-values\7f407485
-Node: Macros\7f411559
-Ref: Macros-Footnote-1\7f419135
-Node: Tracepoints\7f419288
-Node: Set Tracepoints\7f421350
-Node: Create and Delete Tracepoints\7f424288
-Node: Enable and Disable Tracepoints\7f430689
-Node: Tracepoint Passcounts\7f431929
-Node: Tracepoint Conditions\7f433340
-Node: Trace State Variables\7f435034
-Node: Tracepoint Actions\7f437229
-Node: Listing Tracepoints\7f443532
-Node: Listing Static Tracepoint Markers\7f445234
-Node: Starting and Stopping Trace Experiments\7f447082
-Ref: disconnected tracing\7f448827
-Node: Tracepoint Restrictions\7f453247
-Node: Analyze Collected Data\7f457016
-Node: tfind\7f458322
-Node: tdump\7f462744
-Node: save tracepoints\7f465259
-Node: Tracepoint Variables\7f465755
-Node: Trace Files\7f466883
-Node: Overlays\7f469259
-Node: How Overlays Work\7f469979
-Ref: A code overlay\7f472534
-Node: Overlay Commands\7f475947
-Node: Automatic Overlay Debugging\7f480129
-Node: Overlay Sample Program\7f482268
-Node: Languages\7f484005
-Node: Setting\7f485168
-Node: Filenames\7f486869
-Node: Manually\7f487680
-Node: Automatically\7f488889
-Node: Show\7f489950
-Ref: show language\7f490238
-Node: Checks\7f491272
-Node: Type Checking\7f492277
-Node: Range Checking\7f494106
-Node: Supported Languages\7f496507
-Node: C\7f497807
-Node: C Operators\7f498771
-Node: C Constants\7f503110
-Node: C Plus Plus Expressions\7f505989
-Node: C Defaults\7f509332
-Node: C Checks\7f510000
-Node: Debugging C\7f510560
-Node: Debugging C Plus Plus\7f511044
-Node: Decimal Floating Point\7f514637
-Node: D\7f515907
-Node: Go\7f516165
-Node: Objective-C\7f517259
-Node: Method Names in Commands\7f517722
-Node: The Print Command with Objective-C\7f519413
-Node: OpenCL C\7f520064
-Node: OpenCL C Datatypes\7f520339
-Node: OpenCL C Expressions\7f520714
-Node: OpenCL C Operators\7f521071
-Node: Fortran\7f521303
-Node: Fortran Operators\7f522024
-Node: Fortran Defaults\7f522880
-Node: Special Fortran Commands\7f523265
-Node: Pascal\7f523771
-Node: Modula-2\7f524286
-Node: M2 Operators\7f525261
-Node: Built-In Func/Proc\7f528259
-Node: M2 Constants\7f531173
-Node: M2 Types\7f532774
-Node: M2 Defaults\7f535992
-Node: Deviations\7f536593
-Node: M2 Checks\7f537694
-Node: M2 Scope\7f538511
-Node: GDB/M2\7f539535
-Node: Ada\7f540448
-Node: Ada Mode Intro\7f541558
-Node: Omissions from Ada\7f543469
-Node: Additions to Ada\7f547822
-Node: Stopping Before Main Program\7f551749
-Node: Ada Exceptions\7f552283
-Node: Ada Tasks\7f553480
-Node: Ada Tasks and Core Files\7f559902
-Node: Ravenscar Profile\7f560747
-Node: Ada Glitches\7f561816
-Node: Unsupported Languages\7f565825
-Node: Symbols\7f566515
-Node: Altering\7f585198
-Node: Assignment\7f586236
-Node: Jumping\7f589342
-Node: Signaling\7f591504
-Node: Returning\7f594433
-Node: Calling\7f597784
-Node: Patching\7f602526
-Node: Compiling and Injecting Code\7f603640
-Node: GDB Files\7f612567
-Node: Files\7f613287
-Ref: Shared Libraries\7f626361
-Ref: Files-Footnote-1\7f637991
-Node: Separate Debug Files\7f638166
-Ref: debug-file-directory\7f641270
-Node: MiniDebugInfo\7f649884
-Node: Index Files\7f652335
-Node: Symbol Errors\7f654397
-Node: Data Files\7f658013
-Node: Targets\7f658969
-Node: Active Targets\7f660449
-Node: Target Commands\7f661523
-Ref: load\7f665905
-Node: Byte Order\7f666886
-Node: Remote Debugging\7f667860
-Node: Connecting\7f669122
-Node: File Transfer\7f674057
-Node: Server\7f674996
-Ref: Other Command-Line Arguments for gdbserver\7f682587
-Ref: Monitor Commands for gdbserver\7f685701
-Ref: Server-Footnote-1\7f690876
-Node: Remote Configuration\7f690996
-Ref: set remotebreak\7f692022
-Ref: set remote hardware-watchpoint-limit\7f693485
-Ref: set remote hardware-breakpoint-limit\7f693485
-Ref: set remote hardware-watchpoint-length-limit\7f693711
-Ref: set remote exec-file\7f694126
-Node: Remote Stub\7f703615
-Node: Stub Contents\7f706510
-Node: Bootstrapping\7f708617
-Node: Debug Session\7f712432
-Node: Configurations\7f714473
-Node: Native\7f715242
-Node: HP-UX\7f715811
-Node: BSD libkvm Interface\7f716100
-Node: SVR4 Process Information\7f717171
-Node: DJGPP Native\7f720946
-Node: Cygwin Native\7f727505
-Node: Non-debug DLL Symbols\7f731312
-Node: Hurd Native\7f735465
-Node: Darwin\7f740721
-Node: Embedded OS\7f741982
-Node: Embedded Processors\7f742393
-Node: ARM\7f743526
-Node: M32R/D\7f747662
-Node: M68K\7f749364
-Node: MicroBlaze\7f749656
-Node: MIPS Embedded\7f751105
-Node: PowerPC Embedded\7f756042
-Node: PA\7f759822
-Node: Sparclet\7f760105
-Node: Sparclet File\7f761574
-Node: Sparclet Connection\7f762454
-Node: Sparclet Download\7f762932
-Node: Sparclet Execution\7f763980
-Node: Sparclite\7f764571
-Node: Z8000\7f764943
-Node: AVR\7f766325
-Node: CRIS\7f766688
-Node: Super-H\7f767666
-Node: Architectures\7f768725
-Node: AArch64\7f769162
-Node: i386\7f769568
-Ref: i386-Footnote-1\7f771800
-Node: Alpha\7f771886
-Node: MIPS\7f772019
-Node: HPPA\7f775913
-Node: SPU\7f776431
-Node: PowerPC\7f778617
-Node: Nios II\7f779352
-Node: Controlling GDB\7f779741
-Node: Prompt\7f780637
-Node: Editing\7f782355
-Node: Command History\7f783298
-Node: Screen Size\7f786829
-Node: Numbers\7f788763
-Node: ABI\7f790742
-Node: Auto-loading\7f793915
-Ref: set auto-load off\7f795290
-Ref: show auto-load\7f795926
-Ref: info auto-load\7f796705
-Node: Init File in the Current Directory\7f799762
-Ref: set auto-load local-gdbinit\7f800337
-Ref: show auto-load local-gdbinit\7f800519
-Ref: info auto-load local-gdbinit\7f800683
-Node: libthread_db.so.1 file\7f800831
-Ref: set auto-load libthread-db\7f801770
-Ref: show auto-load libthread-db\7f801901
-Ref: info auto-load libthread-db\7f802038
-Node: Auto-loading safe path\7f802222
-Ref: set auto-load safe-path\7f803528
-Ref: show auto-load safe-path\7f804267
-Ref: add-auto-load-safe-path\7f804390
-Node: Auto-loading verbose mode\7f807292
-Ref: set debug auto-load\7f808455
-Ref: show debug auto-load\7f808556
-Node: Messages/Warnings\7f808678
-Ref: confirmation requests\7f810112
-Node: Debugging Output\7f811316
-Node: Other Misc Settings\7f820010
-Node: Extending GDB\7f821034
-Node: Sequences\7f822887
-Node: Define\7f823548
-Node: Hooks\7f827359
-Node: Command Files\7f829725
-Node: Output\7f834798
-Node: Auto-loading sequences\7f839762
-Ref: set auto-load gdb-scripts\7f840257
-Ref: show auto-load gdb-scripts\7f840381
-Ref: info auto-load gdb-scripts\7f840511
-Node: Python\7f840742
-Node: Python Commands\7f841915
-Node: Python API\7f844243
-Node: Basic Python\7f846726
-Ref: prompt_hook\7f855388
-Node: Exception Handling\7f855986
-Node: Values From Inferior\7f858482
-Node: Types In Python\7f871391
-Node: Pretty Printing API\7f880668
-Node: Selecting Pretty-Printers\7f884564
-Node: Writing a Pretty-Printer\7f886897
-Node: Type Printing API\7f892219
-Node: Frame Filter API\7f894835
-Node: Frame Decorator API\7f903816
-Ref: frame_args\7f907400
-Node: Writing a Frame Filter\7f910730
-Node: Xmethods In Python\7f922196
-Node: Xmethod API\7f925086
-Node: Writing an Xmethod\7f928605
-Node: Inferiors In Python\7f934190
-Node: Events In Python\7f937070
-Node: Threads In Python\7f944150
-Node: Commands In Python\7f946590
-Node: Parameters In Python\7f956000
-Node: Functions In Python\7f961460
-Node: Progspaces In Python\7f963677
-Node: Objfiles In Python\7f967178
-Node: Frames In Python\7f972572
-Node: Blocks In Python\7f979127
-Node: Symbols In Python\7f983489
-Node: Symbol Tables In Python\7f990716
-Node: Line Tables In Python\7f993939
-Node: Breakpoints In Python\7f996776
-Node: Finish Breakpoints in Python\7f1004765
-Node: Lazy Strings In Python\7f1006871
-Node: Architectures In Python\7f1009105
-Node: Python Auto-loading\7f1011294
-Ref: set auto-load python-scripts\7f1011923
-Ref: show auto-load python-scripts\7f1012023
-Ref: info auto-load python-scripts\7f1012129
-Node: Python modules\7f1013154
-Node: gdb.printing\7f1013540
-Node: gdb.types\7f1014967
-Node: gdb.prompt\7f1017979
-Node: Guile\7f1019628
-Node: Guile Introduction\7f1020287
-Node: Guile Commands\7f1021158
-Node: Guile API\7f1023012
-Node: Basic Guile\7f1025009
-Node: Guile Configuration\7f1030691
-Node: GDB Scheme Data Types\7f1031667
-Node: Guile Exception Handling\7f1033499
-Node: Values From Inferior In Guile\7f1037533
-Node: Arithmetic In Guile\7f1053068
-Node: Types In Guile\7f1054699
-Ref: Fields of a type in Guile\7f1062648
-Node: Guile Pretty Printing API\7f1064044
-Node: Selecting Guile Pretty-Printers\7f1069646
-Node: Writing a Guile Pretty-Printer\7f1072022
-Node: Commands In Guile\7f1077207
-Node: Parameters In Guile\7f1087987
-Ref: Parameters In Guile-Footnote-1\7f1094868
-Node: Progspaces In Guile\7f1094984
-Node: Objfiles In Guile\7f1097572
-Node: Frames In Guile\7f1099644
-Node: Blocks In Guile\7f1106074
-Node: Symbols In Guile\7f1110882
-Node: Symbol Tables In Guile\7f1118216
-Node: Breakpoints In Guile\7f1121179
-Node: Lazy Strings In Guile\7f1131410
-Node: Architectures In Guile\7f1133704
-Node: Disassembly In Guile\7f1138011
-Node: I/O Ports in Guile\7f1141213
-Node: Memory Ports in Guile\7f1141769
-Node: Iterators In Guile\7f1144941
-Node: Guile Auto-loading\7f1149230
-Ref: set auto-load guile-scripts\7f1149853
-Ref: show auto-load guile-scripts\7f1149951
-Ref: info auto-load guile-scripts\7f1150055
-Node: Guile Modules\7f1151014
-Node: Guile Printing Module\7f1151336
-Node: Guile Types Module\7f1152155
-Node: Auto-loading extensions\7f1153448
-Node: objfile-gdbdotext file\7f1154646
-Ref: set auto-load scripts-directory\7f1156082
-Ref: with-auto-load-dir\7f1156458
-Ref: show auto-load scripts-directory\7f1157276
-Ref: add-auto-load-scripts-directory\7f1157356
-Node: dotdebug_gdb_scripts section\7f1157832
-Node: Which flavor to choose?\7f1159678
-Node: Multiple Extension Languages\7f1161499
-Node: Aliases\7f1162563
-Node: Interpreters\7f1165428
-Node: TUI\7f1167526
-Node: TUI Overview\7f1168470
-Node: TUI Keys\7f1170903
-Node: TUI Single Key Mode\7f1173207
-Node: TUI Commands\7f1174082
-Node: TUI Configuration\7f1176741
-Node: Emacs\7f1178047
-Node: GDB/MI\7f1183484
-Node: GDB/MI General Design\7f1185458
-Node: Context management\7f1187978
-Node: Asynchronous and non-stop modes\7f1191806
-Node: Thread groups\7f1194780
-Node: GDB/MI Command Syntax\7f1197058
-Node: GDB/MI Input Syntax\7f1197301
-Node: GDB/MI Output Syntax\7f1198851
-Node: GDB/MI Compatibility with CLI\7f1204136
-Node: GDB/MI Development and Front Ends\7f1204873
-Node: GDB/MI Output Records\7f1206527
-Node: GDB/MI Result Records\7f1206933
-Node: GDB/MI Stream Records\7f1208283
-Node: GDB/MI Async Records\7f1209548
-Node: GDB/MI Breakpoint Information\7f1219173
-Node: GDB/MI Frame Information\7f1223124
-Node: GDB/MI Thread Information\7f1224210
-Node: GDB/MI Ada Exception Information\7f1225190
-Node: GDB/MI Simple Examples\7f1225613
-Node: GDB/MI Command Description Format\7f1227821
-Node: GDB/MI Breakpoint Commands\7f1228701
-Node: GDB/MI Catchpoint Commands\7f1248547
-Node: Shared Library GDB/MI Catchpoint Commands\7f1248915
-Node: Ada Exception GDB/MI Catchpoint Commands\7f1250573
-Node: GDB/MI Program Context\7f1252977
-Node: GDB/MI Thread Commands\7f1257245
-Node: GDB/MI Ada Tasking Commands\7f1261201
-Node: GDB/MI Program Execution\7f1263454
-Node: GDB/MI Stack Manipulation\7f1275488
-Ref: -stack-list-arguments\7f1277387
-Ref: -stack-list-frames\7f1281092
-Ref: -stack-list-locals\7f1284955
-Ref: -stack-list-variables\7f1286445
-Node: GDB/MI Variable Objects\7f1287979
-Ref: -var-set-format\7f1297937
-Ref: -var-list-children\7f1299055
-Ref: -var-update\7f1307847
-Ref: -var-set-frozen\7f1310845
-Ref: -var-set-update-range\7f1311642
-Ref: -var-set-visualizer\7f1312171
-Node: GDB/MI Data Manipulation\7f1313661
-Node: GDB/MI Tracepoint Commands\7f1333208
-Node: GDB/MI Symbol Query\7f1344793
-Node: GDB/MI File Commands\7f1345482
-Node: GDB/MI Target Manipulation\7f1348777
-Node: GDB/MI File Transfer Commands\7f1354992
-Node: GDB/MI Ada Exceptions Commands\7f1356315
-Node: GDB/MI Support Commands\7f1357668
-Node: GDB/MI Miscellaneous Commands\7f1362241
-Ref: -interpreter-exec\7f1372467
-Node: Annotations\7f1374807
-Node: Annotations Overview\7f1375726
-Node: Server Prefix\7f1378189
-Node: Prompting\7f1378923
-Node: Errors\7f1380440
-Node: Invalidation\7f1381336
-Node: Annotations for Running\7f1381815
-Node: Source Annotations\7f1383349
-Node: JIT Interface\7f1384278
-Node: Declarations\7f1386077
-Node: Registering Code\7f1387464
-Node: Unregistering Code\7f1388436
-Node: Custom Debug Info\7f1389063
-Node: Using JIT Debug Info Readers\7f1390359
-Node: Writing JIT Debug Info Readers\7f1391371
-Node: In-Process Agent\7f1393566
-Ref: Control Agent\7f1395509
-Node: In-Process Agent Protocol\7f1396376
-Node: IPA Protocol Objects\7f1397167
-Ref: agent expression object\7f1398165
-Ref: tracepoint action object\7f1398370
-Ref: tracepoint object\7f1398450
-Node: IPA Protocol Commands\7f1401026
-Node: GDB Bugs\7f1402496
-Node: Bug Criteria\7f1403228
-Node: Bug Reporting\7f1404105
-Node: Command Line Editing\7f1411934
-Node: Introduction and Notation\7f1412586
-Node: Readline Interaction\7f1414207
-Node: Readline Bare Essentials\7f1415396
-Node: Readline Movement Commands\7f1417177
-Node: Readline Killing Commands\7f1418135
-Node: Readline Arguments\7f1420051
-Node: Searching\7f1421093
-Node: Readline Init File\7f1423243
-Node: Readline Init File Syntax\7f1424394
-Node: Conditional Init Constructs\7f1439493
-Node: Sample Init File\7f1442016
-Node: Bindable Readline Commands\7f1445130
-Node: Commands For Moving\7f1446182
-Node: Commands For History\7f1447040
-Node: Commands For Text\7f1450435
-Node: Commands For Killing\7f1453158
-Node: Numeric Arguments\7f1455298
-Node: Commands For Completion\7f1456434
-Node: Keyboard Macros\7f1458400
-Node: Miscellaneous Commands\7f1458968
-Node: Readline vi Mode\7f1462816
-Node: Using History Interactively\7f1463726
-Node: History Interaction\7f1464241
-Node: Event Designators\7f1465663
-Node: Word Designators\7f1466800
-Node: Modifiers\7f1468435
-Node: In Memoriam\7f1469656
-Node: Formatting Documentation\7f1470539
-Ref: Formatting Documentation-Footnote-1\7f1473851
-Node: Installing GDB\7f1473915
-Node: Requirements\7f1474487
-Ref: Expat\7f1475056
-Node: Running Configure\7f1477623
-Node: Separate Objdir\7f1481162
-Node: Config Names\7f1484045
-Node: Configure Options\7f1485490
-Node: System-wide configuration\7f1487861
-Node: System-wide Configuration Scripts\7f1489821
-Node: Maintenance Commands\7f1491005
-Ref: maint info breakpoints\7f1492660
-Node: Remote Protocol\7f1511706
-Node: Overview\7f1512360
-Ref: Binary Data\7f1514905
-Node: Packets\7f1517430
-Ref: thread-id syntax\7f1518330
-Ref: extended mode\7f1519775
-Ref: ? packet\7f1520033
-Ref: bc\7f1521499
-Ref: bs\7f1521709
-Ref: read registers packet\7f1523326
-Ref: cycle step packet\7f1525262
-Ref: write register packet\7f1527863
-Ref: step with signal packet\7f1528842
-Ref: vCont packet\7f1530318
-Ref: vKill packet\7f1535206
-Ref: X packet\7f1536136
-Ref: insert breakpoint or watchpoint packet\7f1536447
-Node: Stop Reply Packets\7f1540487
-Node: General Query Packets\7f1545253
-Ref: qCRC packet\7f1548083
-Ref: QNonStop\7f1555906
-Ref: QPassSignals\7f1556568
-Ref: QProgramSignals\7f1557775
-Ref: qSearch memory\7f1560290
-Ref: QStartNoAckMode\7f1560798
-Ref: qSupported\7f1561329
-Ref: multiprocess extensions\7f1574027
-Ref: install tracepoint in tracing\7f1576057
-Ref: qXfer read\7f1579441
-Ref: qXfer auxiliary vector read\7f1579936
-Ref: qXfer btrace read\7f1580284
-Ref: qXfer target description read\7f1581351
-Ref: qXfer library list read\7f1581785
-Ref: qXfer svr4 library list read\7f1582441
-Ref: qXfer memory map read\7f1584294
-Ref: qXfer sdata read\7f1584681
-Ref: qXfer siginfo read\7f1585147
-Ref: qXfer spu read\7f1585544
-Ref: qXfer threads read\7f1586068
-Ref: qXfer traceframe info read\7f1586471
-Ref: qXfer unwind info block\7f1586889
-Ref: qXfer fdpic loadmap read\7f1587123
-Ref: qXfer osdata read\7f1587539
-Ref: qXfer write\7f1588801
-Ref: qXfer siginfo write\7f1589368
-Ref: qXfer spu write\7f1589765
-Ref: General Query Packets-Footnote-1\7f1592307
-Node: Architecture-Specific Protocol Details\7f1592634
-Node: ARM-Specific Protocol Details\7f1593143
-Node: ARM Breakpoint Kinds\7f1593391
-Node: MIPS-Specific Protocol Details\7f1593722
-Node: MIPS Register packet Format\7f1594005
-Node: MIPS Breakpoint Kinds\7f1594932
-Node: Tracepoint Packets\7f1595350
-Ref: QTEnable\7f1604341
-Ref: QTDisable\7f1604537
-Ref: qTfSTM\7f1610074
-Ref: qTsSTM\7f1610074
-Ref: qTSTMat\7f1611151
-Ref: QTBuffer-size\7f1612302
-Node: Host I/O Packets\7f1614275
-Node: Interrupts\7f1618886
-Node: Notification Packets\7f1620789
-Node: Remote Non-Stop\7f1626209
-Node: Packet Acknowledgment\7f1628499
-Node: Examples\7f1630614
-Node: File-I/O Remote Protocol Extension\7f1631208
-Node: File-I/O Overview\7f1631670
-Node: Protocol Basics\7f1633869
-Node: The F Request Packet\7f1636098
-Node: The F Reply Packet\7f1636999
-Node: The Ctrl-C Message\7f1637917
-Node: Console I/O\7f1639543
-Node: List of Supported Calls\7f1640759
-Node: open\7f1641121
-Node: close\7f1643629
-Node: read\7f1644012
-Node: write\7f1644621
-Node: lseek\7f1645392
-Node: rename\7f1646276
-Node: unlink\7f1647683
-Node: stat/fstat\7f1648630
-Node: gettimeofday\7f1649523
-Node: isatty\7f1649959
-Node: system\7f1650555
-Node: Protocol-specific Representation of Datatypes\7f1652097
-Node: Integral Datatypes\7f1652474
-Node: Pointer Values\7f1653281
-Node: Memory Transfer\7f1653985
-Node: struct stat\7f1654605
-Node: struct timeval\7f1656807
-Node: Constants\7f1657324
-Node: Open Flags\7f1657773
-Node: mode_t Values\7f1658114
-Node: Errno Values\7f1658606
-Node: Lseek Flags\7f1659416
-Node: Limits\7f1659601
-Node: File-I/O Examples\7f1659961
-Node: Library List Format\7f1661049
-Node: Library List Format for SVR4 Targets\7f1663831
-Node: Memory Map Format\7f1666298
-Node: Thread List Format\7f1668873
-Node: Traceframe Info Format\7f1669691
-Node: Branch Trace Format\7f1671377
-Node: Agent Expressions\7f1672722
-Node: General Bytecode Design\7f1675543
-Node: Bytecode Descriptions\7f1680337
-Node: Using Agent Expressions\7f1693770
-Node: Varying Target Capabilities\7f1695747
-Node: Rationale\7f1696908
-Node: Target Descriptions\7f1704297
-Node: Retrieving Descriptions\7f1706171
-Node: Target Description Format\7f1707256
-Node: Predefined Target Types\7f1716299
-Node: Standard Target Features\7f1717683
-Node: AArch64 Features\7f1719571
-Node: ARM Features\7f1719994
-Node: i386 Features\7f1721512
-Node: MicroBlaze Features\7f1723454
-Node: MIPS Features\7f1724031
-Node: M68K Features\7f1725222
-Node: Nios II Features\7f1725885
-Node: PowerPC Features\7f1726283
-Node: S/390 and System z Features\7f1727606
-Node: TIC6x Features\7f1729071
-Node: Operating System Information\7f1729633
-Node: Process list\7f1730468
-Node: Trace File Format\7f1731531
-Node: Index Section Format\7f1733524
-Node: Man Pages\7f1741494
-Node: gdb man\7f1741900
-Node: gdbserver man\7f1747936
-Node: gcore man\7f1755133
-Node: gdbinit man\7f1755790
-Node: Copying\7f1756673
-Node: GNU Free Documentation License\7f1794234
-Node: Concept Index\7f1821081
-Node: Command and Variable Index\7f1950698
+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\7f69821
+Ref: set auto-connect-native-target\7f71975
+Node: Arguments\7f76371
+Node: Environment\7f77640
+Node: Working Directory\7f81374
+Node: Input/Output\7f82526
+Node: Attach\7f84497
+Node: Kill Process\7f86963
+Node: Inferiors and Programs\7f87944
+Node: Threads\7f95187
+Ref: set libthread-db-search-path\7f102596
+Node: Forks\7f104650
+Node: Checkpoint/Restart\7f110964
+Ref: Checkpoint/Restart-Footnote-1\7f115492
+Node: Stopping\7f115527
+Node: Breakpoints\7f116790
+Node: Set Breaks\7f120329
+Node: Set Watchpoints\7f138750
+Node: Set Catchpoints\7f148154
+Node: Delete Breaks\7f159028
+Node: Disabling\7f160968
+Node: Conditions\7f164353
+Node: Break Commands\7f170000
+Node: Dynamic Printf\7f173221
+Node: Save Breakpoints\7f177480
+Node: Static Probe Points\7f178655
+Node: Error in Breakpoints\7f181342
+Node: Breakpoint-related Warnings\7f182078
+Node: Continuing and Stepping\7f184405
+Ref: range stepping\7f193868
+Node: Skipping Over Functions and Files\7f194948
+Node: Signals\7f198520
+Ref: stepping and signal handlers\7f202954
+Ref: stepping into signal handlers\7f203750
+Ref: extra signal information\7f204983
+Node: Thread Stops\7f206487
+Node: All-Stop Mode\7f207586
+Node: Non-Stop Mode\7f211486
+Node: Background Execution\7f214899
+Node: Thread-Specific Breakpoints\7f217115
+Node: Interrupted System Calls\7f219133
+Node: Observer Mode\7f220647
+Node: Reverse Execution\7f224083
+Ref: Reverse Execution-Footnote-1\7f228708
+Ref: Reverse Execution-Footnote-2\7f229335
+Node: Process Record and Replay\7f229385
+Node: Stack\7f243711
+Node: Frames\7f245259
+Node: Backtrace\7f248026
+Ref: backtrace-command\7f248377
+Ref: Backtrace-Footnote-1\7f254147
+Node: Frame Filter Management\7f254335
+Ref: disable frame-filter all\7f254879
+Node: Selection\7f259187
+Node: Frame Info\7f262059
+Node: Source\7f264046
+Node: List\7f265112
+Node: Specify Location\7f267814
+Node: Edit\7f272418
+Ref: Edit-Footnote-1\7f273894
+Node: Search\7f274129
+Node: Source Path\7f274937
+Ref: set substitute-path\7f281303
+Node: Machine Code\7f283523
+Node: Data\7f290424
+Node: Expressions\7f298088
+Node: Ambiguous Expressions\7f301893
+Node: Variables\7f305123
+Node: Arrays\7f311189
+Node: Output Formats\7f313720
+Ref: Output Formats-Footnote-1\7f317093
+Node: Memory\7f317250
+Node: Auto Display\7f323647
+Node: Print Settings\7f328189
+Ref: set print entry-values\7f336351
+Node: Pretty Printing\7f347665
+Node: Pretty-Printer Introduction\7f348179
+Node: Pretty-Printer Example\7f349934
+Node: Pretty-Printer Commands\7f350712
+Node: Value History\7f353136
+Node: Convenience Vars\7f355558
+Node: Convenience Funs\7f362040
+Node: Registers\7f367169
+Ref: standard registers\7f368151
+Ref: Registers-Footnote-1\7f373102
+Node: Floating Point Hardware\7f373497
+Node: Vector Unit\7f374029
+Node: OS Information\7f374416
+Ref: linux info os infotypes\7f376440
+Node: Memory Region Attributes\7f380647
+Node: Dump/Restore Files\7f385311
+Node: Core File Generation\7f387616
+Node: Character Sets\7f388840
+Node: Caching Target Data\7f395205
+Ref: Caching Target Data-Footnote-1\7f397933
+Node: Searching Memory\7f398171
+Node: Optimized Code\7f401049
+Node: Inline Functions\7f402726
+Node: Tail Call Frames\7f405353
+Ref: set debug entry-values\7f407493
+Node: Macros\7f411567
+Ref: Macros-Footnote-1\7f419143
+Node: Tracepoints\7f419296
+Node: Set Tracepoints\7f421358
+Node: Create and Delete Tracepoints\7f424296
+Node: Enable and Disable Tracepoints\7f430697
+Node: Tracepoint Passcounts\7f431937
+Node: Tracepoint Conditions\7f433348
+Node: Trace State Variables\7f435042
+Node: Tracepoint Actions\7f437237
+Node: Listing Tracepoints\7f443540
+Node: Listing Static Tracepoint Markers\7f445242
+Node: Starting and Stopping Trace Experiments\7f447090
+Ref: disconnected tracing\7f448835
+Node: Tracepoint Restrictions\7f453255
+Node: Analyze Collected Data\7f457024
+Node: tfind\7f458330
+Node: tdump\7f462752
+Node: save tracepoints\7f465267
+Node: Tracepoint Variables\7f465763
+Node: Trace Files\7f466891
+Node: Overlays\7f469267
+Node: How Overlays Work\7f469987
+Ref: A code overlay\7f472542
+Node: Overlay Commands\7f475955
+Node: Automatic Overlay Debugging\7f480137
+Node: Overlay Sample Program\7f482276
+Node: Languages\7f484013
+Node: Setting\7f485176
+Node: Filenames\7f486877
+Node: Manually\7f487688
+Node: Automatically\7f488897
+Node: Show\7f489958
+Ref: show language\7f490246
+Node: Checks\7f491280
+Node: Type Checking\7f492285
+Node: Range Checking\7f494114
+Node: Supported Languages\7f496515
+Node: C\7f497815
+Node: C Operators\7f498779
+Node: C Constants\7f503118
+Node: C Plus Plus Expressions\7f505997
+Node: C Defaults\7f509340
+Node: C Checks\7f510008
+Node: Debugging C\7f510568
+Node: Debugging C Plus Plus\7f511052
+Node: Decimal Floating Point\7f514645
+Node: D\7f515915
+Node: Go\7f516173
+Node: Objective-C\7f517267
+Node: Method Names in Commands\7f517730
+Node: The Print Command with Objective-C\7f519421
+Node: OpenCL C\7f520072
+Node: OpenCL C Datatypes\7f520347
+Node: OpenCL C Expressions\7f520722
+Node: OpenCL C Operators\7f521079
+Node: Fortran\7f521311
+Node: Fortran Operators\7f522032
+Node: Fortran Defaults\7f522888
+Node: Special Fortran Commands\7f523273
+Node: Pascal\7f523779
+Node: Modula-2\7f524294
+Node: M2 Operators\7f525269
+Node: Built-In Func/Proc\7f528267
+Node: M2 Constants\7f531181
+Node: M2 Types\7f532782
+Node: M2 Defaults\7f536000
+Node: Deviations\7f536601
+Node: M2 Checks\7f537702
+Node: M2 Scope\7f538519
+Node: GDB/M2\7f539543
+Node: Ada\7f540456
+Node: Ada Mode Intro\7f541566
+Node: Omissions from Ada\7f543477
+Node: Additions to Ada\7f547830
+Node: Stopping Before Main Program\7f551757
+Node: Ada Exceptions\7f552291
+Node: Ada Tasks\7f553488
+Node: Ada Tasks and Core Files\7f559910
+Node: Ravenscar Profile\7f560755
+Node: Ada Glitches\7f561824
+Node: Unsupported Languages\7f565833
+Node: Symbols\7f566523
+Node: Altering\7f585206
+Node: Assignment\7f586244
+Node: Jumping\7f589350
+Node: Signaling\7f591512
+Node: Returning\7f594441
+Node: Calling\7f597792
+Node: Patching\7f602536
+Node: Compiling and Injecting Code\7f603650
+Node: GDB Files\7f612577
+Node: Files\7f613297
+Ref: Shared Libraries\7f626371
+Ref: Files-Footnote-1\7f638001
+Node: Separate Debug Files\7f638176
+Ref: debug-file-directory\7f641280
+Node: MiniDebugInfo\7f649894
+Node: Index Files\7f652345
+Node: Symbol Errors\7f654407
+Node: Data Files\7f658023
+Node: Targets\7f658979
+Node: Active Targets\7f660459
+Node: Target Commands\7f661533
+Ref: load\7f665915
+Node: Byte Order\7f666896
+Node: Remote Debugging\7f667870
+Node: Connecting\7f669132
+Node: File Transfer\7f674067
+Node: Server\7f675006
+Ref: Other Command-Line Arguments for gdbserver\7f682597
+Ref: Monitor Commands for gdbserver\7f685711
+Ref: Server-Footnote-1\7f690886
+Node: Remote Configuration\7f691006
+Ref: set remotebreak\7f692032
+Ref: set remote hardware-watchpoint-limit\7f693495
+Ref: set remote hardware-breakpoint-limit\7f693495
+Ref: set remote hardware-watchpoint-length-limit\7f693721
+Ref: set remote exec-file\7f694136
+Node: Remote Stub\7f703625
+Node: Stub Contents\7f706520
+Node: Bootstrapping\7f708627
+Node: Debug Session\7f712442
+Node: Configurations\7f714483
+Node: Native\7f715252
+Node: HP-UX\7f715821
+Node: BSD libkvm Interface\7f716110
+Node: SVR4 Process Information\7f717181
+Node: DJGPP Native\7f720956
+Node: Cygwin Native\7f727515
+Node: Non-debug DLL Symbols\7f731322
+Node: Hurd Native\7f735475
+Node: Darwin\7f740731
+Node: Embedded OS\7f741992
+Node: Embedded Processors\7f742403
+Node: ARM\7f743536
+Node: M32R/D\7f747672
+Node: M68K\7f749374
+Node: MicroBlaze\7f749666
+Node: MIPS Embedded\7f751115
+Node: PowerPC Embedded\7f756052
+Node: PA\7f759832
+Node: Sparclet\7f760115
+Node: Sparclet File\7f761584
+Node: Sparclet Connection\7f762464
+Node: Sparclet Download\7f762942
+Node: Sparclet Execution\7f763990
+Node: Sparclite\7f764581
+Node: Z8000\7f764953
+Node: AVR\7f766335
+Node: CRIS\7f766698
+Node: Super-H\7f767676
+Node: Architectures\7f768735
+Node: AArch64\7f769172
+Node: i386\7f769578
+Ref: i386-Footnote-1\7f771810
+Node: Alpha\7f771896
+Node: MIPS\7f772029
+Node: HPPA\7f775923
+Node: SPU\7f776441
+Node: PowerPC\7f778627
+Node: Nios II\7f779362
+Node: Controlling GDB\7f779751
+Node: Prompt\7f780647
+Node: Editing\7f782365
+Node: Command History\7f783308
+Node: Screen Size\7f786839
+Node: Numbers\7f788773
+Node: ABI\7f790752
+Node: Auto-loading\7f793925
+Ref: set auto-load off\7f795300
+Ref: show auto-load\7f795936
+Ref: info auto-load\7f796715
+Node: Init File in the Current Directory\7f799772
+Ref: set auto-load local-gdbinit\7f800347
+Ref: show auto-load local-gdbinit\7f800529
+Ref: info auto-load local-gdbinit\7f800693
+Node: libthread_db.so.1 file\7f800841
+Ref: set auto-load libthread-db\7f801780
+Ref: show auto-load libthread-db\7f801911
+Ref: info auto-load libthread-db\7f802048
+Node: Auto-loading safe path\7f802232
+Ref: set auto-load safe-path\7f803538
+Ref: show auto-load safe-path\7f804277
+Ref: add-auto-load-safe-path\7f804400
+Node: Auto-loading verbose mode\7f807302
+Ref: set debug auto-load\7f808465
+Ref: show debug auto-load\7f808566
+Node: Messages/Warnings\7f808688
+Ref: confirmation requests\7f810122
+Node: Debugging Output\7f811326
+Node: Other Misc Settings\7f820020
+Node: Extending GDB\7f821044
+Node: Sequences\7f822897
+Node: Define\7f823558
+Node: Hooks\7f827369
+Node: Command Files\7f829735
+Node: Output\7f834808
+Node: Auto-loading sequences\7f839772
+Ref: set auto-load gdb-scripts\7f840267
+Ref: show auto-load gdb-scripts\7f840391
+Ref: info auto-load gdb-scripts\7f840521
+Node: Python\7f840752
+Node: Python Commands\7f841925
+Node: Python API\7f844253
+Node: Basic Python\7f846736
+Ref: prompt_hook\7f855398
+Node: Exception Handling\7f855996
+Node: Values From Inferior\7f858492
+Node: Types In Python\7f871401
+Node: Pretty Printing API\7f880678
+Node: Selecting Pretty-Printers\7f884574
+Node: Writing a Pretty-Printer\7f886907
+Node: Type Printing API\7f892229
+Node: Frame Filter API\7f894845
+Node: Frame Decorator API\7f903828
+Ref: frame_args\7f907412
+Node: Writing a Frame Filter\7f910742
+Node: Xmethods In Python\7f922208
+Node: Xmethod API\7f925098
+Node: Writing an Xmethod\7f928910
+Node: Inferiors In Python\7f934745
+Node: Events In Python\7f937625
+Node: Threads In Python\7f944705
+Node: Commands In Python\7f947145
+Node: Parameters In Python\7f956555
+Node: Functions In Python\7f962015
+Node: Progspaces In Python\7f964232
+Node: Objfiles In Python\7f967733
+Node: Frames In Python\7f973127
+Node: Blocks In Python\7f979682
+Node: Symbols In Python\7f984044
+Node: Symbol Tables In Python\7f991271
+Node: Line Tables In Python\7f994494
+Node: Breakpoints In Python\7f997331
+Node: Finish Breakpoints in Python\7f1005320
+Node: Lazy Strings In Python\7f1007426
+Node: Architectures In Python\7f1009660
+Node: Python Auto-loading\7f1011849
+Ref: set auto-load python-scripts\7f1012478
+Ref: show auto-load python-scripts\7f1012578
+Ref: info auto-load python-scripts\7f1012684
+Node: Python modules\7f1013709
+Node: gdb.printing\7f1014095
+Node: gdb.types\7f1015522
+Node: gdb.prompt\7f1018534
+Node: Guile\7f1020183
+Node: Guile Introduction\7f1020842
+Node: Guile Commands\7f1021713
+Node: Guile API\7f1023567
+Node: Basic Guile\7f1025564
+Node: Guile Configuration\7f1031246
+Node: GDB Scheme Data Types\7f1032222
+Node: Guile Exception Handling\7f1034054
+Node: Values From Inferior In Guile\7f1038088
+Node: Arithmetic In Guile\7f1053623
+Node: Types In Guile\7f1055254
+Ref: Fields of a type in Guile\7f1063203
+Node: Guile Pretty Printing API\7f1064599
+Node: Selecting Guile Pretty-Printers\7f1070201
+Node: Writing a Guile Pretty-Printer\7f1072577
+Node: Commands In Guile\7f1077762
+Node: Parameters In Guile\7f1088542
+Ref: Parameters In Guile-Footnote-1\7f1095423
+Node: Progspaces In Guile\7f1095539
+Node: Objfiles In Guile\7f1098127
+Node: Frames In Guile\7f1100199
+Node: Blocks In Guile\7f1106629
+Node: Symbols In Guile\7f1111437
+Node: Symbol Tables In Guile\7f1118771
+Node: Breakpoints In Guile\7f1121734
+Node: Lazy Strings In Guile\7f1131965
+Node: Architectures In Guile\7f1134259
+Node: Disassembly In Guile\7f1138566
+Node: I/O Ports in Guile\7f1141768
+Node: Memory Ports in Guile\7f1142324
+Node: Iterators In Guile\7f1145496
+Node: Guile Auto-loading\7f1149785
+Ref: set auto-load guile-scripts\7f1150408
+Ref: show auto-load guile-scripts\7f1150506
+Ref: info auto-load guile-scripts\7f1150610
+Node: Guile Modules\7f1151569
+Node: Guile Printing Module\7f1151891
+Node: Guile Types Module\7f1152710
+Node: Auto-loading extensions\7f1154003
+Node: objfile-gdbdotext file\7f1155201
+Ref: set auto-load scripts-directory\7f1156637
+Ref: with-auto-load-dir\7f1157013
+Ref: show auto-load scripts-directory\7f1157831
+Ref: add-auto-load-scripts-directory\7f1157911
+Node: dotdebug_gdb_scripts section\7f1158387
+Node: Which flavor to choose?\7f1160233
+Node: Multiple Extension Languages\7f1162054
+Node: Aliases\7f1163118
+Node: Interpreters\7f1165983
+Node: TUI\7f1168081
+Node: TUI Overview\7f1169025
+Node: TUI Keys\7f1171458
+Node: TUI Single Key Mode\7f1173762
+Node: TUI Commands\7f1174637
+Node: TUI Configuration\7f1177296
+Node: Emacs\7f1178602
+Node: GDB/MI\7f1184039
+Node: GDB/MI General Design\7f1186013
+Node: Context management\7f1188533
+Node: Asynchronous and non-stop modes\7f1192361
+Node: Thread groups\7f1195335
+Node: GDB/MI Command Syntax\7f1197613
+Node: GDB/MI Input Syntax\7f1197856
+Node: GDB/MI Output Syntax\7f1199406
+Node: GDB/MI Compatibility with CLI\7f1204693
+Node: GDB/MI Development and Front Ends\7f1205430
+Node: GDB/MI Output Records\7f1207084
+Node: GDB/MI Result Records\7f1207490
+Node: GDB/MI Stream Records\7f1208840
+Node: GDB/MI Async Records\7f1210105
+Node: GDB/MI Breakpoint Information\7f1219730
+Node: GDB/MI Frame Information\7f1223681
+Node: GDB/MI Thread Information\7f1224767
+Node: GDB/MI Ada Exception Information\7f1225747
+Node: GDB/MI Simple Examples\7f1226170
+Node: GDB/MI Command Description Format\7f1228378
+Node: GDB/MI Breakpoint Commands\7f1229258
+Node: GDB/MI Catchpoint Commands\7f1249104
+Node: Shared Library GDB/MI Catchpoint Commands\7f1249472
+Node: Ada Exception GDB/MI Catchpoint Commands\7f1251130
+Node: GDB/MI Program Context\7f1253534
+Node: GDB/MI Thread Commands\7f1257802
+Node: GDB/MI Ada Tasking Commands\7f1261758
+Node: GDB/MI Program Execution\7f1264011
+Node: GDB/MI Stack Manipulation\7f1276045
+Ref: -stack-list-arguments\7f1277944
+Ref: -stack-list-frames\7f1281649
+Ref: -stack-list-locals\7f1285512
+Ref: -stack-list-variables\7f1287002
+Node: GDB/MI Variable Objects\7f1288536
+Ref: -var-set-format\7f1298494
+Ref: -var-list-children\7f1299612
+Ref: -var-update\7f1308404
+Ref: -var-set-frozen\7f1311402
+Ref: -var-set-update-range\7f1312199
+Ref: -var-set-visualizer\7f1312728
+Node: GDB/MI Data Manipulation\7f1314218
+Node: GDB/MI Tracepoint Commands\7f1333765
+Node: GDB/MI Symbol Query\7f1345350
+Node: GDB/MI File Commands\7f1346039
+Node: GDB/MI Target Manipulation\7f1349334
+Node: GDB/MI File Transfer Commands\7f1355549
+Node: GDB/MI Ada Exceptions Commands\7f1356872
+Node: GDB/MI Support Commands\7f1358225
+Node: GDB/MI Miscellaneous Commands\7f1362798
+Ref: -interpreter-exec\7f1373024
+Node: Annotations\7f1375364
+Node: Annotations Overview\7f1376283
+Node: Server Prefix\7f1378746
+Node: Prompting\7f1379480
+Node: Errors\7f1380997
+Node: Invalidation\7f1381893
+Node: Annotations for Running\7f1382372
+Node: Source Annotations\7f1383906
+Node: JIT Interface\7f1384835
+Node: Declarations\7f1386634
+Node: Registering Code\7f1388021
+Node: Unregistering Code\7f1388993
+Node: Custom Debug Info\7f1389620
+Node: Using JIT Debug Info Readers\7f1390916
+Node: Writing JIT Debug Info Readers\7f1391928
+Node: In-Process Agent\7f1394123
+Ref: Control Agent\7f1396066
+Node: In-Process Agent Protocol\7f1396933
+Node: IPA Protocol Objects\7f1397724
+Ref: agent expression object\7f1398722
+Ref: tracepoint action object\7f1398927
+Ref: tracepoint object\7f1399007
+Node: IPA Protocol Commands\7f1401583
+Node: GDB Bugs\7f1403053
+Node: Bug Criteria\7f1403785
+Node: Bug Reporting\7f1404662
+Node: Command Line Editing\7f1412491
+Node: Introduction and Notation\7f1413143
+Node: Readline Interaction\7f1414764
+Node: Readline Bare Essentials\7f1415953
+Node: Readline Movement Commands\7f1417734
+Node: Readline Killing Commands\7f1418692
+Node: Readline Arguments\7f1420608
+Node: Searching\7f1421650
+Node: Readline Init File\7f1423800
+Node: Readline Init File Syntax\7f1424951
+Node: Conditional Init Constructs\7f1440050
+Node: Sample Init File\7f1442573
+Node: Bindable Readline Commands\7f1445687
+Node: Commands For Moving\7f1446739
+Node: Commands For History\7f1447597
+Node: Commands For Text\7f1450992
+Node: Commands For Killing\7f1453715
+Node: Numeric Arguments\7f1455855
+Node: Commands For Completion\7f1456991
+Node: Keyboard Macros\7f1458957
+Node: Miscellaneous Commands\7f1459525
+Node: Readline vi Mode\7f1463373
+Node: Using History Interactively\7f1464283
+Node: History Interaction\7f1464798
+Node: Event Designators\7f1466220
+Node: Word Designators\7f1467357
+Node: Modifiers\7f1468992
+Node: In Memoriam\7f1470213
+Node: Formatting Documentation\7f1471096
+Ref: Formatting Documentation-Footnote-1\7f1474416
+Node: Installing GDB\7f1474484
+Node: Requirements\7f1475056
+Ref: Expat\7f1475625
+Node: Running Configure\7f1478192
+Node: Separate Objdir\7f1481761
+Node: Config Names\7f1484656
+Node: Configure Options\7f1486105
+Node: System-wide configuration\7f1488476
+Node: System-wide Configuration Scripts\7f1490436
+Node: Maintenance Commands\7f1491620
+Ref: maint info breakpoints\7f1493275
+Node: Remote Protocol\7f1512323
+Node: Overview\7f1512977
+Ref: Binary Data\7f1515522
+Node: Packets\7f1518047
+Ref: thread-id syntax\7f1518947
+Ref: extended mode\7f1520392
+Ref: ? packet\7f1520650
+Ref: bc\7f1522116
+Ref: bs\7f1522326
+Ref: read registers packet\7f1523943
+Ref: cycle step packet\7f1525879
+Ref: write register packet\7f1528480
+Ref: step with signal packet\7f1529459
+Ref: vCont packet\7f1530935
+Ref: vKill packet\7f1535823
+Ref: X packet\7f1536753
+Ref: insert breakpoint or watchpoint packet\7f1537064
+Node: Stop Reply Packets\7f1541104
+Node: General Query Packets\7f1545870
+Ref: qCRC packet\7f1548700
+Ref: QNonStop\7f1556523
+Ref: QPassSignals\7f1557185
+Ref: QProgramSignals\7f1558392
+Ref: qSearch memory\7f1560907
+Ref: QStartNoAckMode\7f1561415
+Ref: qSupported\7f1561946
+Ref: multiprocess extensions\7f1574644
+Ref: install tracepoint in tracing\7f1576674
+Ref: qXfer read\7f1580058
+Ref: qXfer auxiliary vector read\7f1580553
+Ref: qXfer btrace read\7f1580901
+Ref: qXfer target description read\7f1581968
+Ref: qXfer library list read\7f1582402
+Ref: qXfer svr4 library list read\7f1583058
+Ref: qXfer memory map read\7f1584911
+Ref: qXfer sdata read\7f1585298
+Ref: qXfer siginfo read\7f1585764
+Ref: qXfer spu read\7f1586161
+Ref: qXfer threads read\7f1586685
+Ref: qXfer traceframe info read\7f1587088
+Ref: qXfer unwind info block\7f1587506
+Ref: qXfer fdpic loadmap read\7f1587740
+Ref: qXfer osdata read\7f1588156
+Ref: qXfer write\7f1589418
+Ref: qXfer siginfo write\7f1589985
+Ref: qXfer spu write\7f1590382
+Ref: General Query Packets-Footnote-1\7f1592924
+Node: Architecture-Specific Protocol Details\7f1593251
+Node: ARM-Specific Protocol Details\7f1593760
+Node: ARM Breakpoint Kinds\7f1594008
+Node: MIPS-Specific Protocol Details\7f1594339
+Node: MIPS Register packet Format\7f1594622
+Node: MIPS Breakpoint Kinds\7f1595549
+Node: Tracepoint Packets\7f1595967
+Ref: QTEnable\7f1604958
+Ref: QTDisable\7f1605154
+Ref: qTfSTM\7f1610691
+Ref: qTsSTM\7f1610691
+Ref: qTSTMat\7f1611768
+Ref: QTBuffer-size\7f1612919
+Node: Host I/O Packets\7f1614892
+Node: Interrupts\7f1619503
+Node: Notification Packets\7f1621406
+Node: Remote Non-Stop\7f1626826
+Node: Packet Acknowledgment\7f1629116
+Node: Examples\7f1631231
+Node: File-I/O Remote Protocol Extension\7f1631825
+Node: File-I/O Overview\7f1632287
+Node: Protocol Basics\7f1634486
+Node: The F Request Packet\7f1636715
+Node: The F Reply Packet\7f1637616
+Node: The Ctrl-C Message\7f1638534
+Node: Console I/O\7f1640160
+Node: List of Supported Calls\7f1641376
+Node: open\7f1641738
+Node: close\7f1644246
+Node: read\7f1644629
+Node: write\7f1645238
+Node: lseek\7f1646009
+Node: rename\7f1646893
+Node: unlink\7f1648300
+Node: stat/fstat\7f1649247
+Node: gettimeofday\7f1650140
+Node: isatty\7f1650576
+Node: system\7f1651172
+Node: Protocol-specific Representation of Datatypes\7f1652714
+Node: Integral Datatypes\7f1653091
+Node: Pointer Values\7f1653898
+Node: Memory Transfer\7f1654602
+Node: struct stat\7f1655222
+Node: struct timeval\7f1657424
+Node: Constants\7f1657941
+Node: Open Flags\7f1658390
+Node: mode_t Values\7f1658731
+Node: Errno Values\7f1659223
+Node: Lseek Flags\7f1660033
+Node: Limits\7f1660218
+Node: File-I/O Examples\7f1660578
+Node: Library List Format\7f1661666
+Node: Library List Format for SVR4 Targets\7f1664448
+Node: Memory Map Format\7f1666915
+Node: Thread List Format\7f1669490
+Node: Traceframe Info Format\7f1670308
+Node: Branch Trace Format\7f1671994
+Node: Agent Expressions\7f1673339
+Node: General Bytecode Design\7f1676160
+Node: Bytecode Descriptions\7f1680954
+Node: Using Agent Expressions\7f1694387
+Node: Varying Target Capabilities\7f1696364
+Node: Rationale\7f1697525
+Node: Target Descriptions\7f1704914
+Node: Retrieving Descriptions\7f1706788
+Node: Target Description Format\7f1707873
+Node: Predefined Target Types\7f1716916
+Node: Standard Target Features\7f1718300
+Node: AArch64 Features\7f1720188
+Node: ARM Features\7f1720611
+Node: i386 Features\7f1722129
+Node: MicroBlaze Features\7f1724071
+Node: MIPS Features\7f1724648
+Node: M68K Features\7f1725839
+Node: Nios II Features\7f1726502
+Node: PowerPC Features\7f1726900
+Node: S/390 and System z Features\7f1728223
+Node: TIC6x Features\7f1729688
+Node: Operating System Information\7f1730250
+Node: Process list\7f1731085
+Node: Trace File Format\7f1732148
+Node: Index Section Format\7f1734141
+Node: Man Pages\7f1742111
+Node: gdb man\7f1742517
+Node: gdbserver man\7f1748553
+Node: gcore man\7f1755750
+Node: gdbinit man\7f1756407
+Node: Copying\7f1757290
+Node: GNU Free Documentation License\7f1794851
+Node: Concept Index\7f1821700
+Node: Command and Variable Index\7f1951317
 \1f
 End Tag Table
index ff4eaf9..e8cee5d 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -44,7 +44,7 @@ Debugging with GDB
 
 This file describes GDB, the GNU symbolic debugger.
 
-   This is the Tenth Edition, for GDB (GDB) Version 7.9.
+   This is the Tenth Edition, for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -491,7 +491,7 @@ Let us use GDB to try to see what is going on.
      There is absolutely no warranty for GDB; type "show warranty"
       for details.
 
-     GDB 7.9, Copyright 1999 Free Software Foundation, Inc...
+     GDB 7.9.1, Copyright 1999 Free Software Foundation, Inc...
      (gdb)
 
 GDB reads only enough symbol data to know where to find the rest when
index ae78223..4cd01b0 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
index 89b793d..ad55f46 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
index 2b7e0ea..2c3dc76 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -594,6 +594,12 @@ following interface:
      the xmethod takes a single argument, then a single 'gdb.Type'
      object corresponding to it can be returned.
 
+ -- Function: XMethodWorker.get_result_type (self, *args)
+     This method returns a 'gdb.Type' object representing the type of
+     the result of invoking this xmethod.  The ARGS argument is the same
+     tuple of arguments that would be passed to the '__call__' method of
+     this worker.
+
  -- Function: XMethodWorker.__call__ (self, *args)
      This is the method which does the _work_ of the xmethod.  The ARGS
      arguments is the tuple of arguments to the xmethod.  Each element
@@ -699,6 +705,9 @@ setup above is as follows:
          def get_arg_types(self):
              return None
 
+         def get_result_type(self, obj):
+             return gdb.lookup_type('int')
+
          def __call__(self, obj):
              return obj['a_']
 
@@ -707,6 +716,9 @@ setup above is as follows:
          def get_arg_types(self):
              return gdb.lookup_type('MyClass')
 
+         def get_result_type(self, obj):
+             return gdb.lookup_type('int')
+
          def __call__(self, obj, other):
              return obj['a_'] + other['a_']
 
@@ -761,6 +773,9 @@ xmethod workers and xmethod matchers is as follows:
          def get_arg_types(self):
              return None
 
+         def get_result_type(self):
+             return gdb.lookup_type('int')
+
          def __call__(self, obj):
              return (self.class_type.sizeof +
                      obj['dsize_'] *
index 4baa5d6..10779f6 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
@@ -7963,7 +7963,7 @@ and TeX (or 'texi2roff') to typeset the printed version.
 
    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.9/gdb/gdb.info', and it refers to subordinate files matching
+'gdb-7.9.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'
@@ -7973,8 +7973,8 @@ program, available as part of the GNU Texinfo distribution.
 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.9', in the case of version 7.9), you can make the Info
-file by typing:
+directory ('gdb-7.9.1', in the case of version 7.9.1), you can make the
+Info file by typing:
 
      cd gdb
      make gdb.info
@@ -7999,7 +7999,7 @@ On its own, TeX cannot either read or typeset a Texinfo file.
 
    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.9/gdb') and type:
+main source directory (for example, to 'gdb-7.9.1/gdb') and type:
 
      make gdb.dvi
 
@@ -8007,7 +8007,7 @@ main source directory (for example, to 'gdb-7.9/gdb') and type:
 
    ---------- Footnotes ----------
 
-   (1) In 'gdb-7.9/gdb/refcard.ps' of the version 7.9 release.
+   (1) In 'gdb-7.9.1/gdb/refcard.ps' of the version 7.9.1 release.
 
 \1f
 File: gdb.info,  Node: Installing GDB,  Next: Maintenance Commands,  Prev: Formatting Documentation,  Up: Top
@@ -8110,39 +8110,39 @@ preparing GDB for installation; you can then use 'make' to build the
 a single directory, whose name is usually composed by appending the
 version number to 'gdb'.
 
-   For example, the GDB version 7.9 distribution is in the 'gdb-7.9'
+   For example, the GDB version 7.9.1 distribution is in the 'gdb-7.9.1'
 directory.  That directory contains:
 
-'gdb-7.9/configure (and supporting files)'
+'gdb-7.9.1/configure (and supporting files)'
      script for configuring GDB and all its supporting libraries
 
-'gdb-7.9/gdb'
+'gdb-7.9.1/gdb'
      the source specific to GDB itself
 
-'gdb-7.9/bfd'
+'gdb-7.9.1/bfd'
      source for the Binary File Descriptor library
 
-'gdb-7.9/include'
+'gdb-7.9.1/include'
      GNU include files
 
-'gdb-7.9/libiberty'
+'gdb-7.9.1/libiberty'
      source for the '-liberty' free software library
 
-'gdb-7.9/opcodes'
+'gdb-7.9.1/opcodes'
      source for the library of opcode tables and disassemblers
 
-'gdb-7.9/readline'
+'gdb-7.9.1/readline'
      source for the GNU command-line interface
 
-'gdb-7.9/glob'
+'gdb-7.9.1/glob'
      source for the GNU filename pattern-matching subroutine
 
-'gdb-7.9/mmalloc'
+'gdb-7.9.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.9' directory.
+the 'gdb-7.9.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
@@ -8150,7 +8150,7 @@ platform on which GDB will run as an argument.
 
    For example:
 
-     cd gdb-7.9
+     cd gdb-7.9.1
      ./configure HOST
      make
 
@@ -8171,8 +8171,8 @@ need to run 'sh' on it explicitly:
      sh configure HOST
 
    If you run 'configure' from a directory that contains source
-directories for multiple libraries or programs, such as the 'gdb-7.9'
-source directory for version 7.9, 'configure' creates configuration
+directories for multiple libraries or programs, such as the 'gdb-7.9.1'
+source directory for version 7.9.1, 'configure' creates configuration
 files for every directory level underneath (unless you tell it not to,
 with the '--norecursion' option).
 
@@ -8212,13 +8212,13 @@ to specify a path to find 'configure' itself from your working
 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.9, you can build GDB in a separate
+   For example, with version 7.9.1, you can build GDB in a separate
 directory for a Sun 4 like this:
 
-     cd gdb-7.9
+     cd gdb-7.9.1
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-7.9/configure sun4
+     ../gdb-7.9.1/configure sun4
      make
 
    When 'configure' builds a configuration using a remote source
@@ -8229,8 +8229,8 @@ the example, you'd find the Sun 4 library 'libiberty.a' in the directory
 
    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.9/gdb/configure', you are configuring only one subdirectory of
-GDB, not the whole package.  This leads to build errors about missing
+'../gdb-7.9.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
@@ -8245,9 +8245,9 @@ a configured directory--whatever directory you were in when you called
 
    The 'Makefile' that 'configure' generates in each source directory
 also runs recursively.  If you type 'make' in a source directory such as
-'gdb-7.9' (or in a separate configured directory configured with
-'--srcdir=DIRNAME/gdb-7.9'), you will build all the required libraries,
-and then build GDB.
+'gdb-7.9.1' (or in a separate configured directory configured with
+'--srcdir=DIRNAME/gdb-7.9.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
@@ -8290,8 +8290,8 @@ you can use it to test your guesses on abbreviations--for example:
      % sh config.sub i986v
      Invalid configuration `i986v': machine `i986v' not recognized
 
-'config.sub' is also distributed in the GDB source directory ('gdb-7.9',
-for version 7.9).
+'config.sub' is also distributed in the GDB source directory
+('gdb-7.9.1', for version 7.9.1).
 
 \1f
 File: gdb.info,  Node: Configure Options,  Next: System-wide configuration,  Prev: Config Names,  Up: Installing GDB
index 40b10a9..73def6b 100644 (file)
@@ -21,7 +21,7 @@ END-INFO-DIR-ENTRY
    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.9.
+Source-Level Debugger' for GDB (GDB) Version 7.9.1.
 
    Copyright (C) 1988-2015 Free Software Foundation, Inc.
 
index 2b441ad..860d367 100644 (file)
Binary files a/gdb/doc/gdb.info-7 and b/gdb/doc/gdb.info-7 differ
index a348470..737dc80 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDBINIT 5"
-.TH GDBINIT 5 "2015-02-20" "gdb-7.9" "GNU Development Tools"
+.TH GDBINIT 5 "2015-05-13" "gdb-7.9.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
index f595f27..154bafb 100644 (file)
 .\" ========================================================================
 .\"
 .IX Title "GDBSERVER 1"
-.TH GDBSERVER 1 "2015-02-20" "gdb-7.9" "GNU Development Tools"
+.TH GDBSERVER 1 "2015-05-13" "gdb-7.9.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
index b9a50d0..376c2bd 100644 (file)
@@ -2307,6 +2307,13 @@ If the xmethod takes a single argument, then a single
 @code{gdb.Type} object corresponding to it can be returned.
 @end defun
 
+@defun XMethodWorker.get_result_type (self, *args)
+This method returns a @code{gdb.Type} object representing the type
+of the result of invoking this xmethod.
+The @var{args} argument is the same tuple of arguments that would be
+passed to the @code{__call__} method of this worker.
+@end defun
+
 @defun XMethodWorker.__call__ (self, *args)
 This is the method which does the @emph{work} of the xmethod.  The
 @var{args} arguments is the tuple of arguments to the xmethod.  Each
@@ -2423,6 +2430,9 @@ above is as follows:
 class MyClassWorker_geta(gdb.xmethod.XMethodWorker):
     def get_arg_types(self):
         return None
+
+    def get_result_type(self, obj):
+        return gdb.lookup_type('int')
  
     def __call__(self, obj):
         return obj['a_']
@@ -2431,6 +2441,9 @@ class MyClassWorker_geta(gdb.xmethod.XMethodWorker):
 class MyClassWorker_plus(gdb.xmethod.XMethodWorker):
     def get_arg_types(self):
         return gdb.lookup_type('MyClass')
+
+    def get_result_type(self, obj):
+        return gdb.lookup_type('int')
  
     def __call__(self, obj, other):
         return obj['a_'] + other['a_']
@@ -2494,10 +2507,13 @@ of the xmethod workers and xmethod matchers is as follows:
 class MyTemplateWorker_footprint(gdb.xmethod.XMethodWorker):
     def __init__(self, class_type):
         self.class_type = class_type
+
     def get_arg_types(self):
         return None
+
+    def get_result_type(self):
+        return gdb.lookup_type('int')
+
     def __call__(self, obj):
         return (self.class_type.sizeof +
                 obj['dsize_'] *
index 72ac69f..ec05bb2 100644 (file)
@@ -1739,6 +1739,15 @@ evaluate_subexp_standard (struct type *expect_type,
              return value_zero (builtin_type (exp->gdbarch)->builtin_int,
                                 not_lval);
            }
+         else if (TYPE_CODE (ftype) == TYPE_CODE_XMETHOD)
+           {
+             struct type *return_type
+               = result_type_of_xmethod (argvec[0], nargs, argvec + 1);
+
+             if (return_type == NULL)
+               error (_("Xmethod is missing return type."));
+             return value_zero (return_type, not_lval);
+           }
          else if (TYPE_GNU_IFUNC (ftype))
            return allocate_value (TYPE_TARGET_TYPE (TYPE_TARGET_TYPE (ftype)));
          else if (TYPE_TARGET_TYPE (ftype))
index fc05137..b7bc12a 100644 (file)
@@ -260,7 +260,7 @@ struct extension_language_ops
   /* xmethod support:
      clone_xmethod_worker_data, free_xmethod_worker_data,
      get_matching_xmethod_workers, get_xmethod_arg_types,
-     invoke_xmethod.
+     get_xmethod_return_type, invoke_xmethod.
      These methods are optional and may be NULL, but if one of them is
      implemented then they all must be.  */
 
@@ -293,6 +293,18 @@ struct extension_language_ops
      int *nargs,
      struct type ***arg_types);
 
+  /* Given a WORKER servicing a particular method, fetch the type of the
+     result of the method.  OBJECT, ARGS, NARGS are the same as for
+     invoke_xmethod.  The result type is stored in *RESULT_TYPE.
+     For backward compatibility with 7.9, which did not support getting the
+     result type, if the get_result_type operation is not provided by WORKER
+     then EXT_LANG_RC_OK is returned and NULL is returned in *RESULT_TYPE.  */
+  enum ext_lang_rc (*get_xmethod_result_type)
+    (const struct extension_language_defn *extlang,
+     struct xmethod_worker *worker,
+     struct value *object, struct value **args, int nargs,
+     struct type **result_type);
+
   /* Invoke the xmethod serviced by WORKER.  The xmethod is invoked
      on OBJECT with arguments in the array ARGS.  NARGS is the length of
      this array.  Returns the value returned by the xmethod.  */
index 853ef67..fe62918 100644 (file)
@@ -948,6 +948,31 @@ get_xmethod_arg_types (struct xmethod_worker *worker, int *nargs)
   return type_array;
 }
 
+/* Return the type of the result of the xmethod encapsulated in WORKER.
+   OBJECT, ARGS, NARGS are the same as for invoke_xmethod.  */
+
+struct type *
+get_xmethod_result_type (struct xmethod_worker *worker,
+                        struct value *object, struct value **args, int nargs)
+{
+  enum ext_lang_rc rc;
+  struct type *result_type;
+  const struct extension_language_defn *extlang = worker->extlang;
+
+  gdb_assert (extlang->ops->get_xmethod_arg_types != NULL);
+
+  rc = extlang->ops->get_xmethod_result_type (extlang, worker,
+                                             object, args, nargs,
+                                             &result_type);
+  if (rc == EXT_LANG_RC_ERROR)
+    {
+      error (_("Error while fetching result type of an xmethod worker "
+              "defined in %s."), extlang->capitalized_name);
+    }
+
+  return result_type;
+}
+
 /* Invokes the xmethod encapsulated in WORKER and returns the result.
    The method is invoked on OBJ with arguments in the ARGS array.  NARGS is
    the length of the this array.  */
index a53f0a7..099b8c3 100644 (file)
@@ -251,4 +251,8 @@ extern xmethod_worker_vec *get_matching_xmethod_workers
 
 extern struct type **get_xmethod_arg_types (struct xmethod_worker *, int *);
 
+extern struct type *get_xmethod_result_type (struct xmethod_worker *,
+                                            struct value *object,
+                                            struct value **args, int nargs);
+
 #endif /* EXTENSION_H */
index 081801c..f979591 100644 (file)
@@ -379,8 +379,6 @@ iq2000_frame_cache (struct frame_info *this_frame, void **this_cache)
   *this_cache = cache;
 
   cache->base = get_frame_register_unsigned (this_frame, E_FP_REGNUM);
-  //if (cache->base == 0)
-    //return cache;
 
   current_pc = get_frame_pc (this_frame);
   find_pc_partial_function (current_pc, NULL, &cache->pc, NULL);
index 029de60..0b323a2 100644 (file)
@@ -3175,7 +3175,7 @@ yylex (void)
     int is_a_field = 0;
     int hextype;
 
-
+    is_a_field_of_this.type = NULL;
     if (search_field && current_type)
       is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
     if (is_a_field)
@@ -3222,15 +3222,20 @@ yylex (void)
                              VAR_DOMAIN, &is_a_field_of_this);
       }
 
-    if (is_a_field)
+    if (is_a_field || (is_a_field_of_this.type != NULL))
       {
        tempbuf = (char *) xrealloc (tempbuf, namelen + 1);
        strncpy (tempbuf, tmp, namelen);
        tempbuf [namelen] = 0;
        yylval.sval.ptr = tempbuf;
        yylval.sval.length = namelen;
+       yylval.ssym.sym = NULL;
        xfree (uptokstart);
-       return FIELDNAME;
+        yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+       if (is_a_field)
+         return FIELDNAME;
+       else
+         return NAME;
       }
     /* Call lookup_symtab, not lookup_partial_symtab, in case there are
        no psymtabs (coff, xcoff, or some future change to blow away the
@@ -3363,7 +3368,6 @@ yylex (void)
     xfree(uptokstart);
     /* Any other kind of symbol.  */
     yylval.ssym.sym = sym;
-    yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
     return NAME;
   }
 }
index a1c78bf..101de09 100644 (file)
@@ -1551,7 +1551,7 @@ yylex (void)
     int is_a_field = 0;
     int hextype;
 
-
+    is_a_field_of_this.type = NULL;
     if (search_field && current_type)
       is_a_field = (lookup_struct_elt_type (current_type, tmp, 1) != NULL);
     if (is_a_field)
@@ -1598,15 +1598,20 @@ yylex (void)
                              VAR_DOMAIN, &is_a_field_of_this);
       }
 
-    if (is_a_field)
+    if (is_a_field || (is_a_field_of_this.type != NULL))
       {
        tempbuf = (char *) realloc (tempbuf, namelen + 1);
        strncpy (tempbuf, tmp, namelen);
        tempbuf [namelen] = 0;
        yylval.sval.ptr = tempbuf;
        yylval.sval.length = namelen;
+       yylval.ssym.sym = NULL;
        free (uptokstart);
-       return FIELDNAME;
+        yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
+       if (is_a_field)
+         return FIELDNAME;
+       else
+         return NAME;
       }
     /* Call lookup_symtab, not lookup_partial_symtab, in case there are
        no psymtabs (coff, xcoff, or some future change to blow away the
@@ -1739,7 +1744,6 @@ yylex (void)
     free(uptokstart);
     /* Any other kind of symbol.  */
     yylval.ssym.sym = sym;
-    yylval.ssym.is_a_field_of_this = is_a_field_of_this.type != NULL;
     return NAME;
   }
 }
index 77659ba..d32a49b 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-02-20 21:14+0400\n"
+"POT-Creation-Date: 2015-05-13 10:40-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"
@@ -625,11 +625,11 @@ msgstr ""
 msgid "Attempt to dereference null array pointer."
 msgstr ""
 
-#: ada-lang.c:10963 eval.c:2510 eval.c:3011 valops.c:1580
+#: ada-lang.c:10963 eval.c:2519 eval.c:3020 valops.c:1580
 msgid "Attempt to take contents of a non-pointer value."
 msgstr ""
 
-#: ada-lang.c:11040 eval.c:2748
+#: ada-lang.c:11040 eval.c:2757
 msgid "Attempt to use a type name as an expression"
 msgstr ""
 
@@ -2761,7 +2761,7 @@ msgstr ""
 msgid "no `%s' found"
 msgstr ""
 
-#: ax-gdb.c:2221 eval.c:732 eval.c:2908
+#: ax-gdb.c:2221 eval.c:732 eval.c:2917
 #, possible-c-format
 msgid "There is no field named %s"
 msgstr ""
@@ -2779,17 +2779,17 @@ msgstr ""
 msgid "cannot subscript requested type: cannot call user defined functions"
 msgstr ""
 
-#: ax-gdb.c:2321 eval.c:2133 eval.c:2179 eval.c:2203 jv-lang.c:985
+#: ax-gdb.c:2321 eval.c:2142 eval.c:2188 eval.c:2212 jv-lang.c:985
 #: m2-lang.c:254
 #, possible-c-format
 msgid "cannot subscript something of type `%s'"
 msgstr ""
 
-#: ax-gdb.c:2324 eval.c:2136 eval.c:2206 jv-lang.c:987 m2-lang.c:257
+#: ax-gdb.c:2324 eval.c:2145 eval.c:2215 jv-lang.c:987 m2-lang.c:257
 msgid "cannot subscript requested type"
 msgstr ""
 
-#: ax-gdb.c:2329 valarith.c:930
+#: ax-gdb.c:2329 valarith.c:945
 msgid "Argument to arithmetic operation not a number or boolean."
 msgstr ""
 
@@ -4828,7 +4828,7 @@ msgid "not reached"
 msgstr ""
 
 #: c-exp.y:3323 d-exp.y:1634 f-exp.y:1283 go-exp.y:1646 m2-exp.y:1115
-#: p-exp.y:1768
+#: p-exp.y:1772
 #, possible-c-format
 msgid "A %s in expression, near `%s'."
 msgstr ""
@@ -6742,33 +6742,33 @@ msgstr ""
 msgid "Neither a simple expression, or a multi-line specified."
 msgstr ""
 
-#: compile/compile.c:517
+#: compile/compile.c:519
 msgid "Could not open source file for writing"
 msgstr ""
 
-#: compile/compile.c:520
+#: compile/compile.c:522
 msgid "Could not write to source file"
 msgstr ""
 
-#: compile/compile.c:532
+#: compile/compile.c:534
 msgid "Compilation failed."
 msgstr ""
 
-#: compile/compile.c:598
+#: compile/compile.c:600
 #, possible-c-format
 msgid "Invalid register name \"%s\"."
 msgstr ""
 
-#: compile/compile.c:605
+#: compile/compile.c:607
 #, possible-c-format
 msgid "Cannot find gdbarch register \"%s\"."
 msgstr ""
 
-#: compile/compile.c:616
+#: compile/compile.c:618
 msgid "Command to compile source code and inject it into the inferior."
 msgstr ""
 
-#: compile/compile.c:622
+#: compile/compile.c:624
 msgid ""
 "Compile, inject, and execute code.\n"
 "\n"
@@ -6789,7 +6789,7 @@ msgid ""
 "the end of the source code."
 msgstr ""
 
-#: compile/compile.c:643
+#: compile/compile.c:645
 msgid ""
 "Evaluate a file containing source code.\n"
 "\n"
@@ -6797,27 +6797,27 @@ msgid ""
 "-r|-raw: Suppress automatic 'void _gdb_expr () { CODE }' wrapping."
 msgstr ""
 
-#: compile/compile.c:651
+#: compile/compile.c:653
 msgid "Set compile command debugging."
 msgstr ""
 
-#: compile/compile.c:652
+#: compile/compile.c:654
 msgid "Show compile command debugging."
 msgstr ""
 
-#: compile/compile.c:653
+#: compile/compile.c:655
 msgid "When on, compile command debugging is enabled."
 msgstr ""
 
-#: compile/compile.c:660
+#: compile/compile.c:662
 msgid "Set compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:661
+#: compile/compile.c:663
 msgid "Show compile command GCC command-line arguments"
 msgstr ""
 
-#: compile/compile.c:662
+#: compile/compile.c:664
 msgid ""
 "Use options like -I (include file directory) or ABI settings.\n"
 "String quoting is parsed like in shell, for example:\n"
@@ -10339,37 +10339,41 @@ msgstr ""
 msgid "Cannot evaluate function -- may be inlined"
 msgstr ""
 
-#: eval.c:1747
+#: eval.c:1748 valarith.c:495 valarith.c:614
+msgid "Xmethod is missing return type."
+msgstr ""
+
+#: eval.c:1756
 msgid ""
 "Expression of type other than \"Function returning ...\" used as function"
 msgstr ""
 
-#: eval.c:1832
+#: eval.c:1841
 msgid "Cannot perform substring on this type"
 msgstr ""
 
-#: eval.c:1947
+#: eval.c:1956
 msgid "non-pointer-to-member value used in pointer-to-member construct"
 msgstr ""
 
-#: eval.c:2219
+#: eval.c:2228
 #, possible-c-format
 msgid "Too many subscripts for F77 (%d Max)"
 msgstr ""
 
-#: eval.c:2224
+#: eval.c:2233
 msgid "Wrong number of subscripts"
 msgstr ""
 
-#: eval.c:2418
+#: eval.c:2427
 msgid "Non-integral right operand for \"@\" operator."
 msgstr ""
 
-#: eval.c:2489
+#: eval.c:2498
 msgid "Attempt to dereference pointer to member without an object"
 msgstr ""
 
-#: eval.c:2787
+#: eval.c:2796
 msgid "Attempt to use a type as an expression"
 msgstr ""
 
@@ -10381,23 +10385,23 @@ msgstr ""
 #. If there are any cases landing here which mean a user error,
 #. then they should be separate cases, with more descriptive
 #. error messages.
-#: eval.c:2816
+#: eval.c:2825
 msgid "GDB does not (yet) know how to evaluate that kind of expression"
 msgstr ""
 
-#: eval.c:2893
+#: eval.c:2902
 msgid "Attempt to take address of register or constant."
 msgstr ""
 
-#: eval.c:2926 valops.c:1446 valops.c:1461 valops.c:1495
+#: eval.c:2935 valops.c:1446 valops.c:1461 valops.c:1495
 msgid "Attempt to take address of value not located in memory."
 msgstr ""
 
-#: eval.c:3101
+#: eval.c:3110
 msgid "Internal error in eval_type."
 msgstr ""
 
-#: eval.c:3112
+#: eval.c:3121
 msgid "Can't get dimensions for a non-array type"
 msgstr ""
 
@@ -10573,6 +10577,11 @@ msgstr ""
 msgid "Error while looking for arg types of a xmethod worker defined in %s."
 msgstr ""
 
+#: extension.c:969
+#, possible-c-format
+msgid "Error while fetching result type of an xmethod worker defined in %s."
+msgstr ""
+
 #: f-exp.y:781 m2-exp.y:746
 msgid "Overflow on numeric constant."
 msgstr ""
@@ -12400,7 +12409,7 @@ msgstr ""
 msgid "Show the mode of Guile exception printing on error."
 msgstr ""
 
-#: guile/guile.c:820 python/python.c:1633
+#: guile/guile.c:820 python/python.c:1634
 msgid ""
 "none  == no stack or message will be printed.\n"
 "full == a message and a stack will be printed.\n"
@@ -14824,7 +14833,7 @@ msgid ""
 "The second argument is the command to execute.\n"
 msgstr ""
 
-#: iq2000-tdep.c:487
+#: iq2000-tdep.c:485
 #, possible-c-format
 msgid "breakpoint_from_pc: invalid breakpoint address 0x%lx"
 msgstr ""
@@ -19065,8 +19074,8 @@ msgid "Invalid OpenCL vector size: %d"
 msgstr ""
 
 #: opencl-lang.c:183 opencl-lang.c:212 opencl-lang.c:391 opencl-lang.c:508
-#: opencl-lang.c:601 opencl-lang.c:912 valarith.c:1385 valarith.c:1431
-#: valarith.c:1789 valarith.c:1825 valops.c:882
+#: opencl-lang.c:601 opencl-lang.c:912 valarith.c:1400 valarith.c:1446
+#: valarith.c:1804 valarith.c:1840 valops.c:882
 msgid "Could not determine the vector bounds"
 msgstr ""
 
@@ -19088,11 +19097,11 @@ msgstr ""
 msgid "Vector operations are not supported on scalar types"
 msgstr ""
 
-#: opencl-lang.c:608 opencl-lang.c:919 valarith.c:1441
+#: opencl-lang.c:608 opencl-lang.c:919 valarith.c:1456
 msgid "Cannot perform operation on vectors with different types"
 msgstr ""
 
-#: opencl-lang.c:715 valarith.c:1484
+#: opencl-lang.c:715 valarith.c:1499
 msgid "Argument to operation not a number or boolean."
 msgstr ""
 
@@ -19607,7 +19616,7 @@ msgstr ""
 msgid "expected wchar_t argument for %%lc"
 msgstr ""
 
-#: printcmd.c:2368 printcmd.c:2385 value.c:2632
+#: printcmd.c:2368 printcmd.c:2385 value.c:2644
 msgid "Invalid floating value found in program."
 msgstr ""
 
@@ -20179,9 +20188,9 @@ msgid "Could not get children iterator"
 msgstr ""
 
 #: python/py-prettyprint.c:651 python/py-function.c:152
-#: python/py-xmethods.c:547 python/py-xmethods.c:555 python/py-xmethods.c:571
-#: python/py-xmethods.c:581 python/py-xmethods.c:591 python/python.c:357
-#: python/python.c:461 python/python.c:482
+#: python/py-xmethods.c:649 python/py-xmethods.c:657 python/py-xmethods.c:673
+#: python/py-xmethods.c:683 python/py-xmethods.c:693 python/python.c:358
+#: python/python.c:462 python/python.c:483
 msgid "Error while executing Python code."
 msgstr ""
 
@@ -20378,18 +20387,24 @@ msgstr ""
 msgid "Error while creating breakpoint from GDB."
 msgstr ""
 
-#: python/py-xmethods.c:455
+#: python/py-xmethods.c:457
 msgid ""
 "Arg type returned by the get_arg_types method of a debug method worker "
 "object is not a gdb.Type object."
 msgstr ""
 
-#: python/py-xmethods.c:474
+#: python/py-xmethods.c:476
 msgid ""
 "Arg type returned by the get_arg_types method of an xmethod worker object is "
 "not a gdb.Type object."
 msgstr ""
 
+#: python/py-xmethods.c:593
+msgid ""
+"Type returned by the get_result_type method of an xmethod worker object is "
+"not a gdb.Type object."
+msgstr ""
+
 #: python/py-param.c:137
 msgid "String required for filename."
 msgstr ""
@@ -20648,54 +20663,54 @@ msgstr ""
 msgid "symbol requires a frame to compute its value"
 msgstr ""
 
-#: python/python.c:223 python/python.c:1888
+#: python/python.c:224 python/python.c:1889
 msgid "internal error: Unhandled Python exception"
 msgstr ""
 
-#: python/python.c:251
+#: python/python.c:252
 msgid "Python not initialized"
 msgstr ""
 
-#: python/python.c:401
+#: python/python.c:402
 #, possible-c-format
 msgid "Error while opening file: %s"
 msgstr ""
 
-#: python/python.c:453
+#: python/python.c:454
 msgid "Invalid \"python\" block structure."
 msgstr ""
 
-#: python/python.c:556
+#: python/python.c:557
 msgid "Programmer error: unhandled type."
 msgstr ""
 
-#: python/python.c:584
+#: python/python.c:585
 #, possible-c-format
 msgid "Could not find parameter `%s'."
 msgstr ""
 
-#: python/python.c:588
+#: python/python.c:589
 #, possible-c-format
 msgid "`%s' is not a parameter."
 msgstr ""
 
-#: python/python.c:960
+#: python/python.c:961
 msgid "Posted event is not callable"
 msgstr ""
 
-#: python/python.c:1052
+#: python/python.c:1053
 msgid "Return from prompt_hook must be either a Python string, or None"
 msgstr ""
 
-#: python/python.c:1204
+#: python/python.c:1205
 msgid "Error occurred computing Python errormessage.\n"
 msgstr ""
 
-#: python/python.c:1482
+#: python/python.c:1483
 msgid "Python scripting is not supported in this copy of GDB."
 msgstr ""
 
-#: python/python.c:1574
+#: python/python.c:1575
 msgid ""
 "Start an interactive Python prompt.\n"
 "\n"
@@ -20710,7 +20725,7 @@ msgid ""
 "    5\n"
 msgstr ""
 
-#: python/python.c:1588
+#: python/python.c:1589
 msgid ""
 "Start a Python interactive prompt.\n"
 "\n"
@@ -20718,7 +20733,7 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: python/python.c:1599
+#: python/python.c:1600
 msgid ""
 "Evaluate a Python command.\n"
 "\n"
@@ -20731,7 +20746,7 @@ msgid ""
 "the end of the command."
 msgstr ""
 
-#: python/python.c:1610
+#: python/python.c:1611
 msgid ""
 "Evaluate a Python command.\n"
 "\n"
@@ -20739,21 +20754,21 @@ msgid ""
 "This command is only a placeholder."
 msgstr ""
 
-#: python/python.c:1621 python/python.c:1626
+#: python/python.c:1622 python/python.c:1627
 msgid "Prefix command for python preference settings."
 msgstr ""
 
-#: python/python.c:1631
+#: python/python.c:1632
 msgid "Set mode for Python stack dump on error."
 msgstr ""
 
-#: python/python.c:1632
+#: python/python.c:1633
 msgid "Show the mode of Python stack printing on error."
 msgstr ""
 
 #. This is passed in one call to warning so that blank lines aren't
 #. inserted between each line of text.
-#: python/python.c:1868
+#: python/python.c:1869
 #, possible-c-format
 msgid ""
 "\n"
@@ -28664,122 +28679,122 @@ msgstr ""
 msgid "Invalid binary operation specified."
 msgstr ""
 
-#: valarith.c:505 valarith.c:615
+#: valarith.c:512 valarith.c:630
 #, possible-c-format
 msgid "member function %s not found"
 msgstr ""
 
-#: valarith.c:532
+#: valarith.c:539
 msgid "Can't do that unary op on that type"
 msgstr ""
 
-#: valarith.c:583
+#: valarith.c:590
 msgid "Invalid unary operation specified."
 msgstr ""
 
-#: valarith.c:717
+#: valarith.c:732
 msgid "unimplemented support for boolean repeats"
 msgstr ""
 
-#: valarith.c:721
+#: valarith.c:736
 msgid "can't repeat values of that type"
 msgstr ""
 
-#: valarith.c:733
+#: valarith.c:748
 msgid "Strings can only be concatenated with other strings."
 msgstr ""
 
-#: valarith.c:768
+#: valarith.c:783
 msgid "Booleans can only be concatenated with other bitstrings or booleans."
 msgstr ""
 
-#: valarith.c:771
+#: valarith.c:786
 msgid "unimplemented support for boolean concatenation."
 msgstr ""
 
 #. We don't know how to concatenate these operands.
-#: valarith.c:776
+#: valarith.c:791
 msgid "illegal operands for concatenation."
 msgstr ""
 
-#: valarith.c:790 valarith.c:821
+#: valarith.c:805 valarith.c:836
 msgid "Attempt to raise 0 to negative power."
 msgstr ""
 
 #. The DFP extension to the C language does not allow mixing of
 #. * decimal float types with other float types in expressions
 #. * (see WDTR 24732, page 12).
-#: valarith.c:864
+#: valarith.c:879
 msgid "Mixing decimal floating types with other floating types is not allowed."
 msgstr ""
 
-#: valarith.c:883 valarith.c:902
+#: valarith.c:898 valarith.c:917
 #, possible-c-format
 msgid "Don't know how to convert from %s to %s."
 msgstr ""
 
-#: valarith.c:970
+#: valarith.c:985
 msgid "Operation not valid for decimal floating point number."
 msgstr ""
 
-#: valarith.c:1008
+#: valarith.c:1023
 #, possible-c-format
 msgid "Cannot perform exponentiation: %s"
 msgstr ""
 
-#: valarith.c:1021
+#: valarith.c:1036
 msgid "Integer-only operation on floating point number."
 msgstr ""
 
-#: valarith.c:1069
+#: valarith.c:1084
 msgid "Invalid operation on booleans."
 msgstr ""
 
-#: valarith.c:1129 valarith.c:1140 valarith.c:1255 valarith.c:1266
+#: valarith.c:1144 valarith.c:1155 valarith.c:1270 valarith.c:1281
 msgid "Division by zero"
 msgstr ""
 
-#: valarith.c:1219 valarith.c:1349
+#: valarith.c:1234 valarith.c:1364
 msgid "Invalid binary operation on numbers."
 msgstr ""
 
-#: valarith.c:1396
+#: valarith.c:1411
 msgid "conversion of scalar to vector involves truncation"
 msgstr ""
 
-#: valarith.c:1427
+#: valarith.c:1442
 msgid "Vector operations are only supported among vectors"
 msgstr ""
 
-#: valarith.c:1631
+#: valarith.c:1646
 msgid "Invalid type combination in equality test."
 msgstr ""
 
-#: valarith.c:1713
+#: valarith.c:1728
 msgid "Invalid type combination in ordering comparison."
 msgstr ""
 
-#: valarith.c:1746
+#: valarith.c:1761
 msgid "Argument to positive operation not a number."
 msgstr ""
 
-#: valarith.c:1801
+#: valarith.c:1816
 msgid "Argument to negate operation not a number."
 msgstr ""
 
-#: valarith.c:1836
+#: valarith.c:1851
 msgid "Argument to complement operation not an integer, boolean."
 msgstr ""
 
-#: valarith.c:1877
+#: valarith.c:1892
 msgid "Second argument of 'IN' has wrong type"
 msgstr ""
 
-#: valarith.c:1882
+#: valarith.c:1897
 msgid "First argument of 'IN' has wrong type"
 msgstr ""
 
-#: valarith.c:1886
+#: valarith.c:1901
 msgid "First argument of 'IN' not in range"
 msgstr ""
 
@@ -29421,48 +29436,48 @@ msgid ""
 "use \"set\" as in \"set $foo = 5\" to define them.\n"
 msgstr ""
 
-#: value.c:2796
+#: value.c:2808
 msgid "Value can't be converted to integer."
 msgstr ""
 
 #. FIXME: would like to include fieldval in the message, but
 #. we don't have a sprintf_longest.
-#: value.c:3328
+#: value.c:3340
 #, possible-c-format
 msgid "Value does not fit in %d bits."
 msgstr ""
 
-#: value.c:3379
+#: value.c:3391
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for integer constant."
 msgstr ""
 
-#: value.c:3415
+#: value.c:3427
 #, possible-c-format
 msgid "Unexpected type (%d) encountered for unsigned integer constant."
 msgstr ""
 
-#: value.c:3535
+#: value.c:3547
 msgid "Unexpected type encountered for floating constant."
 msgstr ""
 
-#: value.c:3705
+#: value.c:3717
 msgid "Function return type unknown."
 msgstr ""
 
-#: value.c:3841
+#: value.c:3853
 msgid "infinite loop while fetching a register"
 msgstr ""
 
-#: value.c:3908
+#: value.c:3920
 msgid "Unexpected lazy value type."
 msgstr ""
 
-#: value.c:3924
+#: value.c:3936
 msgid "You must provide one argument for $_isvoid."
 msgstr ""
 
-#: value.c:3934
+#: value.c:3946
 msgid ""
 "Debugger convenience (\"$foo\") variables and functions.\n"
 "Convenience variables are created when you assign them values;\n"
@@ -29475,11 +29490,11 @@ msgid ""
 "Convenience functions are defined via the Python API."
 msgstr ""
 
-#: value.c:3949
+#: value.c:3961
 msgid "Elements of value history around item number IDX (or last ten)."
 msgstr ""
 
-#: value.c:3953
+#: value.c:3965
 msgid ""
 "Initialize a convenience variable if necessary.\n"
 "init-if-undefined VARIABLE = EXPRESSION\n"
@@ -29488,11 +29503,11 @@ msgid ""
 "VARIABLE is already initialized."
 msgstr ""
 
-#: value.c:3960
+#: value.c:3972
 msgid "Placeholder command for showing help on convenience functions."
 msgstr ""
 
-#: value.c:3964
+#: value.c:3976
 msgid ""
 "Check whether an expression is void.\n"
 "Usage: $_isvoid (expression)\n"
index e384e41..ff20f71 100644 (file)
@@ -114,15 +114,21 @@ def register_pretty_printer(obj, printer, replace=False):
     if not hasattr(printer, "__call__"):
         raise TypeError("printer missing attribute: __call__")
 
-    if obj is None:
+    if hasattr(printer, "name"):
+      name = printer.name
+    else:
+      name = printer.__name__
+    if obj is None or obj is gdb:
         if gdb.parameter("verbose"):
             gdb.write("Registering global %s pretty-printer ...\n" % name)
         obj = gdb
     else:
         if gdb.parameter("verbose"):
-            gdb.write("Registering %s pretty-printer for %s ...\n" %
-                      (printer.name, obj.filename))
+            gdb.write("Registering %s pretty-printer for %s ...\n" % (
+                name, obj.filename))
 
+    # Printers implemented as functions are old-style.  In order to not risk
+    # breaking anything we do not check __name__ here.
     if hasattr(printer, "name"):
         if not isinstance(printer.name, basestring):
             raise TypeError("printer name is not a string")
index 672b2d8..6acc23c 100644 (file)
@@ -101,9 +101,11 @@ class XMethodWorker(object):
     invokes the method when GDB wants it to.  Internally, GDB first invokes the
     'get_arg_types' method to perform overload resolution.  If GDB selects to
     invoke this Python xmethod, then it invokes it via the overridden
-    '__call__' method.
+    '__call__' method.  The 'get_result_type' method is used to implement
+    'ptype' on the xmethod.
 
-    Derived classes should override the 'get_arg_types' and '__call__' methods.
+    Derived classes should override the 'get_arg_types', 'get_result_type'
+    and '__call__' methods.
     """
 
     def get_arg_types(self):
@@ -117,6 +119,20 @@ class XMethodWorker(object):
         """
         raise NotImplementedError("XMethodWorker get_arg_types")
 
+    def get_result_type(self, *args):
+        """Return the type of the result of the xmethod.
+
+        Args:
+            args: Arguments to the method.  Each element of the tuple is a
+                gdb.Value object.  The first element is the 'this' pointer
+                value.  These are the same arguments passed to '__call__'.
+
+        Returns:
+            A gdb.Type object representing the type of the result of the
+            xmethod.
+        """
+        raise NotImplementedError("XMethodWorker get_result_type")
+
     def __call__(self, *args):
         """Invoke the xmethod.
 
index 0a7fc38..91e2691 100644 (file)
 static const char enabled_field_name[] = "enabled";
 static const char match_method_name[] = "match";
 static const char get_arg_types_method_name[] = "get_arg_types";
+static const char get_result_type_method_name[] = "get_result_type";
 static const char invoke_method_name[] = "invoke";
 static const char matchers_attr_str[] = "xmethods";
 
 static PyObject *py_match_method_name = NULL;
 static PyObject *py_get_arg_types_method_name = NULL;
+static PyObject *py_get_result_type_method_name = NULL;
 static PyObject *py_invoke_method_name = NULL;
 
 struct gdbpy_worker_data
@@ -502,6 +504,106 @@ gdbpy_get_xmethod_arg_types (const struct extension_language_defn *extlang,
   return EXT_LANG_RC_OK;
 }
 
+/* Implementation of get_xmethod_result_type for Python.  */
+
+enum ext_lang_rc
+gdbpy_get_xmethod_result_type (const struct extension_language_defn *extlang,
+                              struct xmethod_worker *worker,
+                              struct value *obj,
+                              struct value **args, int nargs,
+                              struct type **result_type_ptr)
+{
+  struct gdbpy_worker_data *worker_data = worker->data;
+  PyObject *py_worker = worker_data->worker;
+  PyObject *py_value_obj, *py_arg_tuple, *py_result_type;
+  PyObject *get_result_type_method;
+  struct type *obj_type, *this_type;
+  struct cleanup *cleanups;
+  int i;
+
+  cleanups = ensure_python_env (get_current_arch (), current_language);
+
+  /* First see if there is a get_result_type method.
+     If not this could be an old xmethod (pre 7.9.1).  */
+  get_result_type_method
+    = PyObject_GetAttrString (py_worker, get_result_type_method_name);
+  if (get_result_type_method == NULL)
+    {
+      PyErr_Clear ();
+      do_cleanups (cleanups);
+      *result_type_ptr = NULL;
+      return EXT_LANG_RC_OK;
+    }
+  make_cleanup_py_decref (get_result_type_method);
+
+  obj_type = check_typedef (value_type (obj));
+  this_type = check_typedef (type_object_to_type (worker_data->this_type));
+  if (TYPE_CODE (obj_type) == TYPE_CODE_PTR)
+    {
+      struct type *this_ptr = lookup_pointer_type (this_type);
+
+      if (!types_equal (obj_type, this_ptr))
+       obj = value_cast (this_ptr, obj);
+    }
+  else if (TYPE_CODE (obj_type) == TYPE_CODE_REF)
+    {
+      struct type *this_ref = lookup_reference_type (this_type);
+
+      if (!types_equal (obj_type, this_ref))
+       obj = value_cast (this_ref, obj);
+    }
+  else
+    {
+      if (!types_equal (obj_type, this_type))
+       obj = value_cast (this_type, obj);
+    }
+  py_value_obj = value_to_value_object (obj);
+  if (py_value_obj == NULL)
+    goto Fail;
+  make_cleanup_py_decref (py_value_obj);
+
+  py_arg_tuple = PyTuple_New (nargs + 1);
+  if (py_arg_tuple == NULL)
+    goto Fail;
+  make_cleanup_py_decref (py_arg_tuple);
+
+  /* PyTuple_SET_ITEM steals the reference of the element.  Hence INCREF the
+     reference to the 'this' object as we have a cleanup to DECREF it.  */
+  Py_INCREF (py_value_obj);
+  PyTuple_SET_ITEM (py_arg_tuple, 0, py_value_obj);
+
+  for (i = 0; i < nargs; i++)
+    {
+      PyObject *py_value_arg = value_to_value_object (args[i]);
+
+      if (py_value_arg == NULL)
+       goto Fail;
+      PyTuple_SET_ITEM (py_arg_tuple, i + 1, py_value_arg);
+    }
+
+  py_result_type = PyObject_CallObject (get_result_type_method, py_arg_tuple);
+  if (py_result_type == NULL)
+    goto Fail;
+  make_cleanup_py_decref (py_result_type);
+
+  *result_type_ptr = type_object_to_type (py_result_type);
+  if (*result_type_ptr == NULL)
+    {
+      PyErr_SetString (PyExc_TypeError,
+                      _("Type returned by the get_result_type method of an"
+                        " xmethod worker object is not a gdb.Type object."));
+      goto Fail;
+    }
+
+  do_cleanups (cleanups);
+  return EXT_LANG_RC_OK;
+
+ Fail:
+  gdbpy_print_stack ();
+  do_cleanups (cleanups);
+  return EXT_LANG_RC_ERROR;
+}
+
 /* Implementation of invoke_xmethod for Python.  */
 
 struct value *
@@ -638,5 +740,10 @@ gdbpy_initialize_xmethods (void)
   if (py_get_arg_types_method_name == NULL)
     return -1;
 
+  py_get_result_type_method_name
+    = PyString_FromString (get_result_type_method_name);
+  if (py_get_result_type_method_name == NULL)
+    return -1;
+
   return 1;
 }
index 0ee8544..6746063 100644 (file)
@@ -343,6 +343,11 @@ extern enum ext_lang_rc gdbpy_get_xmethod_arg_types
    struct xmethod_worker *worker,
    int *nargs,
    struct type ***arg_types);
+extern enum ext_lang_rc gdbpy_get_xmethod_result_type
+  (const struct extension_language_defn *extlang,
+   struct xmethod_worker *worker,
+   struct value *object, struct value **args, int nargs,
+   struct type **result_type);
 extern struct value *gdbpy_invoke_xmethod
   (const struct extension_language_defn *extlang,
    struct xmethod_worker *worker,
index f4b8fcf..9497f09 100644 (file)
@@ -190,6 +190,7 @@ static const struct extension_language_ops python_extension_ops =
   gdbpy_free_xmethod_worker_data,
   gdbpy_get_matching_xmethod_workers,
   gdbpy_get_xmethod_arg_types,
+  gdbpy_get_xmethod_result_type,
   gdbpy_invoke_xmethod
 };
 
index 47e271d..4758e5b 100644 (file)
@@ -1,3 +1,24 @@
+2015-05-12  Doug Evans  <dje@google.com>
+
+       * gdb.python/py-xmethods.exp: Add ptype tests.
+       * gdb.python/py-xmethods.py (E_method_char_worker): Add
+       get_result_type method.
+
+2015-05-02  Pierre Muller  <muller@sourceware.org>
+
+       PR pascal/17815
+       * lib/pascal.exp (gpc_compile): Add new option "class".
+       (fpc_compile): Likewise.
+       * gdb.pascal/case-insensitive-symbols.pas: New file.
+       * gdb.pascal/case-insensitive-symbols.exp: New file.
+
+2015-04-28  Doug Evans  <dje@google.com>
+
+       * gdb.python/py-pp-maint.py: Move "replace" testing to ...
+       * gdb.python/py-pp-registration.exp: ... here.  New file.
+       * gdb.python/py-pp-registration.c: New file.
+       * gdb.python/py-pp-registration.py: New file.
+
 2015-02-11  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.python/py-framefilter.exp (pagination quit - *): New tests.
index 797f975..f4e5ecf 100644 (file)
@@ -76,14 +76,3 @@ def build_pretty_printer():
 gdb.printing.register_pretty_printer(gdb, lookup_function_lookup_test)
 my_pretty_printer = build_pretty_printer()
 gdb.printing.register_pretty_printer(gdb, my_pretty_printer)
-
-# Exercise the "replace" argument to register pretty_printer.
-saw_runtime_error = False
-try:
-  gdb.printing.register_pretty_printer(gdb, my_pretty_printer, replace=False)
-except RuntimeError:
-  saw_runtime_error = True
-  pass
-if not saw_runtime_error:
-  raise RuntimeError("Missing RuntimeError from register_pretty_printer")
-gdb.printing.register_pretty_printer(gdb, my_pretty_printer, replace=True)
index a83b14d..eea1283 100644 (file)
@@ -107,8 +107,9 @@ gdb_test "p a_ptr->geta()" "From Python <A_geta>.*30" "After: a_ptr->geta()"
 gdb_test "p e.geta()" "From Python <A_geta>.*100" "After: e.geta()"
 gdb_test "p e_ptr->geta()" "From Python <A_geta>.*100" "After: e_ptr->geta()"
 gdb_test "p e_ref.geta()" "From Python <A_geta>.*100" "After: e_ref.geta()"
-gdb_test "p e.method(10)" "From Python <E_method_int>.*" "After: e.method(10)"
-gdb_test "p e.method('a')" "From Python <E_method_char>.*" \
+gdb_test "p e.method(10)" "From Python <E_method_int>.* = void" \
+  "After: e.method(10)"
+gdb_test "p e.method('a')" "From Python <E_method_char>.* = void" \
   "After: e.method('a')"
 gdb_test "p g.size_diff<float>  ()" "From Python G<>::size_diff.*" \
   "After: g.size_diff<float>()"
@@ -149,3 +150,11 @@ gdb_test_no_output "disable xmethod progspace E_methods;method_int" \
   "disable xmethod progspace E_methods;method_int"
 gdb_test "info xmethod progspace E_methods;method_int" ".* \\\[disabled\\\]" \
   "info xmethod xmethods E_methods;method_int"
+
+# PR 18285
+# First make sure both are enabled.
+gdb_test_no_output "enable xmethod progspace E_methods;method_char"
+gdb_test_no_output "enable xmethod progspace E_methods;method_int"
+gdb_test "pt e.method('a')" "type = void"
+gdb_test "pt e.method(10)" \
+    "NotImplementedError.*Error while fetching result type of an xmethod worker defined in Python."
index 78935e1..3a2f100 100644 (file)
@@ -60,6 +60,9 @@ class E_method_char_worker(XMethodWorker):
     def get_arg_types(self):
         return gdb.lookup_type('char')
 
+    def get_result_type(self, obj, arg):
+        return gdb.lookup_type('void')
+
     def __call__(self, obj, arg):
         print('From Python <E_method_char>')
         return None
@@ -72,6 +75,8 @@ class E_method_int_worker(XMethodWorker):
     def get_arg_types(self):
         return gdb.lookup_type('int')
 
+    # Note: get_result_type method elided on purpose
+
     def __call__(self, obj, arg):
         print('From Python <E_method_int>')
         return None
index 994e3da..0a2aa75 100644 (file)
@@ -91,6 +91,13 @@ proc gpc_compile {source dest type options} {
                append add_flags " -g"
            }
        }
+       if { $i == "class" } {
+           if [board_info $dest exists pascal_class_flags] {
+               append add_flags " [board_info $dest pascal_class_flags]"
+           } else {
+               append add_flags " --extended-syntax"
+           }
+       }
     }
 
     set result [remote_exec host $gpc_compiler "-o $dest --automake $add_flags $source"]
@@ -120,6 +127,13 @@ proc fpc_compile {source dest type options} {
                append add_flags " -g"
            }
        }
+       if { $i == "class" } {
+           if [board_info $dest exists pascal_class_flags] {
+               append add_flags " [board_info $dest pascal_class_flags]"
+           } else {
+               append add_flags " -Mobjfpc"
+           }
+       }
     }
 
     set result [remote_exec host $fpc_compiler "-o$dest $add_flags $source"]
index 13cc5fa..61a8daf 100644 (file)
@@ -758,20 +758,20 @@ tui_getc (FILE *fp)
 char *
 tui_expand_tabs (const char *string, int col)
 {
-  int n_adjust;
+  int n_adjust, ncol;
   const char *s;
   char *ret, *q;
 
   /* 1. How many additional characters do we need?  */
-  for (n_adjust = 0, s = string; s; )
+  for (ncol = col, n_adjust = 0, s = string; s; )
     {
       s = strpbrk (s, "\t");
       if (s)
        {
-         col += (s - string) + n_adjust;
+         ncol += (s - string) + n_adjust;
          /* Adjustment for the next tab stop, minus one for the TAB
             we replace with spaces.  */
-         n_adjust += 8 - (col % 8) - 1;
+         n_adjust += 8 - (ncol % 8) - 1;
          s++;
        }
     }
@@ -780,7 +780,7 @@ tui_expand_tabs (const char *string, int col)
   ret = q = xmalloc (strlen (string) + n_adjust + 1);
 
   /* 2. Copy the original string while replacing TABs with spaces.  */
-  for (s = string; s; )
+  for (ncol = col, s = string; s; )
     {
       char *s1 = strpbrk (s, "\t");
       if (s1)
@@ -789,12 +789,12 @@ tui_expand_tabs (const char *string, int col)
            {
              strncpy (q, s, s1 - s);
              q += s1 - s;
-             col += s1 - s;
+             ncol += s1 - s;
            }
          do {
            *q++ = ' ';
-           col++;
-         } while ((col % 8) != 0);
+           ncol++;
+         } while ((ncol % 8) != 0);
          s1++;
        }
       else
index f33515c..1d94cf6 100644 (file)
@@ -482,6 +482,21 @@ value_x_binop (struct value *arg1, struct value *arg2, enum exp_opcode op,
          argvec[1] = argvec[0];
          argvec++;
        }
+      if (TYPE_CODE (value_type (argvec[0])) == TYPE_CODE_XMETHOD)
+       {
+         /* Static xmethods are not supported yet.  */
+         gdb_assert (static_memfuncp == 0);
+         if (noside == EVAL_AVOID_SIDE_EFFECTS)
+           {
+             struct type *return_type
+               = result_type_of_xmethod (argvec[0], 2, argvec + 1);
+
+             if (return_type == NULL)
+               error (_("Xmethod is missing return type."));
+             return value_zero (return_type, VALUE_LVAL (arg1));
+           }
+         return call_xmethod (argvec[0], 2, argvec + 1);
+       }
       if (noside == EVAL_AVOID_SIDE_EFFECTS)
        {
          struct type *return_type;
@@ -490,16 +505,8 @@ value_x_binop (struct value *arg1, struct value *arg2, enum exp_opcode op,
            = TYPE_TARGET_TYPE (check_typedef (value_type (argvec[0])));
          return value_zero (return_type, VALUE_LVAL (arg1));
        }
-
-      if (TYPE_CODE (value_type (argvec[0])) == TYPE_CODE_XMETHOD)
-       {
-         /* Static xmethods are not supported yet.  */
-         gdb_assert (static_memfuncp == 0);
-         return call_xmethod (argvec[0], 2, argvec + 1);
-       }
-      else
-       return call_function_by_hand (argvec[0], 2 - static_memfuncp,
-                                     argvec + 1);
+      return call_function_by_hand (argvec[0], 2 - static_memfuncp,
+                                   argvec + 1);
     }
   throw_error (NOT_FOUND_ERROR,
                _("member function %s not found"), tstr);
@@ -594,6 +601,21 @@ value_x_unop (struct value *arg1, enum exp_opcode op, enum noside noside)
          nargs --;
          argvec++;
        }
+      if (TYPE_CODE (value_type (argvec[0])) == TYPE_CODE_XMETHOD)
+       {
+         /* Static xmethods are not supported yet.  */
+         gdb_assert (static_memfuncp == 0);
+         if (noside == EVAL_AVOID_SIDE_EFFECTS)
+           {
+             struct type *return_type
+               = result_type_of_xmethod (argvec[0], 1, argvec + 1);
+
+             if (return_type == NULL)
+               error (_("Xmethod is missing return type."));
+             return value_zero (return_type, VALUE_LVAL (arg1));
+           }
+         return call_xmethod (argvec[0], 1, argvec + 1);
+       }
       if (noside == EVAL_AVOID_SIDE_EFFECTS)
        {
          struct type *return_type;
@@ -602,14 +624,7 @@ value_x_unop (struct value *arg1, enum exp_opcode op, enum noside noside)
            = TYPE_TARGET_TYPE (check_typedef (value_type (argvec[0])));
          return value_zero (return_type, VALUE_LVAL (arg1));
        }
-      if (TYPE_CODE (value_type (argvec[0])) == TYPE_CODE_XMETHOD)
-       {
-         /* Static xmethods are not supported yet.  */
-         gdb_assert (static_memfuncp == 0);
-         return call_xmethod (argvec[0], 1, argvec + 1);
-       }
-      else
-       return call_function_by_hand (argvec[0], nargs, argvec + 1);
+      return call_function_by_hand (argvec[0], nargs, argvec + 1);
     }
   throw_error (NOT_FOUND_ERROR,
                _("member function %s not found"), tstr);
index 9445f25..f4f0f05 100644 (file)
@@ -2594,6 +2594,18 @@ value_of_xmethod (struct xmethod_worker *worker)
   return worker->value;
 }
 
+/* Return the type of the result of TYPE_CODE_XMETHOD value METHOD.  */
+
+struct type *
+result_type_of_xmethod (struct value *method, int argc, struct value **argv)
+{
+  gdb_assert (TYPE_CODE (value_type (method)) == TYPE_CODE_XMETHOD
+             && method->lval == lval_xcallable && argc > 0);
+
+  return get_xmethod_result_type (method->location.xm_worker,
+                                 argv[0], argv + 1, argc - 1);
+}
+
 /* Call the xmethod corresponding to the TYPE_CODE_XMETHOD value METHOD.  */
 
 struct value *
index 21baa32..25107a4 100644 (file)
@@ -1080,7 +1080,10 @@ char *value_internal_function_name (struct value *);
 
 extern struct value *value_of_xmethod (struct xmethod_worker *);
 
-struct value *call_xmethod (struct value *function,
-                           int argc, struct value **argv);
+extern struct type *result_type_of_xmethod (struct value *method,
+                                           int argc, struct value **argv);
+
+extern struct value *call_xmethod (struct value *method,
+                                  int argc, struct value **argv);
 
 #endif /* !defined (VALUE_H) */
index fbf1779..3fe624e 100644 (file)
@@ -1 +1 @@
-7.9
+7.9.1
diff --git a/md5.sum b/md5.sum
index 1c18546..55a57cc 100644 (file)
--- a/md5.sum
+++ b/md5.sum
@@ -51,7 +51,7 @@ a11231531c5c3cd6e7babf06426a657e  bfd/doc/ChangeLog-9103
 9c29ea7f3f782cb53452b5d3d266fb9b  bfd/doc/bfdint.texi
 236e856bb13ee47adc5d7d253037640d  bfd/doc/bfdwin.texi
 37ba364fb34b96a1dbb55b0f6f612432  bfd/doc/init.texi
-844007a14a2fceb9f192dd697028f9c6  bfd/doc/bfdver.texi
+77147c92fc3e94066ed55e13f5175e09  bfd/doc/bfdver.texi
 f910f218438622b07bc2760b2aca068e  bfd/doc/bfd.texinfo
 51139f6af786e74446d01ec49807fc28  bfd/doc/elf.texi
 8196495ec881df172b578acd0e5f80ef  bfd/doc/Makefile.am
@@ -263,7 +263,7 @@ d714ee957aefa81619f03058d91b23cb  bfd/elfcore.h
 615e1fff5358f13fa157b374aa1351f3  bfd/elf32-tilepro.h
 1ded054093de910d9786c62bc4fe8cc6  bfd/stamp-h.in
 3ec78685fdfb115058efaed22c9809e9  bfd/aout-cris.c
-c171bc96f4598eb47add0a2898f8d30f  bfd/version.h
+05f0e0de007816d26c12aeb5d6167604  bfd/version.h
 c91cb52fb314519fb805028ef3fc795b  bfd/aout-ns32k.c
 81baf972ce2e5dc9c113cf33e0726c37  bfd/cpu-sh.c
 128d592cb50fc75240a0441ca0ca27ba  bfd/elfxx-tilegx.h
@@ -765,7 +765,7 @@ a1d4a9f9cc0889b776920167d21ade7b  gdb/sparc64nbsd-tdep.c
 75102680be05546de75c6c96b77b583a  gdb/bcache.h
 53cf114ff5719cd047da9d38dd318599  gdb/ChangeLog-2012
 8ac76c4a1389e02ab55f3fdf8db69234  gdb/psymtab.c
-d226b66cc0f7c157a1659d78681430d5  gdb/valarith.c
+6db4dd77be0192ecb2de8b4aff0875be  gdb/valarith.c
 70bd95e23c1bb6eb73c82dbd44e59472  gdb/solib-frv.c
 fe840f2163f9ebe06e13de0953368ceb  gdb/frame-unwind.c
 646783192d9ae3226cf46077243f8457  gdb/aix-thread.c
@@ -781,7 +781,7 @@ cb8274393a0cc44e23f67bc2a459ee0d  gdb/frame.c
 9e7a629e6eff16aed33cfee5a34ffc9d  gdb/i386-dicos-tdep.c
 e05e6309a1f76e02da169659ec5e2ead  gdb/gdbarch.sh
 05f54972e5ee6a7a77836c5ac984333e  gdb/tic6x-tdep.c
-c09e21356bd4f9251847da4f1ae99011  gdb/extension.h
+22c6a7782445f6fa4adbc96d16f66e8a  gdb/extension.h
 46bd067f6f851062484149eebabdf4b1  gdb/mips64obsd-tdep.c
 64c826710928f66234fea53251a3ea2a  gdb/tilegx-linux-nat.c
 d79f3e87bca0ee0dc08dc3c397bf2abe  gdb/linux-thread-db.c
@@ -1005,40 +1005,40 @@ b90742b695bf473c421bf75a8c810d1b  gdb/source.h
 7c85b024e1cc7a51faaea1c9ca71a1c4  gdb/darwin-nat.h
 d5d06eaf9b4d44aa442a4a281aa9aea4  gdb/doc/a4rc.sed
 cd5e3faa9bd1b684a73c7d527cdb4988  gdb/doc/filter-params.pl
-27b5a97e07a02aa56bedbb16857797e5  gdb/doc/gdb.info-6
+68d2f9da5f9451cac433893187da4b2e  gdb/doc/gdb.info-6
 7bfdb0765c5d050d204fbb30aeeba0d8  gdb/doc/stack_frame.eps
 2daa53916456ce35b6806c2883623b89  gdb/doc/Doxyfile-base.in
 fa1abec9272120122bf7638320e90d4c  gdb/doc/stabs.texinfo
 132df0593e237d8337cf0134804ca21e  gdb/doc/agentexpr.texi
 65ee16c0a68d8954d5892092576beb66  gdb/doc/observer.texi
-c9d37ad540d5146b4ab9c14752a531f5  gdb/doc/gdb.info-1
-adaa1c29678ae783077a860231a9b412  gdb/doc/gdb.info-4
-6baa76526a2531d7261686848e6b6b87  gdb/doc/gdb.info-2
-733039628335cea92b7991fad5b5a41a  gdb/doc/gdb.info-7
+081999e49ef1f82c9d63daccf859c410  gdb/doc/gdb.info-1
+f5f5885365d4610f9f872c0a8e8b8982  gdb/doc/gdb.info-4
+9743f5dd5180f924e4d15875f6380988  gdb/doc/gdb.info-2
+ce3254469f237ea3a767e33d42be135f  gdb/doc/gdb.info-7
 73ec71cd3b2e7f61bc530f19d4b35056  gdb/doc/lpsrc.sed
-b153a646e2021423e63003f22bcf7ace  gdb/doc/gdbserver.1
-ce97edbf3f364b05be3684e65c611a40  gdb/doc/gdbinit.5
+ec815701e4f13fdcc33f736dc37386ef  gdb/doc/gdbserver.1
+d2e9ffb0ee0fa872038f2a1e32cb2b97  gdb/doc/gdbinit.5
 553b7fe1bf4b5d8b96fdb8cd83503de1  gdb/doc/stack_frame.svg
 ab0fe311032294b952da80585b8b90e7  gdb/doc/fdl.texi
 524b402ee3657e3e2816db43131d4043  gdb/doc/Doxyfile-gdbserver.in
 6076d300a46651562d4ecd0604442414  gdb/doc/stack_frame.png
-ed34d0d62b17d677c9e8b105c86eb4c5  gdb/doc/gdb.info-3
+7efc1050f01a8fc1ef73cc20c3ced97c  gdb/doc/gdb.info-3
 85ce27a948be3709b3aa35643f9e6d15  gdb/doc/gdb.texinfo
 938187ce9976cbeb134b49335770152c  gdb/doc/Doxyfile-gdb-api.in
 705bf0b3fb65b3f7e3db4cc5d9ae8eba  gdb/doc/annotate.texinfo
 f81a0e00e0cb9e41b078069fb9bedb07  gdb/doc/stack_frame.txt
 b810a04376a10fc86a4f0ba99aab50cd  gdb/doc/stabs.info
-d7c736c17f5e4888ed01236774d85e99  gdb/doc/gdb.info-5
+53df54c75b48d8000cd3c02a3d72c046  gdb/doc/gdb.info-5
 bf96494e6e4d346175babd5ef9781882  gdb/doc/gpl.texi
 669fb3191fafb1ca7da855243682fe4e  gdb/doc/guile.texi
 be5469929c58735017a3a1e083554ac7  gdb/doc/Makefile.in
-2d52ce4345c852c9eddf05a7b2c6259f  gdb/doc/gdb.info
+f8698fc888330aa8a12fb83f838bbc50  gdb/doc/gdb.info
 df443225fa3e5719ca7e6925a7e633e0  gdb/doc/refcard.tex
-51f928aef51288aa002575df7e06ff0d  gdb/doc/python.texi
-2f229ed628a6cb702cd13f63e84149a2  gdb/doc/ChangeLog
+d2bcf4a1119be6ecdab32f18f2ce28f2  gdb/doc/python.texi
+aa28232ac8b3a9839ab1225fa29b918f  gdb/doc/ChangeLog
 8108dd8f906f2654fecc74958cf383db  gdb/doc/psrc.sed
-55d2e9bc08e139d483b241853422d6a3  gdb/doc/gdb.1
-c3139ef2f675f0f78ec60edee3f4e32d  gdb/doc/gcore.1
+7b4dbb8bf32d7946d6e4420f1e021fc9  gdb/doc/gdb.1
+ba2fd24b4590a9a4c2b8a27513aff3ef  gdb/doc/gcore.1
 0318d8ad8db63a0a006e284035045ba5  gdb/doc/annotate.info
 d606e873666ae0bc7bc7c84d6c9c2332  gdb/doc/Doxyfile-gdb-xref.in
 79278fc2f5486809779a9a8f8883d401  gdb/doc/doxy-index.in
@@ -1119,7 +1119,7 @@ ebe83df475f29d37d71caebe88afd02a  gdb/ui-file.c
 97b392a774a2c1ca9a70036199ca5a00  gdb/amd64-dicos-tdep.c
 a8d8854bf856b98332256bb96b38d858  gdb/linux-record.c
 c1b6958d3ce495eb21051d582a426200  gdb/progspace.c
-ca076c786b896e390c84908e4bf5a6ee  gdb/version.in
+e8da4b4ff5de784da25ab7b6da9c1f71  gdb/version.in
 a2509648a696577602fe842823c5dff2  gdb/arm-tdep.h
 2cf6ca3b47892c9cf549e62646567c6a  gdb/ppc64-tdep.c
 16ffccd377e58dac9711ca610609ef05  gdb/sparcnbsd-nat.c
@@ -1140,7 +1140,7 @@ b62c549ba6387152ba20c14307d24bda  gdb/inf-loop.c
 bf0ee72881541e5967ce27a9c29b3c37  gdb/mipsnbsd-tdep.h
 cb029bf8ddbfd4dcce86204ba7a7948c  gdb/p-lang.c
 1851bff0653201a488dcae18dde7efad  gdb/po/gdbtext
-8b2aca4cefa4faa5492f903690eda129  gdb/po/gdb.pot
+ff808a434f6f0dd9e7b9355c5263edf4  gdb/po/gdb.pot
 c6de4736a691dfc690f55e7b69880511  gdb/score-tdep.c
 30bea4b59de0130931035a46fb8c7f08  gdb/gnu-nat.c
 3db1059c60168d68684df8f0cd8c61c0  gdb/jit-reader.in
@@ -2074,7 +2074,7 @@ de1c8cd461a0603cf7600c7d598c62f2  gdb/testsuite/gdb.java/jprint.java
 4ed9b1d095345f729fa5c180544a79f1  gdb/testsuite/gdb.python/py-pp-maint.c
 4624139b71a43818a68d6922ad202b76  gdb/testsuite/gdb.python/py-pp-re-notag.exp
 2db47e6d29838ffc8b96dabce27fef00  gdb/testsuite/gdb.python/source1
-a7fd5f2ac012c6829f68fc8f71137fc4  gdb/testsuite/gdb.python/py-xmethods.py
+bb28991622dcd98f5f74b2d87143d7af  gdb/testsuite/gdb.python/py-xmethods.py
 720871aa12b9d7d76c5c499467ed77ed  gdb/testsuite/gdb.python/py-breakpoint.exp
 0d47196e435c7546054ee0f443ea68d7  gdb/testsuite/gdb.python/py-objfile-script.c
 5f2a14106984ed919fa12f9d8cd9d4b8  gdb/testsuite/gdb.python/py-inferior.c
@@ -2095,7 +2095,7 @@ b3402057c9f2e46816c282c0434c10a3  gdb/testsuite/gdb.python/py-caller-is.exp
 368512990d9d06b346f042d576dfd08f  gdb/testsuite/gdb.python/py-symtab.exp
 a4418bf48b1d8c2c93922eedc8426fe6  gdb/testsuite/gdb.python/py-explore.cc
 16bd737d59efe69a0b7bc40e3efcfdbe  gdb/testsuite/gdb.python/py-mi.exp
-ec964688d3fd4af00c8fcb447005dfc3  gdb/testsuite/gdb.python/py-xmethods.exp
+c2094d74a0fd6d1a711e374891ad8b78  gdb/testsuite/gdb.python/py-xmethods.exp
 4624139b71a43818a68d6922ad202b76  gdb/testsuite/gdb.python/py-pp-integral.exp
 104df18ecf00ee34171885f8708e2e5b  gdb/testsuite/gdb.python/py-pp-integral.py
 efcbbefe2a6177f1335f0a210260d4e5  gdb/testsuite/gdb.python/py-error.exp
@@ -2114,7 +2114,7 @@ b2a1cbdf6c1eb3e7655d5d5d8e7e2df9  gdb/testsuite/gdb.python/py-breakpoint.c
 cd662e462c77374d88b8b34a003b41ab  gdb/testsuite/gdb.python/py-infthread.exp
 d400e33253e9568983d3ea607152abfa  gdb/testsuite/gdb.python/py-prettyprint.py
 e3a353f9e9f3f2834a5ecd501042cd9c  gdb/testsuite/gdb.python/py-linetable.exp
-20e24cdb3fee000dad98f911f0baa23a  gdb/testsuite/gdb.python/py-pp-maint.py
+42564eb2452d352c556a9febe5211268  gdb/testsuite/gdb.python/py-pp-maint.py
 387632b8f22792e3c276615dd4f99036  gdb/testsuite/gdb.python/python-1.c
 a0a99850b216ffab1ee61e5668ab8d2a  gdb/testsuite/gdb.python/py-symbol.exp
 00079309aa20eb470d131df69cb0c926  gdb/testsuite/gdb.python/py-value-cc.cc
@@ -2123,6 +2123,7 @@ a0a99850b216ffab1ee61e5668ab8d2a  gdb/testsuite/gdb.python/py-symbol.exp
 86e246acca8993959033f2e7b993e3cf  gdb/testsuite/gdb.python/py-value-cc.exp
 3d57f0199efbead050ea859ce83ed3ca  gdb/testsuite/gdb.python/py-cmd.exp
 e4bd78663e655cacf0f8b9b2e0b62553  gdb/testsuite/gdb.python/py-typeprint.py
+1353affc8c7415075c7e36eea3d1c21b  gdb/testsuite/gdb.python/py-pp-registration.c
 15973ce51947517b97f39ea42dd7b110  gdb/testsuite/gdb.python/py-sync-interp.exp
 06d04a74576a820674b1c4d0cf5cf6d2  gdb/testsuite/gdb.python/py-frame-args.py
 ef99dbad1232f21dfd9a5bcf5b7bc8ca  gdb/testsuite/gdb.python/py-framefilter.py
@@ -2153,6 +2154,7 @@ e4e3c9741d8c4a64f9dc02a1a8bb87e1  gdb/testsuite/gdb.python/py-caller-is.c
 ab7d6412990c2550035df82cf9658539  gdb/testsuite/gdb.python/py-pp-re-notag.c
 bce404ad3b3efb8f97c64c4c7ff09c26  gdb/testsuite/gdb.python/py-framefilter-invalidarg.py
 70bb6fc8817d764dbbc74e2a009e339c  gdb/testsuite/gdb.python/py-lookup-type.exp
+6b060bd99df8ad5f94ce980764cdb4fe  gdb/testsuite/gdb.python/py-pp-registration.py
 3da274b968ba93b400c459ac5293cf21  gdb/testsuite/gdb.python/py-sync-interp.c
 373d7a430d53f676c0c26eb4cbabc518  gdb/testsuite/gdb.python/py-strfns.c
 1956bc8ecfe7ab9cb0fe0d65b19aaf14  gdb/testsuite/gdb.python/py-evsignal.exp
@@ -2183,6 +2185,7 @@ f739e39187c03fef7c68329a0e67c833  gdb/testsuite/gdb.python/py-value.c
 43ee8706c9a7d32e5e968070ed04cf01  gdb/testsuite/gdb.python/python.exp
 dd62e677888e132103ea63af41be7f06  gdb/testsuite/gdb.python/py-arch.c
 0408fed72b1aeddb53112fe4054b2b68  gdb/testsuite/gdb.python/py-events-shlib.c
+59522df75c88c9cdc40a165247fb0f9a  gdb/testsuite/gdb.python/py-pp-registration.exp
 eace3dbd325751086bd41ad6d0907588  gdb/testsuite/gdb.python/py-template.cc
 463ca9bfd3da6bb99fe10d5af8045930  gdb/testsuite/gdb.python/py-objfile-script-gdb.py
 3bb681ef4e46ca437f98b90f9d13729e  gdb/testsuite/gdb.python/py-evthreads.c
@@ -2298,7 +2301,7 @@ ac62951d4184285fd3177eb850fde952  gdb/testsuite/lib/go.exp
 a98106d9c54987aaad7b87c42af8e5dd  gdb/testsuite/lib/cell.exp
 fdd1b0ea9cb454d308f3efee2756042d  gdb/testsuite/lib/prelink-support.exp
 df8744826ffbabde8c11052b843200cc  gdb/testsuite/lib/objc.exp
-033b96d7f7ce1b1c6f31b234cbfa8691  gdb/testsuite/lib/pascal.exp
+64e7a2f54f855ffd606e5ee07d79bc2d  gdb/testsuite/lib/pascal.exp
 31a66ed13032102f0310311adfb6be44  gdb/testsuite/gdb.perf/single-step.py
 46ed67e1926c90beafa9f536ea651140  gdb/testsuite/gdb.perf/backtrace.py
 24ae7e2e1d006a137903c1b6a779081d  gdb/testsuite/gdb.perf/single-step.exp
@@ -2326,8 +2329,10 @@ f7a470d89013ace827ad986a22f6cae8  gdb/testsuite/gdb.pascal/hello.exp
 9f732c334d0238f828941355e522ada1  gdb/testsuite/gdb.pascal/print.exp
 fa3aa3195061a9c30e07f5077db719fa  gdb/testsuite/gdb.pascal/gdb11492.exp
 fc03015d2e3c9a37306ded2799bed248  gdb/testsuite/gdb.pascal/floats.exp
+cc5346610b6cb5f8181a641df50568a7  gdb/testsuite/gdb.pascal/case-insensitive-symbols.pas
 19990cb5b198325b185af673b5ee5b4f  gdb/testsuite/gdb.pascal/hello.pas
 ec053af70195cf70c46f47710946ea2a  gdb/testsuite/gdb.pascal/Makefile.in
+2e0e4e94d6ad5ab904cc46195a49500e  gdb/testsuite/gdb.pascal/case-insensitive-symbols.exp
 b4ae59b9bb0794a69841d92b9bce8a3e  gdb/testsuite/gdb.pascal/gdb11492.pas
 910b10bafe224b1101ee909a25e479a4  gdb/testsuite/gdb.pascal/types.exp
 02d09d7b370896b9fc8867b7ed1c7313  gdb/testsuite/gdb.pascal/floats.pas
@@ -2796,7 +2801,7 @@ b6c960a7464ac41d2268465a8a89b385  gdb/testsuite/gdb.ada/print_chars/pck.ads
 d086ce42ca2d4e1e87005d2bee8ee15b  gdb/testsuite/gdb.ada/print_chars/foo.adb
 c9f0eadb08ae6601e07e63ce47410138  gdb/testsuite/gdb.ada/ptype_arith_binop.exp
 e44ca1402f68837ab61acc2961bd9282  gdb/testsuite/gdb.ada/arr_arr.exp
-b5b528eb65a599dad9b6eeb894d1ded6  gdb/testsuite/ChangeLog
+a8852cfc6ecb1a0b732fe8c212b5f357  gdb/testsuite/ChangeLog
 00f1943eda306eea1225aa67d0716842  gdb/testsuite/gdb.hp/gdb.compat/average.c
 e7f3f9e11a3d8d3d64d297a16099f784  gdb/testsuite/gdb.hp/gdb.compat/xdb2.exp
 fbf537e72ce89db0e107c27b0339b49b  gdb/testsuite/gdb.hp/gdb.compat/xdb.c
@@ -4154,7 +4159,7 @@ adae21661830cc755ff5274534e762d4  gdb/nat/glibc_thread_db.h
 85a005cf811c96533cb081112507b197  gdb/event-top.h
 0672336892a008ef724e95c494f3d9f0  gdb/m68k-tdep.h
 6bf9816a018796e99d4c7a6087ee899b  gdb/hppanbsd-nat.c
-b0c8816ae7b8d343e5612f81f1c2be3c  gdb/p-exp.c
+449527e0e16ebdbc968e13878394c422  gdb/p-exp.c
 fc641b4ed94a6efbaae715afb43a0f50  gdb/ada-operator.def
 89ec946700d62b77b6d96c6b1b4e8060  gdb/doublest.h
 e70f423642b358e43eb63a6bc90c4440  gdb/rs6000-tdep.h
@@ -4166,7 +4171,7 @@ f442e91130be300a0c02ead823052dd5  gdb/python/py-newobjfileevent.c
 de859ec16579a6841a62708f067c723f  gdb/python/py-symtab.c
 46031e10b03f21722afaa7a195c7cee8  gdb/python/py-varobj.c
 3fd85f9e81466a4c32fd351da67d7c34  gdb/python/py-prettyprint.c
-fb153c0ced0a54b429192e95f106b3a5  gdb/python/python-internal.h
+0250eced645246b12834b2dc5925c43a  gdb/python/python-internal.h
 0bbd6fed59b979685ebe4cd1b040bb3b  gdb/python/py-finishbreakpoint.c
 afb00927983ce834b553cd4b764514bc  gdb/python/py-infthread.c
 a5a6de0cbd223d258b3cbc990897bbb5  gdb/python/py-linetable.c
@@ -4179,15 +4184,15 @@ eb4469b654ce0aee7c5ca521f1cf333d  gdb/python/py-signalevent.c
 1858399eace6cad19cbd4da1ea52fe7a  gdb/python/py-threadevent.c
 c9122f5f8fee0d665f4e06e3995f82ff  gdb/python/py-auto-load.c
 a74371cb67750394b7567c199a5aa87e  gdb/python/py-breakpoint.c
-a38017640c3f553d280275e044df15da  gdb/python/py-xmethods.c
+982d024a39519b779e7d5c4ef735415a  gdb/python/py-xmethods.c
 71453cda948c762fa36fd673d70724b9  gdb/python/lib/gdb/function/caller_is.py
 c06b57b1bc52d4071b158cce9c4d6d84  gdb/python/lib/gdb/function/strfns.py
 48cfc29fc0f7ed269d8412f06b43af9d  gdb/python/lib/gdb/function/__init__.py
 25965e75d146f9c33e7bb45254754509  gdb/python/lib/gdb/prompt.py
 bc0b67bcddb9772178be38d7ad77ed95  gdb/python/lib/gdb/FrameDecorator.py
 9354c6070f7d46c5c0554408ad1cb981  gdb/python/lib/gdb/frames.py
-67bb0fcde968652b5df57bd1f69e99d6  gdb/python/lib/gdb/printing.py
-5c5fb904615fd73c8f982e3c38f4813b  gdb/python/lib/gdb/xmethod.py
+05125a1ea2794b58c644490c393744a8  gdb/python/lib/gdb/printing.py
+0405892899d06e991f51ebf3bc2e27da  gdb/python/lib/gdb/xmethod.py
 ce5f5c3404b577e684de2f550735260e  gdb/python/lib/gdb/types.py
 2276cf78f34c3fb48845554ec011e3ed  gdb/python/lib/gdb/printer/bound_registers.py
 4c7f88cc6f8d34f35bd76cf869b4a2fa  gdb/python/lib/gdb/printer/__init__.py
@@ -4216,7 +4221,7 @@ e5d6acdd18f7c3d056df892314844920  gdb/python/py-stopevent.c
 42ce32554a846a73a0381f535d9beb77  gdb/python/py-framefilter.c
 f185cafcd4d24b700a743cf45f10f002  gdb/python/py-evtregistry.c
 459ad8e2be3dd7311d2510811ceb5c18  gdb/python/py-symbol.c
-760cf22186bb1ea5d748a27442f1daac  gdb/python/python.c
+ae2f4e89e76edb7a0059ed58c4476665  gdb/python/python.c
 f47bbcf0019e96b621c1e5157116c48f  gdb/python/py-bpevent.c
 af2f0181f2b6288a18527a2ec751ac29  gdb/python/py-value.c
 be45ac04057fb126de4afdf75e48eead  gdb/python/py-block.c
@@ -4257,7 +4262,7 @@ fa4d4a5e6548efc87b0ad233cdc75e33  gdb/syscalls/bfin-linux.xml
 c776e934c2fc6e6d6bb3ead72e9b948c  gdb/syscalls/mips-n64-linux.xml
 0e4addb12fca03ff90295db2b6faff3a  gdb/syscalls/ppc-linux.xml
 1d0176bedd197698b246dc9b2f436002  gdb/target.h
-0313da8d6df458c76efeb79891d09717  gdb/eval.c
+7ecfd180af068bc3c6c90bc7d579674b  gdb/eval.c
 7a379592e016d2c699c2fc0f6515a38b  gdb/environ.c
 595449ae7326cc107d137db45fcd5705  gdb/p-valprint.c
 2252bb0c6fc65d90455073084e7f07c1  gdb/dummy-frame.c
@@ -4303,7 +4308,7 @@ e312697f91f7e979bd7b72c0c444c8dc  gdb/i386v4-nat.c
 838a24f1266261a20cbcc5879ed0fa7a  gdb/proc-utils.h
 07919c78242d907b1baa0a763452c82d  gdb/m88k-tdep.c
 6c22781d3051deca0ffa8e6f7df2b78f  gdb/macrotab.c
-485b5b2b730e63562b5deb2ac5e10616  gdb/value.c
+1bdae9465224c63ba2f862049edc2a8e  gdb/value.c
 bcec3826671d12533f878f11a653baf7  gdb/cli-out.c
 85a321e77a48e83464eeadfe9c83bd79  gdb/unwind_stop_reasons.def
 7d27ea1c3906ad523c4b6904064e0ef8  gdb/copying.c
@@ -4350,7 +4355,7 @@ bd09c5481e9864eb233019724db56d2d  gdb/tui/tui-disasm.h
 a59256f94107464eb22244ac56488cd5  gdb/tui/tui-layout.h
 1eeb140be73efd95fc0ecf6ee62f1b0a  gdb/tui/tui-windata.c
 ba002050d53fa8fcede495e70a5a7650  gdb/tui/tui-win.c
-88078826effcefb013f406fe63247c9b  gdb/tui/tui-io.c
+bd1d748392890bd49419fe53d527b76f  gdb/tui/tui-io.c
 b4ca7b9a82a92e88dcf91d8b354c4b4d  gdb/tui/tui-io.h
 4358ae61fcf053d4985cdf7d688973af  gdb/tui/tui-hooks.h
 4dc3aae622817a9a37c20369f72a575a  gdb/tui/tui-windata.h
@@ -4504,7 +4509,7 @@ a8c79617c42f7d89691e74a0609033dd  gdb/mi/mi-parse.h
 cf022efd3f0c63bfd1f47a3fb8452d5d  gdb/mi/mi-cmd-target.c
 53b56ee52f14abb1a8d378dca4c08cab  gdb/mi/mi-symbol-cmds.c
 99349b9f515a8d32c82ab6078d9655b0  gdb/i387-tdep.h
-55df8f241cff999630cb400dab64e47e  gdb/extension-priv.h
+b01791af58a9c31374e8400c80e2ba5c  gdb/extension-priv.h
 cdad8b36b7f4ad6aab737db493a06815  gdb/d-exp.c
 2538e5677890f3eb3b1b7f496e500ba1  gdb/gdb_obstack.h
 ac3684c4a3658e1fd2ef5be5f457ec12  gdb/CONTRIBUTE
@@ -4924,7 +4929,7 @@ b87fb73d09b5d822793a8e28c76430b0  gdb/arm-linux-tdep.h
 b555e33ed0ce581b706387f558de03b8  gdb/vaxbsd-nat.c
 e336b2fe9efb3c7cb0327eeba00535ac  gdb/tracepoint.h
 9ae3d63908f7d5735cc7cc95715d9447  gdb/bfd-target.h
-62f561962b302747569f4b517351e538  gdb/value.h
+9bb697730645fdc28ba83a1c2a2944d4  gdb/value.h
 547447b613e0acd7cbdfa7a154bd198e  gdb/sparc64-nat.c
 f1e70b7629a655908002488f39cfc407  gdb/spu-tdep.h
 5052b57de2fd8b3515777bb814bcd394  gdb/ChangeLog-1999
@@ -4933,7 +4938,7 @@ fc5add2ae5b4d8e20b81b70008807670  gdb/xtensa-xtregs.c
 cbd451a00769a9c8c7c6cd52f55b861b  gdb/sparcobsd-tdep.c
 8584f02f7f9be53aea2f02b767f0e1b6  gdb/sparc64-tdep.h
 9b14783e7d2ce7c31dd8d8050d028e42  gdb/macroexp.c
-baf2ef484ed1db56707de1f2e39fae91  gdb/ChangeLog
+e7df5a1729fa3d8c73f56716ca55273f  gdb/ChangeLog
 eb891b3302af5938339826cf5d63cc84  gdb/amd64-windows-tdep.c
 f34edbe85fc59a2124c5d67adf01558f  gdb/lm32-tdep.c
 244fef9b90f850e92543bee8ca746287  gdb/xtensa-tdep.h
@@ -4945,7 +4950,7 @@ e7bcf9181c5d8fd35e48c236542c942e  gdb/tic6x-tdep.h
 abfe9b271fad460fa9aa5e382e867bc4  gdb/proc-service.list
 dded71f6f4dcda3d409ba83627d0b860  gdb/ctf.c
 2788d751ebfad04954c20ccdd1247d90  gdb/go-lang.c
-2eaabe0aec5bddcad6f1231f8a491cb1  gdb/p-exp.y
+72504454f40768d8f351fdad3f1fa976  gdb/p-exp.y
 389761a7a837eecddc6e4e779ea852ff  gdb/hppaobsd-tdep.c
 01584de647229e92a166ee881b50fb5d  gdb/acx_configure_dir.m4
 5ec8a13039f178b86804ff04e7cbdf99  gdb/ChangeLog-1998
@@ -5211,22 +5216,22 @@ be04f4bf35ddca6beee6d0ad2b02bb72  gdb/top.h
 cf67df429770d18aa84c9c486e375643  gdb/gdb_buildall.sh
 229cd562e64a42c360edf5a3bd18384c  gdb/aarch64-newlib-tdep.c
 7f386726e3a7d1147912a79ef26f0107  gdb/compile/compile.h
-354fb6bcea30ca0252a4e20ea898f3fa  gdb/compile/compile-c-support.c
+858389117d3091deb8d6f896230e31ad  gdb/compile/compile-c-support.c
 847a175f0c0ea90ae7e26a8dee6b0de9  gdb/compile/compile-loc2c.c
 ff817c42642e32ef226c6c7f3e0ba5d6  gdb/compile/compile-object-load.h
 9e86dab14de5021921910bc306ff4f05  gdb/compile/compile-c-symbols.c
 fc102a96ad8edaf8880b122cf3238ceb  gdb/compile/compile-c-types.c
 16b1d86df45df73b8f88e499eb82c5d4  gdb/compile/compile-object-run.c
-d410e3a0091a2efa2b5fa76d6ba78fd3  gdb/compile/compile-object-load.c
+c74ba78d65af10c9d66a47f69528a3f7  gdb/compile/compile-object-load.c
 cdc069d810af4b919cffe24cb8b462e8  gdb/compile/compile-object-run.h
-4c0991b63e5802ed260c594942e9a6d8  gdb/compile/compile.c
+bdde4058350bfd311603ffd2f92cbc43  gdb/compile/compile.c
 2cdbb6a9f01591a064ebabfb6814cbb6  gdb/compile/compile-internal.h
 1da199c35a0b0813864b359284faf43b  gdb/record.h
 6cf7644732efb0f5e3bef081a615a508  gdb/osabi.c
 0f4eb7ce68b0260e7224b93ec0a0f49a  gdb/configure.ac
 6d6af0cb7ab4fd37314aa8af76ae26dc  gdb/dsrec.c
 9688ad1dae08e48e11479e5199bf97f0  gdb/sol2-tdep.h
-bd8d2cbad3d9df81721b5ebb0c33add9  gdb/extension.c
+70d830386e9f1486711486957d5e53db  gdb/extension.c
 98dd49a000a08466a7ade390db24af5d  gdb/exceptions.c
 140e56857d24d41c479425352cb12107  gdb/target.c
 f9fa47f2a7b03a981f46c92f0c09e9eb  gdb/c-lang.c
@@ -5260,7 +5265,7 @@ d91bdf5f954032fd8cc2f4b14bb1b861  gdb/ia64-hpux-tdep.h
 b4133d1e27b97096efb8d84ee2b7d3eb  gdb/ppcnbsd-tdep.h
 f5615bbb876f5d6b8ff495ea635f223d  gdb/f-valprint.c
 dbb1e658dadce3abe3a3f62c5a6e8f61  gdb/ui-out.h
-142916870d4c8a145114a385b8b963f5  gdb/NEWS
+73adc989d7a8b606e671f658b53da8df  gdb/NEWS
 299a2462d01273cb6f691fcb72806a8b  gdb/frame-base.h
 7737ea42a6ce270e5fd94a2c9fdf4e13  gdb/rs6000-nat.c
 387ba81ef81d0fd1fc5601c1878d3a0a  gdb/m32c-tdep.c
@@ -5360,7 +5365,7 @@ cd3909426ad79de9de798fc760d9f157  gdb/solib-target.h
 f96422d3bd13c79b9a6dd3568e6af6bf  gdb/cp-support.c
 4f679a7139bce3c7f614839ce149da18  gdb/ia64-tdep.c
 60b3ed33f88620426e0d748992aa6f69  gdb/cp-name-parser.y
-618d8e7823d485a6efa1f4af8f0a7cf2  gdb/iq2000-tdep.c
+2994a2e0f3f51227e03b9340ab419c73  gdb/iq2000-tdep.c
 18bf344584079574ea320100a2e2b5f8  gdb/event-loop.h
 9bcb9f91853068b6c4d1c78dd7aa1610  gdb/shnbsd-tdep.c
 d32239bcb673463ab874e80d47fae504  gdb/COPYING