Mercurial > emacs
annotate lisp/gud.el @ 51242:661e2fe7e775
(autoconf-mode setups): Recognise AH_ and AU_ entries in "(autoconf)Autoconf
Macro Index". Add "(autoconf)M4 Macro Index" and "(autoconf)Autotest Macro
Index". Remove duplicate copy of "(automake)Macro and Variable Index". Keep
automake after all autoconf possibilities, so as to prefer those.
author | Juanma Barranquero <lekktu@gmail.com> |
---|---|
date | Sun, 25 May 2003 21:03:57 +0000 |
parents | f71d1c355871 |
children | 6481024d295f |
rev | line source |
---|---|
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1 ;;; gud.el --- Grand Unified Debugger mode for running GDB and other debuggers |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
2 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
3 ;; Author: Eric S. Raymond <esr@snark.thyrsus.com> |
4818 | 4 ;; Maintainer: FSF |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
5 ;; Keywords: unix, tools |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
6 |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
7 ;; Copyright (C) 1992,93,94,95,96,1998,2000,2002 Free Software Foundation, Inc. |
460 | 8 |
9 ;; This file is part of GNU Emacs. | |
10 | |
11 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
12 ;; it under the terms of the GNU General Public License as published by | |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
13 ;; the Free Software Foundation; either version 2, or (at your option) |
460 | 14 ;; any later version. |
15 | |
16 ;; GNU Emacs is distributed in the hope that it will be useful, | |
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
460 | 19 ;; GNU General Public License for more details. |
20 | |
21 ;; You should have received a copy of the GNU General Public License | |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
22 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
14169 | 23 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
24 ;; Boston, MA 02111-1307, USA. | |
460 | 25 |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
26 ;;; Commentary: |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
27 |
460 | 28 ;; The ancestral gdb.el was by W. Schelter <wfs@rascal.ics.utexas.edu> |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
29 ;; It was later rewritten by rms. Some ideas were due to Masanobu. |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
30 ;; Grand Unification (sdb/dbx support) by Eric S. Raymond <esr@thyrsus.com> |
460 | 31 ;; The overloading code was then rewritten by Barry Warsaw <bwarsaw@cen.com>, |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
32 ;; who also hacked the mode to use comint.el. Shane Hartman <shane@spr.com> |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
33 ;; added support for xdb (HPUX debugger). Rick Sladkey <jrs@world.std.com> |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
34 ;; wrote the GDB command completion code. Dave Love <d.love@dl.ac.uk> |
10217
d112e49af18b
(gdb): Correct tbreak doc string.
Richard M. Stallman <rms@gnu.org>
parents:
10203
diff
changeset
|
35 ;; added the IRIX kluge, re-implemented the Mips-ish variant and added |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
36 ;; a menu. Brian D. Carlstrom <bdc@ai.mit.edu> combined the IRIX kluge with |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
37 ;; the gud-xdb-directories hack producing gud-dbx-directories. Derek L. Davies |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
38 ;; <ddavies@world.std.com> added support for jdb (Java debugger.) |
460 | 39 |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
40 ;;; Code: |
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
41 |
460 | 42 (require 'comint) |
923 | 43 (require 'etags) |
460 | 44 |
45 ;; ====================================================================== | |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
46 ;; GUD commands must be visible in C buffers visited by GUD |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
47 |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
48 (defgroup gud nil |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
49 "Grand Unified Debugger mode for gdb and other debuggers under Emacs. |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
50 Supported debuggers include gdb, sdb, dbx, xdb, perldb, pdb (Python), jdb, and bash." |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
51 :group 'unix |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
52 :group 'tools) |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
53 |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
54 |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
55 (defcustom gud-key-prefix "\C-x\C-a" |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
56 "Prefix of all GUD commands valid in C buffers." |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
57 :type 'string |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
58 :group 'gud) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
59 |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
60 (global-set-key (concat gud-key-prefix "\C-l") 'gud-refresh) |
7741
347191d7ca7d
Use ctl-x-map to bind C-x SPC.
Richard M. Stallman <rms@gnu.org>
parents:
7461
diff
changeset
|
61 (define-key ctl-x-map " " 'gud-break) ;; backward compatibility hack |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
62 |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
63 (defvar gud-marker-filter nil) |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
64 (put 'gud-marker-filter 'permanent-local t) |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
65 (defvar gud-find-file nil) |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
66 (put 'gud-find-file 'permanent-local t) |
460 | 67 |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
68 (defun gud-marker-filter (&rest args) |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
69 (apply gud-marker-filter args)) |
460 | 70 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
71 (defvar gud-minor-mode nil) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
72 (put 'gud-minor-mode 'permanent-local t) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
73 |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
74 (defvar gud-keep-buffer nil) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
75 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
76 (defun gud-symbol (sym &optional soft minor-mode) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
77 "Return the symbol used for SYM in MINOR-MODE. |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
78 MINOR-MODE defaults to `gud-minor-mode. |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
79 The symbol returned is `gud-<MINOR-MODE>-<SYM>'. |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
80 If SOFT is non-nil, returns nil if the symbol doesn't already exist." |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
81 (unless (or minor-mode gud-minor-mode) (error "Gud internal error")) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
82 (funcall (if soft 'intern-soft 'intern) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
83 (format "gud-%s-%s" (or minor-mode gud-minor-mode) sym))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
84 |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
85 (defun gud-val (sym &optional minor-mode) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
86 "Return the value of `gud-symbol' SYM. Default to nil." |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
87 (let ((sym (gud-symbol sym t minor-mode))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
88 (if (boundp sym) (symbol-value sym)))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
89 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
90 (defvar gud-running nil |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
91 "Non-nil if debuggee is running. |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
92 Used to grey out relevant toolbar icons.") |
10448
ec596f12f13f
(gud-gdb-find-file): Propagate debug menu to found buffers.
Richard M. Stallman <rms@gnu.org>
parents:
10447
diff
changeset
|
93 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
94 (easy-mmode-defmap gud-menu-map |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
95 '(([refresh] "Refresh" . gud-refresh) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
96 ([run] menu-item "Run" gud-run |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
97 :enable (and (not gud-running) |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
98 (memq gud-minor-mode '(gdba gdb jdb)))) |
49150
7ae18fc8cd2f
(gud-menu-map, gud-tool-bar-map, gdb): Change gud-goto to gud-until.
Nick Roberts <nickrob@snap.net.nz>
parents:
49146
diff
changeset
|
99 ([goto] menu-item "Continue to selection" gud-until |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
100 :enable (and (not gud-running) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
101 (memq gud-minor-mode '(gdba gdb)))) |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
102 ([remove] menu-item "Remove Breakpoint" gud-remove |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
103 :enable (not gud-running)) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
104 ([tbreak] menu-item "Temporary Breakpoint" gud-tbreak |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
105 :enable (memq gud-minor-mode '(gdba gdb sdb xdb bashdb))) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
106 ([break] menu-item "Set Breakpoint" gud-break |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
107 :enable (not gud-running)) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
108 ([up] menu-item "Up Stack" gud-up |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
109 :enable (and (not gud-running) |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
110 (memq gud-minor-mode |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
111 '(gdba gdb dbx xdb jdb pdb bashdb)))) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
112 ([down] menu-item "Down Stack" gud-down |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
113 :enable (and (not gud-running) |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
114 (memq gud-minor-mode |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
115 '(gdba gdb dbx xdb jdb pdb bashdb)))) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
116 ([print] menu-item "Print Expression" gud-print |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
117 :enable (not gud-running)) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
118 ([display] menu-item "Display Expression" gud-display |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
119 :enable (and (not gud-running) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
120 (eq gud-minor-mode 'gdba))) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
121 ([finish] menu-item "Finish Function" gud-finish |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
122 :enable (and (not gud-running) |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
123 (memq gud-minor-mode |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
124 '(gdba gdb xdb jdb pdb bashdb)))) |
51060
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
125 ([stepi] menu-item "Step Instruction" gud-stepi |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
126 :enable (and (not gud-running) |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
127 (memq gud-minor-mode |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
128 '(gdba gdb dbx)))) |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
129 ([nexti] menu-item "Next Instruction" gud-nexti |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
130 :enable (and (not gud-running) |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
131 (memq gud-minor-mode |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
132 '(gdba gdb)))) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
133 ([step] menu-item "Step Line" gud-step |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
134 :enable (not gud-running)) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
135 ([next] menu-item "Next Line" gud-next |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
136 :enable (not gud-running)) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
137 ([cont] menu-item "Continue" gud-cont |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
138 :enable (not gud-running))) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
139 "Menu for `gud-mode'." |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
140 :name "Gud") |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
141 |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
142 (easy-mmode-defmap gud-minor-mode-map |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
143 `(([menu-bar debug] . ("Gud" . ,gud-menu-map))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
144 "Map used in visited files.") |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
145 |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
146 (let ((m (assq 'gud-minor-mode minor-mode-map-alist))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
147 (if m (setcdr m gud-minor-mode-map) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
148 (push (cons 'gud-minor-mode gud-minor-mode-map) minor-mode-map-alist))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
149 |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
150 (defvar gud-mode-map |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
151 ;; Will inherit from comint-mode via define-derived-mode. |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
152 (make-sparse-keymap) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
153 "`gud-mode' keymap.") |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
154 |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
155 (defvar gud-tool-bar-map |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
156 (if (display-graphic-p) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
157 (let ((map (make-sparse-keymap))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
158 (dolist (x '((gud-break . "gud-break") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
159 (gud-remove . "gud-remove") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
160 (gud-print . "gud-print") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
161 (gud-display . "gud-display") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
162 (gud-run . "gud-run") |
49150
7ae18fc8cd2f
(gud-menu-map, gud-tool-bar-map, gdb): Change gud-goto to gud-until.
Nick Roberts <nickrob@snap.net.nz>
parents:
49146
diff
changeset
|
163 (gud-until . "gud-until") |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
164 (gud-cont . "gud-cont") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
165 (gud-step . "gud-step") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
166 (gud-next . "gud-next") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
167 (gud-finish . "gud-finish") |
51060
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
168 (gud-stepi . "gud-stepi") |
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
169 (gud-nexti . "gud-nexti") |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
170 (gud-up . "gud-up") |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
171 (gud-down . "gud-down")) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
172 map) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
173 (tool-bar-local-item-from-menu |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
174 (car x) (cdr x) map gud-minor-mode-map))))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
175 |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
176 (defun gud-file-name (f) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
177 "Transform a relative file name to an absolute file name. |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
178 Uses `gud-<MINOR-MODE>-directories' to find the source files." |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
179 (if (file-exists-p f) (expand-file-name f) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
180 (let ((directories (gud-val 'directories)) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
181 (result nil)) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
182 (while directories |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
183 (let ((path (expand-file-name f (car directories)))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
184 (if (file-exists-p path) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
185 (setq result path |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
186 directories nil))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
187 (setq directories (cdr directories))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
188 result))) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
189 |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
190 (defun gud-find-file (file) |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
191 ;; Don't get confused by double slashes in the name that comes from GDB. |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
192 (while (string-match "//+" file) |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
193 (setq file (replace-match "/" t t file))) |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
194 (let ((minor-mode gud-minor-mode) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
195 (buf (funcall (or gud-find-file 'gud-file-name) file))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
196 (when (stringp buf) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
197 (setq buf (and (file-readable-p buf) (find-file-noselect buf 'nowarn)))) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
198 (when buf |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
199 ;; Copy `gud-minor-mode' to the found buffer to turn on the menu. |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
200 (with-current-buffer buf |
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
201 (set (make-local-variable 'gud-minor-mode) minor-mode) |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
202 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
203 (make-local-variable 'gud-keep-buffer)) |
48571
0513d8116258
(gdb-running): New variable.
Nick Roberts <nickrob@snap.net.nz>
parents:
48299
diff
changeset
|
204 buf))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
205 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
206 ;; ====================================================================== |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
207 ;; command definition |
460 | 208 |
209 ;; This macro is used below to define some basic debugger interface commands. | |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
210 ;; Of course you may use `gud-def' with any other debugger command, including |
1255 | 211 ;; user defined ones. |
212 | |
213 ;; A macro call like (gud-def FUNC NAME KEY DOC) expands to a form | |
214 ;; which defines FUNC to send the command NAME to the debugger, gives | |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
215 ;; it the docstring DOC, and binds that function to KEY in the GUD |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
216 ;; major mode. The function is also bound in the global keymap with the |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
217 ;; GUD prefix. |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
218 |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
219 (defmacro gud-def (func cmd key &optional doc) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
220 "Define FUNC to be a command sending STR and bound to KEY, with |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
221 optional doc string DOC. Certain %-escapes in the string arguments |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
222 are interpreted specially if present. These are: |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
223 |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
224 %f name (without directory) of current source file. |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
225 %F name (without directory or extension) of current source file. |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
226 %d directory of current source file. |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
227 %l number of current source line |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
228 %e text of the C lvalue or function-call expression surrounding point. |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
229 %a text of the hexadecimal address surrounding point |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
230 %p prefix argument to the command (if any) as a number |
460 | 231 |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
232 The `current' source file is the file of the current buffer (if |
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
233 we're in a C file) or the source file current at the last break or |
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
234 step (if we're in the GUD buffer). |
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
235 The `current' line is that of the current buffer (if we're in a |
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
236 source file) or the source line number at the last break or step (if |
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
237 we're in the GUD buffer)." |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
238 `(progn |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
239 (defun ,func (arg) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
240 ,@(if doc (list doc)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
241 (interactive "p") |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
242 ,(if (stringp cmd) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
243 `(gud-call ,cmd arg) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
244 cmd)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
245 ,(if key `(local-set-key ,(concat "\C-c" key) ',func)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
246 ,(if key `(global-set-key (vconcat gud-key-prefix ,key) ',func)))) |
460 | 247 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
248 ;; Where gud-display-frame should put the debugging arrow; a cons of |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
249 ;; (filename . line-number). This is set by the marker-filter, which scans |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
250 ;; the debugger's output for indications of the current program counter. |
1275
68f025a5fdaa
* gud.el (gud-last-frame): Added defvar for this.
Jim Blandy <jimb@redhat.com>
parents:
1274
diff
changeset
|
251 (defvar gud-last-frame nil) |
68f025a5fdaa
* gud.el (gud-last-frame): Added defvar for this.
Jim Blandy <jimb@redhat.com>
parents:
1274
diff
changeset
|
252 |
3646
4b34cbec2058
* gud.el (gud-last-last-frame): New variable.
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
253 ;; Used by gud-refresh, which should cause gud-display-frame to redisplay |
4b34cbec2058
* gud.el (gud-last-last-frame): New variable.
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
254 ;; the last frame, even if it's been called before and gud-last-frame has |
4b34cbec2058
* gud.el (gud-last-last-frame): New variable.
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
255 ;; been set to nil. |
4335
907bf380e92e
* gud.el (gud-last-last-frame): Specify initial value. `dbx'
Jim Blandy <jimb@redhat.com>
parents:
4298
diff
changeset
|
256 (defvar gud-last-last-frame nil) |
3646
4b34cbec2058
* gud.el (gud-last-last-frame): New variable.
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
257 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
258 ;; All debugger-specific information is collected here. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
259 ;; Here's how it works, in case you ever need to add a debugger to the mode. |
460 | 260 ;; |
261 ;; Each entry must define the following at startup: | |
262 ;; | |
263 ;;<name> | |
264 ;; comint-prompt-regexp | |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
265 ;; gud-<name>-massage-args |
460 | 266 ;; gud-<name>-marker-filter |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
267 ;; gud-<name>-find-file |
460 | 268 ;; |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
269 ;; The job of the massage-args method is to modify the given list of |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
270 ;; debugger arguments before running the debugger. |
477 | 271 ;; |
272 ;; The job of the marker-filter method is to detect file/line markers in | |
273 ;; strings and set the global gud-last-frame to indicate what display | |
274 ;; action (if any) should be triggered by the marker. Note that only | |
3591
507f64624555
Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents:
3551
diff
changeset
|
275 ;; whatever the method *returns* is displayed in the buffer; thus, you |
477 | 276 ;; can filter the debugger's output, interpreting some and passing on |
277 ;; the rest. | |
278 ;; | |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
279 ;; The job of the find-file method is to visit and return the buffer indicated |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
280 ;; by the car of gud-tag-frame. This may be a file name, a tag name, or |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
281 ;; something else. |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
282 |
460 | 283 ;; ====================================================================== |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
284 ;; speedbar support functions and variables. |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
285 (eval-when-compile (require 'speedbar)) ;For speedbar-with-attached-buffer. |
22734
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
286 |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
287 (defvar gud-last-speedbar-buffer nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
288 "The last GUD buffer used.") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
289 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
290 (defvar gud-last-speedbar-stackframe nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
291 "Description of the currently displayed GUD stack. |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
292 t means that there is no stack, and we are in display-file mode.") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
293 |
22734
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
294 (defvar gud-speedbar-key-map nil |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
295 "Keymap used when in the buffers display mode.") |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
296 |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
297 (defun gud-install-speedbar-variables () |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
298 "Install those variables used by speedbar to enhance gud/gdb." |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
299 (if gud-speedbar-key-map |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
300 nil |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
301 (setq gud-speedbar-key-map (speedbar-make-specialized-keymap)) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
302 |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
303 (define-key gud-speedbar-key-map "j" 'speedbar-edit-line) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
304 (define-key gud-speedbar-key-map "e" 'speedbar-edit-line) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
305 (define-key gud-speedbar-key-map "\C-m" 'speedbar-edit-line))) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
306 |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
307 (defvar gud-speedbar-menu-items |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
308 ;; Note to self. Add expand, and turn off items when not available. |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
309 '(["Jump to stack frame" speedbar-edit-line t]) |
42706 | 310 "Additional menu items to add to the speedbar frame.") |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
311 |
22734
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
312 ;; Make sure our special speedbar mode is loaded |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
313 (if (featurep 'speedbar) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
314 (gud-install-speedbar-variables) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
315 (add-hook 'speedbar-load-hook 'gud-install-speedbar-variables)) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
316 |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
317 (defun gud-speedbar-buttons (buffer) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
318 "Create a speedbar display based on the current state of GUD. |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
319 If the GUD BUFFER is not running a supported debugger, then turn |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
320 off the specialized speedbar mode." |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
321 (if (and (save-excursion (goto-char (point-min)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
322 (looking-at "Current Stack")) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
323 (equal gud-last-last-frame gud-last-speedbar-stackframe)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
324 nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
325 (setq gud-last-speedbar-buffer buffer) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
326 (let* ((minor-mode (with-current-buffer buffer gud-minor-mode)) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
327 (frames |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
328 (cond ((memq minor-mode '(gdba gdb)) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
329 (gud-gdb-get-stackframe buffer)) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
330 ;; Add more debuggers here! |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
331 (t |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
332 (speedbar-remove-localized-speedbar-support buffer) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
333 nil)))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
334 (erase-buffer) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
335 (if (not frames) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
336 (insert "No Stack frames\n") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
337 (insert "Current Stack:\n")) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
338 (while frames |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
339 (insert (nth 1 (car frames)) ":\n") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
340 (if (= (length (car frames)) 2) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
341 (progn |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
342 ; (speedbar-insert-button "[?]" |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
343 ; 'speedbar-button-face |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
344 ; nil nil nil t) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
345 (speedbar-insert-button (car (car frames)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
346 'speedbar-directory-face |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
347 nil nil nil t)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
348 ; (speedbar-insert-button "[+]" |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
349 ; 'speedbar-button-face |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
350 ; 'speedbar-highlight-face |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
351 ; 'gud-gdb-get-scope-data |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
352 ; (car frames) t) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
353 (speedbar-insert-button (car (car frames)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
354 'speedbar-file-face |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
355 'speedbar-highlight-face |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
356 (cond ((memq minor-mode '(gdba gdb)) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
357 'gud-gdb-goto-stackframe) |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
358 (t (error "Should never be here"))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
359 (car frames) t)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
360 (setq frames (cdr frames))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
361 ; (let ((selected-frame |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
362 ; (cond ((eq ff 'gud-gdb-find-file) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
363 ; (gud-gdb-selected-frame-info buffer)) |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
364 ; (t (error "Should never be here")))))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
365 ) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
366 (setq gud-last-speedbar-stackframe gud-last-last-frame))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
367 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
368 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
369 ;; ====================================================================== |
460 | 370 ;; gdb functions |
371 | |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
372 ;; History of argument lists passed to gdb. |
3930
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
373 (defvar gud-gdb-history nil) |
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
374 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
375 (defcustom gud-gdb-command-name "gdb --fullname" |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
376 "Default command to execute an executable under the GDB debugger." |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
377 :type 'string |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
378 :group 'gud) |
460 | 379 |
11960
5d3f2639cf3a
(gud-gdb-marker-regexp): New var. Use path-separator.
Karl Heuer <kwzh@gnu.org>
parents:
11930
diff
changeset
|
380 (defvar gud-gdb-marker-regexp |
16843
a94faa952a55
(gud-gdb-marker-regexp): Use colon always, not path-separator.
Richard M. Stallman <rms@gnu.org>
parents:
16405
diff
changeset
|
381 ;; This used to use path-separator instead of ":"; |
a94faa952a55
(gud-gdb-marker-regexp): Use colon always, not path-separator.
Richard M. Stallman <rms@gnu.org>
parents:
16405
diff
changeset
|
382 ;; however, we found that on both Windows 32 and MSDOS |
a94faa952a55
(gud-gdb-marker-regexp): Use colon always, not path-separator.
Richard M. Stallman <rms@gnu.org>
parents:
16405
diff
changeset
|
383 ;; a colon is correct here. |
19682
9bf29ac182b4
(gud-gdb-marker-regexp): Allow for drive letter and colon.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19174
diff
changeset
|
384 (concat "\032\032\\(.:?[^" ":" "\n]*\\)" ":" |
16843
a94faa952a55
(gud-gdb-marker-regexp): Use colon always, not path-separator.
Richard M. Stallman <rms@gnu.org>
parents:
16405
diff
changeset
|
385 "\\([0-9]*\\)" ":" ".*\n")) |
11960
5d3f2639cf3a
(gud-gdb-marker-regexp): New var. Use path-separator.
Karl Heuer <kwzh@gnu.org>
parents:
11930
diff
changeset
|
386 |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
387 ;; There's no guarantee that Emacs will hand the filter the entire |
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
388 ;; marker at once; it could be broken up across several strings. We |
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
389 ;; might even receive a big chunk with several markers in it. If we |
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
390 ;; receive a chunk of text which looks like it might contain the |
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
391 ;; beginning of a marker, we save it here between calls to the |
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
392 ;; filter. |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
393 (defvar gud-marker-acc "") |
7317
ce56b572b5c8
(gud-marker-acc): Use make-variable-buffer-local.
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
394 (make-variable-buffer-local 'gud-marker-acc) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
395 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
396 (defun gud-gdb-marker-filter (string) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
397 (setq gud-marker-acc (concat gud-marker-acc string)) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
398 (let ((output "")) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
399 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
400 ;; Process all the complete markers in this chunk. |
11960
5d3f2639cf3a
(gud-gdb-marker-regexp): New var. Use path-separator.
Karl Heuer <kwzh@gnu.org>
parents:
11930
diff
changeset
|
401 (while (string-match gud-gdb-marker-regexp gud-marker-acc) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
402 (setq |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
403 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
404 ;; Extract the frame position from the marker. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
405 gud-last-frame (cons (match-string 1 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
406 (string-to-int (match-string 2 gud-marker-acc))) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
407 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
408 ;; Append any text before the marker to the output we're going |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
409 ;; to return - we don't include the marker in this text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
410 output (concat output |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
411 (substring gud-marker-acc 0 (match-beginning 0))) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
412 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
413 ;; Set the accumulator to the remaining text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
414 gud-marker-acc (substring gud-marker-acc (match-end 0)))) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
415 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
416 ;; Does the remaining text look like it might end with the |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
417 ;; beginning of another marker? If it does, then keep it in |
44178 | 418 ;; gud-marker-acc until we receive the rest of it. Since we |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
419 ;; know the full marker regexp above failed, it's pretty simple to |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
420 ;; test for marker starts. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
421 (if (string-match "\032.*\\'" gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
422 (progn |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
423 ;; Everything before the potential marker start can be output. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
424 (setq output (concat output (substring gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
425 0 (match-beginning 0)))) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
426 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
427 ;; Everything after, we save, to combine with later input. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
428 (setq gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
429 (substring gud-marker-acc (match-beginning 0)))) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
430 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
431 (setq output (concat output gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
432 gud-marker-acc "")) |
4346
3011390123ed
* gud.el (gud-gdb-marker-filter): Do not assume that the position
Jim Blandy <jimb@redhat.com>
parents:
4344
diff
changeset
|
433 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
434 output)) |
460 | 435 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
436 (easy-mmode-defmap gud-minibuffer-local-map |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
437 '(("\C-i" . comint-dynamic-complete-filename)) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
438 "Keymap for minibuffer prompting of gud startup command." |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
439 :inherit minibuffer-local-map) |
460 | 440 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
441 (defun gud-query-cmdline (minor-mode &optional init) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
442 (let* ((hist-sym (gud-symbol 'history nil minor-mode)) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
443 (cmd-name (gud-val 'command-name minor-mode))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
444 (unless (boundp hist-sym) (set hist-sym nil)) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
445 (read-from-minibuffer |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
446 (format "Run %s (like this): " minor-mode) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
447 (or (car-safe (symbol-value hist-sym)) |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
448 (concat (or cmd-name (symbol-name minor-mode)) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
449 " " |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
450 (or init |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
451 (let ((file nil)) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
452 (dolist (f (directory-files default-directory) file) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
453 (if (and (file-executable-p f) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
454 (not (file-directory-p f)) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
455 (or (not file) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
456 (file-newer-than-file-p f file))) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
457 (setq file f))))))) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
458 gud-minibuffer-local-map nil |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
459 hist-sym))) |
6238
fab2ffdf64d5
(gdb): Use a minibuffer map with TAB to complete a filename.
Karl Heuer <kwzh@gnu.org>
parents:
5997
diff
changeset
|
460 |
477 | 461 ;;;###autoload |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
462 (defun gdb (command-line) |
460 | 463 "Run gdb on program FILE in buffer *gud-FILE*. |
464 The directory containing FILE becomes the initial working directory | |
465 and source-file directory for your debugger." | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
466 (interactive (list (gud-query-cmdline 'gdb))) |
460 | 467 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
468 (gud-common-init command-line nil 'gud-gdb-marker-filter) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
469 (set (make-local-variable 'gud-minor-mode) 'gdb) |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
470 |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
471 (gud-def gud-break "break %f:%l" "\C-b" "Set breakpoint at current line.") |
10203
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
472 (gud-def gud-tbreak "tbreak %f:%l" "\C-t" "Set temporary breakpoint at current line.") |
10518
d291152ebe20
(gdb): In gud-remove, specify the source file.
Richard M. Stallman <rms@gnu.org>
parents:
10448
diff
changeset
|
473 (gud-def gud-remove "clear %f:%l" "\C-d" "Remove breakpoint at current line") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
474 (gud-def gud-step "step %p" "\C-s" "Step one source line with display.") |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
475 (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
476 (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).") |
51060
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
477 (gud-def gud-nexti "nexti %p" nil "Step one instruction (skip functions).") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
478 (gud-def gud-cont "cont" "\C-r" "Continue with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
479 (gud-def gud-finish "finish" "\C-f" "Finish executing current function.") |
41935
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
480 (gud-def gud-jump "tbreak %f:%l\njump %f:%l" "\C-j" "Relocate execution address to line at point in source buffer.") |
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
481 |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
482 (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
483 (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).") |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
484 (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.") |
51060
f71d1c355871
(gdb): Define gud-nexti.
Nick Roberts <nickrob@snap.net.nz>
parents:
49691
diff
changeset
|
485 (gud-def gud-until "until %l" "\C-u" "Continue to current line.") |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
486 (gud-def gud-run "run" nil "Run the program.") |
460 | 487 |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
488 (local-set-key "\C-i" 'gud-gdb-complete-command) |
460 | 489 (setq comint-prompt-regexp "^(.*gdb[+]?) *") |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
490 (setq paragraph-start comint-prompt-regexp) |
460 | 491 (run-hooks 'gdb-mode-hook) |
492 ) | |
493 | |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
494 ;; One of the nice features of GDB is its impressive support for |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
495 ;; context-sensitive command completion. We preserve that feature |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
496 ;; in the GUD buffer by using a GDB command designed just for Emacs. |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
497 |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
498 ;; The completion process filter indicates when it is finished. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
499 (defvar gud-gdb-fetch-lines-in-progress) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
500 |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
501 ;; Since output may arrive in fragments we accumulate partials strings here. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
502 (defvar gud-gdb-fetch-lines-string) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
503 |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
504 ;; We need to know how much of the completion to chop off. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
505 (defvar gud-gdb-fetch-lines-break) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
506 |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
507 ;; The completion list is constructed by the process filter. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
508 (defvar gud-gdb-fetched-lines) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
509 |
6535
01db0be5fec8
(gud-comint-buffer): Move defvar up.
Richard M. Stallman <rms@gnu.org>
parents:
6531
diff
changeset
|
510 (defvar gud-comint-buffer nil) |
01db0be5fec8
(gud-comint-buffer): Move defvar up.
Richard M. Stallman <rms@gnu.org>
parents:
6531
diff
changeset
|
511 |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
512 (defun gud-gdb-complete-command () |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
513 "Perform completion on the GDB command preceding point. |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
514 This is implemented using the GDB `complete' command which isn't |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
515 available with older versions of GDB." |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
516 (interactive) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
517 (let* ((end (point)) |
30643
4a6ff467897e
(gud-gdb-complete-command): Use comint-line-beginning-position.
Miles Bader <miles@gnu.org>
parents:
28992
diff
changeset
|
518 (command (buffer-substring (comint-line-beginning-position) end)) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
519 (command-word |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
520 ;; Find the word break. This match will always succeed. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
521 (and (string-match "\\(\\`\\| \\)\\([^ ]*\\)\\'" command) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
522 (substring command (match-beginning 2)))) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
523 (complete-list |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
524 (gud-gdb-run-command-fetch-lines (concat "complete " command) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
525 (current-buffer) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
526 ;; From string-match above. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
527 (match-beginning 2)))) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
528 ;; Protect against old versions of GDB. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
529 (and complete-list |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
530 (string-match "^Undefined command: \"complete\"" (car complete-list)) |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
531 (error "This version of GDB doesn't support the `complete' command")) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
532 ;; Sort the list like readline. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
533 (setq complete-list (sort complete-list (function string-lessp))) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
534 ;; Remove duplicates. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
535 (let ((first complete-list) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
536 (second (cdr complete-list))) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
537 (while second |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
538 (if (string-equal (car first) (car second)) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
539 (setcdr first (setq second (cdr second))) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
540 (setq first second |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
541 second (cdr second))))) |
9816
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
542 ;; Add a trailing single quote if there is a unique completion |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
543 ;; and it contains an odd number of unquoted single quotes. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
544 (and (= (length complete-list) 1) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
545 (let ((str (car complete-list)) |
9816
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
546 (pos 0) |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
547 (count 0)) |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
548 (while (string-match "\\([^'\\]\\|\\\\'\\)*'" str pos) |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
549 (setq count (1+ count) |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
550 pos (match-end 0))) |
433b0117220b
(gud-gdb-complete-command): Add a trailing single quote to partially quoted
Karl Heuer <kwzh@gnu.org>
parents:
9743
diff
changeset
|
551 (and (= (mod count 2) 1) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
552 (setq complete-list (list (concat str "'")))))) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
553 ;; Let comint handle the rest. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
554 (comint-dynamic-simple-complete command-word complete-list))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
555 |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
556 ;; The completion process filter is installed temporarily to slurp the |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
557 ;; output of GDB up to the next prompt and build the completion list. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
558 (defun gud-gdb-fetch-lines-filter (string filter) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
559 "Filter used to read the list of lines output by a command. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
560 STRING is the output to filter. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
561 It is passed through FILTER before we look at it." |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
562 (setq string (funcall filter string)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
563 (setq string (concat gud-gdb-fetch-lines-string string)) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
564 (while (string-match "\n" string) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
565 (push (substring string gud-gdb-fetch-lines-break (match-beginning 0)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
566 gud-gdb-fetched-lines) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
567 (setq string (substring string (match-end 0)))) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
568 (if (string-match comint-prompt-regexp string) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
569 (progn |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
570 (setq gud-gdb-fetch-lines-in-progress nil) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
571 string) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
572 (progn |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
573 (setq gud-gdb-fetch-lines-string string) |
6531
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
574 ""))) |
bd13d17fb770
(gud-gdb-complete-command): New defun to support true
Richard M. Stallman <rms@gnu.org>
parents:
6361
diff
changeset
|
575 |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
576 ;; gdb speedbar functions |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
577 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
578 (defun gud-gdb-goto-stackframe (text token indent) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
579 "Goto the stackframe described by TEXT, TOKEN, and INDENT." |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
580 (speedbar-with-attached-buffer |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
581 (gud-basic-call (concat "frame " (nth 1 token))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
582 (sit-for 1))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
583 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
584 (defvar gud-gdb-fetched-stack-frame nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
585 "Stack frames we are fetching from GDB.") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
586 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
587 ;(defun gud-gdb-get-scope-data (text token indent) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
588 ; ;; checkdoc-params: (indent) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
589 ; "Fetch data associated with a stack frame, and expand/contract it. |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
590 ;Data to do this is retrieved from TEXT and TOKEN." |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
591 ; (let ((args nil) (scope nil)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
592 ; (gud-gdb-run-command-fetch-lines "info args") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
593 ; |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
594 ; (gud-gdb-run-command-fetch-lines "info local") |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
595 ; |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
596 ; )) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
597 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
598 (defun gud-gdb-get-stackframe (buffer) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
599 "Extract the current stack frame out of the GUD GDB BUFFER." |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
600 (let ((newlst nil) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
601 (fetched-stack-frame-list |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
602 (gud-gdb-run-command-fetch-lines "backtrace" buffer))) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
603 (if (and (car fetched-stack-frame-list) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
604 (string-match "No stack" (car fetched-stack-frame-list))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
605 ;; Go into some other mode??? |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
606 nil |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
607 (dolist (e fetched-stack-frame-list) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
608 (let ((name nil) (num nil)) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
609 (if (not (or |
22734
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
610 (string-match "^#\\([0-9]+\\) +[0-9a-fx]+ in \\([:0-9a-zA-Z_]+\\) (" e) |
09db8bddedc5
(gud-speedbar-key-map) New variable.
Karl Heuer <kwzh@gnu.org>
parents:
22446
diff
changeset
|
611 (string-match "^#\\([0-9]+\\) +\\([:0-9a-zA-Z_]+\\) (" e))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
612 (if (not (string-match |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
613 "at \\([-0-9a-zA-Z_.]+\\):\\([0-9]+\\)$" e)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
614 nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
615 (setcar newlst |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
616 (list (nth 0 (car newlst)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
617 (nth 1 (car newlst)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
618 (match-string 1 e) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
619 (match-string 2 e)))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
620 (setq num (match-string 1 e) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
621 name (match-string 2 e)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
622 (setq newlst |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
623 (cons |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
624 (if (string-match |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
625 "at \\([-0-9a-zA-Z_.]+\\):\\([0-9]+\\)$" e) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
626 (list name num (match-string 1 e) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
627 (match-string 2 e)) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
628 (list name num)) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
629 newlst))))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
630 (nreverse newlst)))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
631 |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
632 ;(defun gud-gdb-selected-frame-info (buffer) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
633 ; "Learn GDB information for the currently selected stack frame in BUFFER." |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
634 ; ) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
635 |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
636 (defun gud-gdb-run-command-fetch-lines (command buffer &optional skip) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
637 "Run COMMAND, and return the list of lines it outputs. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
638 BUFFER is the GUD buffer in which to run the command. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
639 SKIP is the number of chars to skip on each lines, it defaults to 0." |
49691
0eed24634607
(gud-gdb-run-command-fetch-lines, gud-display-line):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
640 (with-current-buffer buffer |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
641 (if (save-excursion |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
642 (goto-char (point-max)) |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
643 (forward-line 0) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
644 (not (looking-at comint-prompt-regexp))) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
645 nil |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
646 ;; Much of this copied from GDB complete, but I'm grabbing the stack |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
647 ;; frame instead. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
648 (let ((gud-gdb-fetch-lines-in-progress t) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
649 (gud-gdb-fetched-lines nil) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
650 (gud-gdb-fetch-lines-string nil) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
651 (gud-gdb-fetch-lines-break (or skip 0)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
652 (gud-marker-filter |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
653 `(lambda (string) (gud-gdb-fetch-lines-filter string ',gud-marker-filter)))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
654 ;; Issue the command to GDB. |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
655 (gud-basic-call command) |
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
656 ;; Slurp the output. |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
657 (while gud-gdb-fetch-lines-in-progress |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
658 (accept-process-output (get-buffer-process buffer))) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
659 (nreverse gud-gdb-fetched-lines))))) |
20756
eccadd41e2a5
Added gud-speedbar-buttons, and support for GDB buttons.
Eric M. Ludlam <zappo@gnu.org>
parents:
20425
diff
changeset
|
660 |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
661 |
460 | 662 ;; ====================================================================== |
663 ;; sdb functions | |
664 | |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
665 ;; History of argument lists passed to sdb. |
3930
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
666 (defvar gud-sdb-history nil) |
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
667 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
668 (defvar gud-sdb-needs-tags (not (file-exists-p "/var")) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
669 "If nil, we're on a System V Release 4 and don't need the tags hack.") |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
670 |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
671 (defvar gud-sdb-lastfile nil) |
460 | 672 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
673 (defun gud-sdb-marker-filter (string) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
674 (setq gud-marker-acc |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
675 (if gud-marker-acc (concat gud-marker-acc string) string)) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
676 (let (start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
677 ;; Process all complete markers in this chunk |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
678 (while |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
679 (cond |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
680 ;; System V Release 3.2 uses this format |
13797
d00c8f107a39
(gud-sdb-marker-filter): Modify the regexp for sysVR3 to
Karl Heuer <kwzh@gnu.org>
parents:
13681
diff
changeset
|
681 ((string-match "\\(^\\|\n\\)\\*?\\(0x\\w* in \\)?\\([^:\n]*\\):\\([0-9]*\\):.*\n" |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
682 gud-marker-acc start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
683 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
684 (cons (match-string 3 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
685 (string-to-int (match-string 4 gud-marker-acc))))) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
686 ;; System V Release 4.0 quite often clumps two lines together |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
687 ((string-match "^\\(BREAKPOINT\\|STEPPED\\) process [0-9]+ function [^ ]+ in \\(.+\\)\n\\([0-9]+\\):" |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
688 gud-marker-acc start) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
689 (setq gud-sdb-lastfile (match-string 2 gud-marker-acc)) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
690 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
691 (cons gud-sdb-lastfile |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
692 (string-to-int (match-string 3 gud-marker-acc))))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
693 ;; System V Release 4.0 |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
694 ((string-match "^\\(BREAKPOINT\\|STEPPED\\) process [0-9]+ function [^ ]+ in \\(.+\\)\n" |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
695 gud-marker-acc start) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
696 (setq gud-sdb-lastfile (match-string 2 gud-marker-acc))) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
697 ((and gud-sdb-lastfile (string-match "^\\([0-9]+\\):" |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
698 gud-marker-acc start)) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
699 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
700 (cons gud-sdb-lastfile |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
701 (string-to-int (match-string 1 gud-marker-acc))))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
702 (t |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
703 (setq gud-sdb-lastfile nil))) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
704 (setq start (match-end 0))) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
705 |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
706 ;; Search for the last incomplete line in this chunk |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
707 (while (string-match "\n" gud-marker-acc start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
708 (setq start (match-end 0))) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
709 |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
710 ;; If we have an incomplete line, store it in gud-marker-acc. |
13797
d00c8f107a39
(gud-sdb-marker-filter): Modify the regexp for sysVR3 to
Karl Heuer <kwzh@gnu.org>
parents:
13681
diff
changeset
|
711 (setq gud-marker-acc (substring gud-marker-acc (or start 0)))) |
460 | 712 string) |
713 | |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
714 (defun gud-sdb-find-file (f) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
715 (if gud-sdb-needs-tags (find-tag-noselect f) (find-file-noselect f))) |
460 | 716 |
477 | 717 ;;;###autoload |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
718 (defun sdb (command-line) |
460 | 719 "Run sdb on program FILE in buffer *gud-FILE*. |
720 The directory containing FILE becomes the initial working directory | |
721 and source-file directory for your debugger." | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
722 (interactive (list (gud-query-cmdline 'sdb))) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
723 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
724 (if (and gud-sdb-needs-tags |
7461
1ce5d720b347
(sdb): Handle tags-file-name as nil.
Richard M. Stallman <rms@gnu.org>
parents:
7429
diff
changeset
|
725 (not (and (boundp 'tags-file-name) |
1ce5d720b347
(sdb): Handle tags-file-name as nil.
Richard M. Stallman <rms@gnu.org>
parents:
7429
diff
changeset
|
726 (stringp tags-file-name) |
1ce5d720b347
(sdb): Handle tags-file-name as nil.
Richard M. Stallman <rms@gnu.org>
parents:
7429
diff
changeset
|
727 (file-exists-p tags-file-name)))) |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
728 (error "The sdb support requires a valid tags table to work")) |
460 | 729 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
730 (gud-common-init command-line nil 'gud-sdb-marker-filter 'gud-sdb-find-file) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
731 (set (make-local-variable 'gud-minor-mode) 'sdb) |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
732 |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
733 (gud-def gud-break "%l b" "\C-b" "Set breakpoint at current line.") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
734 (gud-def gud-tbreak "%l c" "\C-t" "Set temporary breakpoint at current line.") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
735 (gud-def gud-remove "%l d" "\C-d" "Remove breakpoint at current line") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
736 (gud-def gud-step "s %p" "\C-s" "Step one source line with display.") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
737 (gud-def gud-stepi "i %p" "\C-i" "Step one instruction with display.") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
738 (gud-def gud-next "S %p" "\C-n" "Step one line (skip functions).") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
739 (gud-def gud-cont "c" "\C-r" "Continue with display.") |
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
740 (gud-def gud-print "%e/" "\C-p" "Evaluate C expression at point.") |
460 | 741 |
1255 | 742 (setq comint-prompt-regexp "\\(^\\|\n\\)\\*") |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
743 (setq paragraph-start comint-prompt-regexp) |
460 | 744 (run-hooks 'sdb-mode-hook) |
745 ) | |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
746 |
460 | 747 ;; ====================================================================== |
748 ;; dbx functions | |
749 | |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
750 ;; History of argument lists passed to dbx. |
3930
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
751 (defvar gud-dbx-history nil) |
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
752 |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
753 (defcustom gud-dbx-directories nil |
13288
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
754 "*A list of directories that dbx should search for source code. |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
755 If nil, only source files in the program directory |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
756 will be known to dbx. |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
757 |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
758 The file names should be absolute, or relative to the directory |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
759 containing the executable being debugged." |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
760 :type '(choice (const :tag "Current Directory" nil) |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
761 (repeat :value ("") |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
762 directory)) |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
763 :group 'gud) |
13288
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
764 |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
765 (defun gud-dbx-massage-args (file args) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
766 (nconc (let ((directories gud-dbx-directories) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
767 (result nil)) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
768 (while directories |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
769 (setq result (cons (car directories) (cons "-I" result))) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
770 (setq directories (cdr directories))) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
771 (nreverse result)) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
772 args)) |
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
773 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
774 (defun gud-dbx-marker-filter (string) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
775 (setq gud-marker-acc (if gud-marker-acc (concat gud-marker-acc string) string)) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
776 |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
777 (let (start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
778 ;; Process all complete markers in this chunk. |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
779 (while (or (string-match |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
780 "stopped in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\"" |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
781 gud-marker-acc start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
782 (string-match |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
783 "signal .* in .* at line \\([0-9]*\\) in file \"\\([^\"]*\\)\"" |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
784 gud-marker-acc start)) |
460 | 785 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
786 (cons (match-string 2 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
787 (string-to-int (match-string 1 gud-marker-acc))) |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
788 start (match-end 0))) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
789 |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
790 ;; Search for the last incomplete line in this chunk |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
791 (while (string-match "\n" gud-marker-acc start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
792 (setq start (match-end 0))) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
793 |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
794 ;; If the incomplete line APPEARS to begin with another marker, keep it |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
795 ;; in the accumulator. Otherwise, clear the accumulator to avoid an |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
796 ;; unnecessary concat during the next call. |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
797 (setq gud-marker-acc |
10319
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
798 (if (string-match "\\(stopped\\|signal\\)" gud-marker-acc start) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
799 (substring gud-marker-acc (match-beginning 0)) |
bf67e2fdd393
(gud-dbx-marker-filter): Use gud-marker-acc like gud-gdb-marker-filter.
Richard M. Stallman <rms@gnu.org>
parents:
10217
diff
changeset
|
800 nil))) |
460 | 801 string) |
802 | |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
803 ;; Functions for Mips-style dbx. Given the option `-emacs', documented in |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
804 ;; OSF1, not necessarily elsewhere, it produces markers similar to gdb's. |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
805 (defvar gud-mips-p |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
806 (or (string-match "^mips-[^-]*-ultrix" system-configuration) |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
807 ;; We haven't tested gud on this system: |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
808 (string-match "^mips-[^-]*-riscos" system-configuration) |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
809 ;; It's documented on OSF/1.3 |
8172
1eb5638ab4b5
(gud-mips-p): Check for OSF system on Alpha also.
Richard M. Stallman <rms@gnu.org>
parents:
7910
diff
changeset
|
810 (string-match "^mips-[^-]*-osf1" system-configuration) |
20425
6bbf4a411f07
(gud-mips-p): Fix regexp so it will match alphaev56-* too.
Karl Heuer <kwzh@gnu.org>
parents:
20296
diff
changeset
|
811 (string-match "^alpha[^-]*-[^-]*-osf" system-configuration)) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
812 "Non-nil to assume the MIPS/OSF dbx conventions (argument `-emacs').") |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
813 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
814 (defvar gud-dbx-command-name |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
815 (concat "dbx" (if gud-mips-p " -emacs"))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
816 |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
817 ;; This is just like the gdb one except for the regexps since we need to cope |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
818 ;; with an optional breakpoint number in [] before the ^Z^Z |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
819 (defun gud-mipsdbx-marker-filter (string) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
820 (setq gud-marker-acc (concat gud-marker-acc string)) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
821 (let ((output "")) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
822 |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
823 ;; Process all the complete markers in this chunk. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
824 (while (string-match |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
825 ;; This is like th gdb marker but with an optional |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
826 ;; leading break point number like `[1] ' |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
827 "[][ 0-9]*\032\032\\([^:\n]*\\):\\([0-9]*\\):.*\n" |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
828 gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
829 (setq |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
830 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
831 ;; Extract the frame position from the marker. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
832 gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
833 (cons (match-string 1 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
834 (string-to-int (match-string 2 gud-marker-acc))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
835 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
836 ;; Append any text before the marker to the output we're going |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
837 ;; to return - we don't include the marker in this text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
838 output (concat output |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
839 (substring gud-marker-acc 0 (match-beginning 0))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
840 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
841 ;; Set the accumulator to the remaining text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
842 gud-marker-acc (substring gud-marker-acc (match-end 0)))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
843 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
844 ;; Does the remaining text look like it might end with the |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
845 ;; beginning of another marker? If it does, then keep it in |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
846 ;; gud-marker-acc until we receive the rest of it. Since we |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
847 ;; know the full marker regexp above failed, it's pretty simple to |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
848 ;; test for marker starts. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
849 (if (string-match "[][ 0-9]*\032.*\\'" gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
850 (progn |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
851 ;; Everything before the potential marker start can be output. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
852 (setq output (concat output (substring gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
853 0 (match-beginning 0)))) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
854 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
855 ;; Everything after, we save, to combine with later input. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
856 (setq gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
857 (substring gud-marker-acc (match-beginning 0)))) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
858 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
859 (setq output (concat output gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
860 gud-marker-acc "")) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
861 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
862 output)) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
863 |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
864 ;; The dbx in IRIX is a pain. It doesn't print the file name when |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
865 ;; stopping at a breakpoint (but you do get it from the `up' and |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
866 ;; `down' commands...). The only way to extract the information seems |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
867 ;; to be with a `file' command, although the current line number is |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
868 ;; available in $curline. Thus we have to look for output which |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
869 ;; appears to indicate a breakpoint. Then we prod the dbx sub-process |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
870 ;; to output the information we want with a combination of the |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
871 ;; `printf' and `file' commands as a pseudo marker which we can |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
872 ;; recognise next time through the marker-filter. This would be like |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
873 ;; the gdb marker but you can't get the file name without a newline... |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
874 ;; Note that gud-remove won't work since Irix dbx expects a breakpoint |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
875 ;; number rather than a line number etc. Maybe this could be made to |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
876 ;; work by listing all the breakpoints and picking the one(s) with the |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
877 ;; correct line number, but life's too short. |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
878 ;; d.love@dl.ac.uk (Dave Love) can be blamed for this |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
879 |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
880 (defvar gud-irix-p |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
881 (and (string-match "^mips-[^-]*-irix" system-configuration) |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
882 (not (string-match "irix[6-9]\\.[1-9]" system-configuration))) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
883 "Non-nil to assume the interface appropriate for IRIX dbx. |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
884 This works in IRIX 4, 5 and 6, but `gud-dbx-use-stopformat-p' provides |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
885 a better solution in 6.1 upwards.") |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
886 (defvar gud-dbx-use-stopformat-p |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
887 (string-match "irix[6-9]\\.[1-9]" system-configuration) |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
888 "Non-nil to use the dbx feature present at least from Irix 6.1 |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
889 whereby $stopformat=1 produces an output format compatiable with |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
890 `gud-dbx-marker-filter'.") |
10203
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
891 ;; [Irix dbx seems to be a moving target. The dbx output changed |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
892 ;; subtly sometime between OS v4.0.5 and v5.2 so that, for instance, |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
893 ;; the output from `up' is no longer spotted by gud (and it's probably |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
894 ;; not distinctive enough to try to match it -- use C-<, C-> |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
895 ;; exclusively) . For 5.3 and 6.0, the $curline variable changed to |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
896 ;; `long long'(why?!), so the printf stuff needed changing. The line |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
897 ;; number was cast to `long' as a compromise between the new `long |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
898 ;; long' and the original `int'. This is reported not to work in 6.2, |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
899 ;; so it's changed back to int -- don't make your sources too long. |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
900 ;; From Irix6.1 (but not 6.0?) dbx supports an undocumented feature |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
901 ;; whereby `set $stopformat=1' reportedly produces output compatible |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
902 ;; with `gud-dbx-marker-filter', which we prefer. |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
903 |
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
904 ;; The process filter is also somewhat |
10203
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
905 ;; unreliable, sometimes not spotting the markers; I don't know |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
906 ;; whether there's anything that can be done about that. It would be |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
907 ;; much better if SGI could be persuaded to (re?)instate the MIPS |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
908 ;; -emacs flag for gdb-like output (which ought to be possible as most |
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
909 ;; of the communication I've had over it has been from sgi.com).] |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
910 |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
911 ;; this filter is influenced by the xdb one rather than the gdb one |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
912 (defun gud-irixdbx-marker-filter (string) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
913 (let (result (case-fold-search nil)) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
914 (if (or (string-match comint-prompt-regexp string) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
915 (string-match ".*\012" string)) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
916 (setq result (concat gud-marker-acc string) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
917 gud-marker-acc "") |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
918 (setq gud-marker-acc (concat gud-marker-acc string))) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
919 (if result |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
920 (cond |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
921 ;; look for breakpoint or signal indication e.g.: |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
922 ;; [2] Process 1267 (pplot) stopped at [params:338 ,0x400ec0] |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
923 ;; Process 1281 (pplot) stopped at [params:339 ,0x400ec8] |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
924 ;; Process 1270 (pplot) Floating point exception [._read._read:16 ,0x452188] |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
925 ((string-match |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
926 "^\\(\\[[0-9]+] \\)?Process +[0-9]+ ([^)]*) [^[]+\\[[^]\n]*]\n" |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
927 result) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
928 ;; prod dbx into printing out the line number and file |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
929 ;; name in a form we can grok as below |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
930 (process-send-string (get-buffer-process gud-comint-buffer) |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
931 "printf \"\032\032%1d:\",(int)$curline;file\n")) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
932 ;; look for result of, say, "up" e.g.: |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
933 ;; .pplot.pplot(0x800) ["src/pplot.f":261, 0x400c7c] |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
934 ;; (this will also catch one of the lines printed by "where") |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
935 ((string-match |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
936 "^[^ ][^[]*\\[\"\\([^\"]+\\)\":\\([0-9]+\\), [^]]+]\n" |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
937 result) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
938 (let ((file (match-string 1 result))) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
939 (if (file-exists-p file) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
940 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
941 (cons (match-string 1 result) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
942 (string-to-int (match-string 2 result)))))) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
943 result) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
944 ((string-match ; kluged-up marker as above |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
945 "\032\032\\([0-9]*\\):\\(.*\\)\n" result) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
946 (let ((file (gud-file-name (match-string 2 result)))) |
13288
2699145c01cb
(gud-dbx-directories): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
13190
diff
changeset
|
947 (if (and file (file-exists-p file)) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
948 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
949 (cons file |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
950 (string-to-int (match-string 1 result)))))) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
951 (setq result (substring result 0 (match-beginning 0)))))) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
952 (or result ""))) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
953 |
18098
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
954 (defvar gud-dgux-p (string-match "-dgux" system-configuration) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
955 "Non-nil means to assume the interface approriate for DG/UX dbx. |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
956 This was tested using R4.11.") |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
957 |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
958 ;; There are a couple of differences between DG's dbx output and normal |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
959 ;; dbx output which make it nontrivial to integrate this into the |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
960 ;; standard dbx-marker-filter (mainly, there are a different number of |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
961 ;; backreferences). The markers look like: |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
962 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
963 ;; (0) Stopped at line 10, routine main(argc=1, argv=0xeffff0e0), file t.c |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
964 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
965 ;; from breakpoints (the `(0)' there isn't constant, it's the breakpoint |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
966 ;; number), and |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
967 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
968 ;; Stopped at line 13, routine main(argc=1, argv=0xeffff0e0), file t.c |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
969 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
970 ;; from signals and |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
971 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
972 ;; Frame 21, line 974, routine command_loop(), file keyboard.c |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
973 ;; |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
974 ;; from up/down/where. |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
975 |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
976 (defun gud-dguxdbx-marker-filter (string) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
977 (setq gud-marker-acc (if gud-marker-acc |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
978 (concat gud-marker-acc string) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
979 string)) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
980 (let ((re (concat "^\\(\\(([0-9]+) \\)?Stopped at\\|Frame [0-9]+,\\)" |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
981 " line \\([0-9]+\\), routine .*, file \\([^ \t\n]+\\)")) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
982 start) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
983 ;; Process all complete markers in this chunk. |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
984 (while (string-match re gud-marker-acc start) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
985 (setq gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
986 (cons (match-string 4 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
987 (string-to-int (match-string 3 gud-marker-acc))) |
18098
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
988 start (match-end 0))) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
989 |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
990 ;; Search for the last incomplete line in this chunk |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
991 (while (string-match "\n" gud-marker-acc start) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
992 (setq start (match-end 0))) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
993 |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
994 ;; If the incomplete line APPEARS to begin with another marker, keep it |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
995 ;; in the accumulator. Otherwise, clear the accumulator to avoid an |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
996 ;; unnecessary concat during the next call. |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
997 (setq gud-marker-acc |
18098
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
998 (if (string-match "Stopped\\|Frame" gud-marker-acc start) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
999 (substring gud-marker-acc (match-beginning 0)) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
1000 nil))) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
1001 string) |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
1002 |
477 | 1003 ;;;###autoload |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1004 (defun dbx (command-line) |
460 | 1005 "Run dbx on program FILE in buffer *gud-FILE*. |
1006 The directory containing FILE becomes the initial working directory | |
1007 and source-file directory for your debugger." | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1008 (interactive (list (gud-query-cmdline 'dbx))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1009 |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1010 (cond |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1011 (gud-mips-p |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1012 (gud-common-init command-line nil 'gud-mipsdbx-marker-filter)) |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1013 (gud-irix-p |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1014 (gud-common-init command-line 'gud-dbx-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1015 'gud-irixdbx-marker-filter)) |
18098
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
1016 (gud-dgux-p |
10b2526db6f0
(gud-dgux-p, gud-dguxdbx-marker-filter): New functions.
Richard M. Stallman <rms@gnu.org>
parents:
17663
diff
changeset
|
1017 (gud-common-init command-line 'gud-dbx-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1018 'gud-dguxdbx-marker-filter)) |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1019 (t |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1020 (gud-common-init command-line 'gud-dbx-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1021 'gud-dbx-marker-filter))) |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
1022 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1023 (set (make-local-variable 'gud-minor-mode) 'dbx) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1024 |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1025 (cond |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1026 (gud-mips-p |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1027 (gud-def gud-up "up %p" "<" "Up (numeric arg) stack frames.") |
44178 | 1028 (gud-def gud-down "down %p" ">" "Down (numeric arg) stack frames.") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1029 (gud-def gud-break "stop at \"%f\":%l" |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1030 "\C-b" "Set breakpoint at current line.") |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1031 (gud-def gud-finish "return" "\C-f" "Finish executing current function.")) |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1032 (gud-irix-p |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1033 (gud-def gud-break "stop at \"%d%f\":%l" |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1034 "\C-b" "Set breakpoint at current line.") |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1035 (gud-def gud-finish "return" "\C-f" "Finish executing current function.") |
44178 | 1036 (gud-def gud-up "up %p; printf \"\032\032%1d:\",(int)$curline;file\n" |
10203
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
1037 "<" "Up (numeric arg) stack frames.") |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
1038 (gud-def gud-down "down %p; printf \"\032\032%1d:\",(int)$curline;file\n" |
10203
c1f7894118f9
(gud-irixdbx-marker-filter): Changes for Irix dbx.
Richard M. Stallman <rms@gnu.org>
parents:
10095
diff
changeset
|
1039 ">" "Down (numeric arg) stack frames.") |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1040 ;; Make dbx give out the source location info that we need. |
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1041 (process-send-string (get-buffer-process gud-comint-buffer) |
15624
2cf06d9df144
(gud-irix-p): Exclude Irix6.1 up.
Karl Heuer <kwzh@gnu.org>
parents:
15455
diff
changeset
|
1042 "printf \"\032\032%1d:\",(int)$curline;file\n")) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1043 (t |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1044 (gud-def gud-up "up %p" "<" "Up (numeric arg) stack frames.") |
44178 | 1045 (gud-def gud-down "down %p" ">" "Down (numeric arg) stack frames.") |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1046 (gud-def gud-break "file \"%d%f\"\nstop at %l" |
39252
8bf84df37c90
(dbx) <gud-dbx-use-stopformat-p>: Move this case into the
Eli Zaretskii <eliz@gnu.org>
parents:
38412
diff
changeset
|
1047 "\C-b" "Set breakpoint at current line.") |
8bf84df37c90
(dbx) <gud-dbx-use-stopformat-p>: Move this case into the
Eli Zaretskii <eliz@gnu.org>
parents:
38412
diff
changeset
|
1048 (if gud-dbx-use-stopformat-p |
8bf84df37c90
(dbx) <gud-dbx-use-stopformat-p>: Move this case into the
Eli Zaretskii <eliz@gnu.org>
parents:
38412
diff
changeset
|
1049 (process-send-string (get-buffer-process gud-comint-buffer) |
8bf84df37c90
(dbx) <gud-dbx-use-stopformat-p>: Move this case into the
Eli Zaretskii <eliz@gnu.org>
parents:
38412
diff
changeset
|
1050 "set $stopformat=1\n")))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1051 |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
1052 (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1053 (gud-def gud-step "step %p" "\C-s" "Step one line with display.") |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
1054 (gud-def gud-stepi "stepi %p" "\C-i" "Step one instruction with display.") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1055 (gud-def gud-next "next %p" "\C-n" "Step one line (skip functions).") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1056 (gud-def gud-cont "cont" "\C-r" "Continue with display.") |
2960
372386917f03
(gud-def): Fix inclusion of the define-key.
Richard M. Stallman <rms@gnu.org>
parents:
2594
diff
changeset
|
1057 (gud-def gud-print "print %e" "\C-p" "Evaluate C expression at point.") |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
1058 |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
1059 (setq comint-prompt-regexp "^[^)\n]*dbx) *") |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
1060 (setq paragraph-start comint-prompt-regexp) |
460 | 1061 (run-hooks 'dbx-mode-hook) |
1062 ) | |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1063 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1064 ;; ====================================================================== |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1065 ;; xdb (HP PARISC debugger) functions |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1066 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1067 ;; History of argument lists passed to xdb. |
3930
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
1068 (defvar gud-xdb-history nil) |
ac686479ca51
* gud.el: Add history lists to the debugging commands, so we don't
Jim Blandy <jimb@redhat.com>
parents:
3745
diff
changeset
|
1069 |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1070 (defcustom gud-xdb-directories nil |
3745
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1071 "*A list of directories that xdb should search for source code. |
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1072 If nil, only source files in the program directory |
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1073 will be known to xdb. |
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1074 |
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1075 The file names should be absolute, or relative to the directory |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1076 containing the executable being debugged." |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1077 :type '(choice (const :tag "Current Directory" nil) |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1078 (repeat :value ("") |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1079 directory)) |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1080 :group 'gud) |
3745
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1081 |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1082 (defun gud-xdb-massage-args (file args) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1083 (nconc (let ((directories gud-xdb-directories) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1084 (result nil)) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1085 (while directories |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1086 (setq result (cons (car directories) (cons "-d" result))) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1087 (setq directories (cdr directories))) |
10876
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
1088 (nreverse result)) |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1089 args)) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1090 |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1091 ;; xdb does not print the lines all at once, so we have to accumulate them |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1092 (defun gud-xdb-marker-filter (string) |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1093 (let (result) |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1094 (if (or (string-match comint-prompt-regexp string) |
44178 | 1095 (string-match ".*\012" string)) |
1096 (setq result (concat gud-marker-acc string) | |
1097 gud-marker-acc "") | |
7165
d53c76129763
(gud-mips-p, gud-irix-p): Test system-configuration.
Richard M. Stallman <rms@gnu.org>
parents:
7074
diff
changeset
|
1098 (setq gud-marker-acc (concat gud-marker-acc string))) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1099 (if result |
44178 | 1100 (if (or (string-match "\\([^\n \t:]+\\): [^:]+: \\([0-9]+\\)[: ]" |
12743
d9dc148cd8ac
(gud-xdb-marker-filter): Change pattern to accept spc at end.
Richard M. Stallman <rms@gnu.org>
parents:
12340
diff
changeset
|
1101 result) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1102 (string-match "[^: \t]+:[ \t]+\\([^:]+\\): [^:]+: \\([0-9]+\\):" |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1103 result)) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1104 (let ((line (string-to-int (match-string 2 result))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1105 (file (gud-file-name (match-string 1 result)))) |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1106 (if file |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1107 (setq gud-last-frame (cons file line)))))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1108 (or result ""))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1109 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1110 ;;;###autoload |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
1111 (defun xdb (command-line) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1112 "Run xdb on program FILE in buffer *gud-FILE*. |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1113 The directory containing FILE becomes the initial working directory |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1114 and source-file directory for your debugger. |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1115 |
3745
3c4f7e74e3f0
(gud-xdb-directories): Renamed from gud-xdb-paths.
Richard M. Stallman <rms@gnu.org>
parents:
3738
diff
changeset
|
1116 You can set the variable 'gud-xdb-directories' to a list of program source |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1117 directories if your program contains sources from more than one directory." |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1118 (interactive (list (gud-query-cmdline 'xdb))) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1119 |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1120 (gud-common-init command-line 'gud-xdb-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1121 'gud-xdb-marker-filter) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1122 (set (make-local-variable 'gud-minor-mode) 'xdb) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1123 |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1124 (gud-def gud-break "b %f:%l" "\C-b" "Set breakpoint at current line.") |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1125 (gud-def gud-tbreak "b %f:%l\\t" "\C-t" |
44178 | 1126 "Set temporary breakpoint at current line.") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1127 (gud-def gud-remove "db" "\C-d" "Remove breakpoint at current line") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1128 (gud-def gud-step "s %p" "\C-s" "Step one line with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1129 (gud-def gud-next "S %p" "\C-n" "Step one line (skip functions).") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1130 (gud-def gud-cont "c" "\C-r" "Continue with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1131 (gud-def gud-up "up %p" "<" "Up (numeric arg) stack frames.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1132 (gud-def gud-down "down %p" ">" "Down (numeric arg) stack frames.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1133 (gud-def gud-finish "bu\\t" "\C-f" "Finish executing current function.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1134 (gud-def gud-print "p %e" "\C-p" "Evaluate C expression at point.") |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1135 |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1136 (setq comint-prompt-regexp "^>") |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
1137 (setq paragraph-start comint-prompt-regexp) |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
1138 (run-hooks 'xdb-mode-hook)) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1139 |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1140 ;; ====================================================================== |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1141 ;; perldb functions |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1142 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1143 ;; History of argument lists passed to perldb. |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1144 (defvar gud-perldb-history nil) |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1145 |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1146 (defun gud-perldb-massage-args (file args) |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1147 "Convert a command line as would be typed normally to run perldb |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1148 into one that invokes an Emacs-enabled debugging session. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1149 \"-emacs\" is inserted where it will be $ARGV[0] (see perl5db.pl)." |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1150 ;; FIXME: what if the command is `make perldb' and doesn't accept those extra |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1151 ;; arguments ? |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1152 (let* ((new-args nil) |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1153 (seen-e nil) |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1154 (shift (lambda () (push (pop args) new-args)))) |
26294
b1d85e2a1cae
(gud-perldb-massage-args): Massage correctly in the
Gerd Moellmann <gerd@gnu.org>
parents:
25601
diff
changeset
|
1155 |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1156 ;; Pass all switches and -e scripts through. |
26294
b1d85e2a1cae
(gud-perldb-massage-args): Massage correctly in the
Gerd Moellmann <gerd@gnu.org>
parents:
25601
diff
changeset
|
1157 (while (and args |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1158 (string-match "^-" (car args)) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1159 (not (equal "-" (car args))) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1160 (not (equal "--" (car args)))) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1161 (when (equal "-e" (car args)) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1162 ;; -e goes with the next arg, so shift one extra. |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1163 (or (funcall shift) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1164 ;; -e as the last arg is an error in Perl. |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
1165 (error "No code specified for -e")) |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1166 (setq seen-e t)) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1167 (funcall shift)) |
26294
b1d85e2a1cae
(gud-perldb-massage-args): Massage correctly in the
Gerd Moellmann <gerd@gnu.org>
parents:
25601
diff
changeset
|
1168 |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
1169 (unless seen-e |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1170 (if (or (not args) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1171 (string-match "^-" (car args))) |
38412
253f761ad37b
Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents:
37878
diff
changeset
|
1172 (error "Can't use stdin as the script to debug")) |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1173 ;; This is the program name. |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1174 (funcall shift)) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1175 |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1176 ;; If -e specified, make sure there is a -- so -emacs is not taken |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1177 ;; as -e macs. |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1178 (if (and args (equal "--" (car args))) |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1179 (funcall shift) |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
1180 (and seen-e (push "--" new-args))) |
26294
b1d85e2a1cae
(gud-perldb-massage-args): Massage correctly in the
Gerd Moellmann <gerd@gnu.org>
parents:
25601
diff
changeset
|
1181 |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
1182 (push "-emacs" new-args) |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1183 (while args |
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1184 (funcall shift)) |
26294
b1d85e2a1cae
(gud-perldb-massage-args): Massage correctly in the
Gerd Moellmann <gerd@gnu.org>
parents:
25601
diff
changeset
|
1185 |
26351
861868d5730a
(gud-perldb-massage-args): Handle the case "perl -e 0"
Gerd Moellmann <gerd@gnu.org>
parents:
26294
diff
changeset
|
1186 (nreverse new-args))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1187 |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1188 ;; There's no guarantee that Emacs will hand the filter the entire |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1189 ;; marker at once; it could be broken up across several strings. We |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1190 ;; might even receive a big chunk with several markers in it. If we |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1191 ;; receive a chunk of text which looks like it might contain the |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1192 ;; beginning of a marker, we save it here between calls to the |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1193 ;; filter. |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1194 (defun gud-perldb-marker-filter (string) |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1195 (setq gud-marker-acc (concat gud-marker-acc string)) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1196 (let ((output "")) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1197 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1198 ;; Process all the complete markers in this chunk. |
16327
2239440f2f00
(gud-perldb-massage-args): Handle -e in ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
16250
diff
changeset
|
1199 (while (string-match "\032\032\\(\\([a-zA-Z]:\\)?[^:\n]*\\):\\([0-9]*\\):.*\n" |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1200 gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1201 (setq |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1202 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1203 ;; Extract the frame position from the marker. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1204 gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1205 (cons (match-string 1 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1206 (string-to-int (match-string 3 gud-marker-acc))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1207 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1208 ;; Append any text before the marker to the output we're going |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1209 ;; to return - we don't include the marker in this text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1210 output (concat output |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1211 (substring gud-marker-acc 0 (match-beginning 0))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1212 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1213 ;; Set the accumulator to the remaining text. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1214 gud-marker-acc (substring gud-marker-acc (match-end 0)))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1215 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1216 ;; Does the remaining text look like it might end with the |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1217 ;; beginning of another marker? If it does, then keep it in |
44178 | 1218 ;; gud-marker-acc until we receive the rest of it. Since we |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1219 ;; know the full marker regexp above failed, it's pretty simple to |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1220 ;; test for marker starts. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1221 (if (string-match "\032.*\\'" gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1222 (progn |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1223 ;; Everything before the potential marker start can be output. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1224 (setq output (concat output (substring gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1225 0 (match-beginning 0)))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1226 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1227 ;; Everything after, we save, to combine with later input. |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1228 (setq gud-marker-acc |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1229 (substring gud-marker-acc (match-beginning 0)))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1230 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1231 (setq output (concat output gud-marker-acc) |
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1232 gud-marker-acc "")) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1233 |
10042
d062993c96a0
(gud-gdb-marker-filter, gud-irixdbx-marker-filter)
Richard M. Stallman <rms@gnu.org>
parents:
9816
diff
changeset
|
1234 output)) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1235 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1236 (defcustom gud-perldb-command-name "perl -d" |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1237 "Default command to execute a Perl script under debugger." |
17663
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1238 :type 'string |
d2c64a1563f7
Use defgroup and defcustom.
Richard M. Stallman <rms@gnu.org>
parents:
17658
diff
changeset
|
1239 :group 'gud) |
15755
95be49f33453
(perldb-command-name): New variable.
Richard M. Stallman <rms@gnu.org>
parents:
15624
diff
changeset
|
1240 |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1241 ;;;###autoload |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1242 (defun perldb (command-line) |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1243 "Run perldb on program FILE in buffer *gud-FILE*. |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1244 The directory containing FILE becomes the initial working directory |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1245 and source-file directory for your debugger." |
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1246 (interactive |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1247 (list (gud-query-cmdline 'perldb |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1248 (concat (or (buffer-file-name) "-e 0") " ")))) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1249 |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
1250 (gud-common-init command-line 'gud-perldb-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1251 'gud-perldb-marker-filter) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1252 (set (make-local-variable 'gud-minor-mode) 'perldb) |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1253 |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1254 (gud-def gud-break "b %l" "\C-b" "Set breakpoint at current line.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1255 (gud-def gud-remove "d %l" "\C-d" "Remove breakpoint at current line") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1256 (gud-def gud-step "s" "\C-s" "Step one source line with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1257 (gud-def gud-next "n" "\C-n" "Step one line (skip functions).") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1258 (gud-def gud-cont "c" "\C-r" "Continue with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1259 ; (gud-def gud-finish "finish" "\C-f" "Finish executing current function.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1260 ; (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).") |
4732 | 1261 ; (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1262 (gud-def gud-print "%e" "\C-p" "Evaluate perl expression at point.") |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
1263 |
48795
480e8dc8fc37
(bashdb): Prompt now included parenthesis for subshell
Richard M. Stallman <rms@gnu.org>
parents:
48679
diff
changeset
|
1264 (setq comint-prompt-regexp "^ DB<+[0-9]+>+ ") |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
1265 (setq paragraph-start comint-prompt-regexp) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1266 (run-hooks 'perldb-mode-hook)) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1267 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1268 ;; ====================================================================== |
22173 | 1269 ;; pdb (Python debugger) functions |
1270 | |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1271 ;; History of argument lists passed to pdb. |
22173 | 1272 (defvar gud-pdb-history nil) |
1273 | |
1274 ;; Last group is for return value, e.g. "> test.py(2)foo()->None" | |
1275 ;; Either file or function name may be omitted: "> <string>(0)?()" | |
1276 (defvar gud-pdb-marker-regexp | |
47530
cfea5643ff62
(gud-pdb-marker-regexp): Allow : and \ in file name.
Richard M. Stallman <rms@gnu.org>
parents:
47443
diff
changeset
|
1277 "^> \\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\)()\\(->[^\n]*\\)?\n") |
22173 | 1278 (defvar gud-pdb-marker-regexp-file-group 1) |
1279 (defvar gud-pdb-marker-regexp-line-group 2) | |
1280 (defvar gud-pdb-marker-regexp-fnname-group 3) | |
1281 | |
1282 (defvar gud-pdb-marker-regexp-start "^> ") | |
1283 | |
1284 ;; There's no guarantee that Emacs will hand the filter the entire | |
1285 ;; marker at once; it could be broken up across several strings. We | |
1286 ;; might even receive a big chunk with several markers in it. If we | |
1287 ;; receive a chunk of text which looks like it might contain the | |
1288 ;; beginning of a marker, we save it here between calls to the | |
1289 ;; filter. | |
1290 (defun gud-pdb-marker-filter (string) | |
1291 (setq gud-marker-acc (concat gud-marker-acc string)) | |
1292 (let ((output "")) | |
1293 | |
1294 ;; Process all the complete markers in this chunk. | |
1295 (while (string-match gud-pdb-marker-regexp gud-marker-acc) | |
1296 (setq | |
1297 | |
1298 ;; Extract the frame position from the marker. | |
1299 gud-last-frame | |
1300 (let ((file (match-string gud-pdb-marker-regexp-file-group | |
1301 gud-marker-acc)) | |
1302 (line (string-to-int | |
1303 (match-string gud-pdb-marker-regexp-line-group | |
1304 gud-marker-acc)))) | |
1305 (if (string-equal file "<string>") | |
1306 gud-last-frame | |
1307 (cons file line))) | |
1308 | |
1309 ;; Output everything instead of the below | |
1310 output (concat output (substring gud-marker-acc 0 (match-end 0))) | |
44178 | 1311 ;; ;; Append any text before the marker to the output we're going |
1312 ;; ;; to return - we don't include the marker in this text. | |
1313 ;; output (concat output | |
1314 ;; (substring gud-marker-acc 0 (match-beginning 0))) | |
22173 | 1315 |
1316 ;; Set the accumulator to the remaining text. | |
1317 gud-marker-acc (substring gud-marker-acc (match-end 0)))) | |
1318 | |
1319 ;; Does the remaining text look like it might end with the | |
1320 ;; beginning of another marker? If it does, then keep it in | |
44178 | 1321 ;; gud-marker-acc until we receive the rest of it. Since we |
22173 | 1322 ;; know the full marker regexp above failed, it's pretty simple to |
1323 ;; test for marker starts. | |
1324 (if (string-match gud-pdb-marker-regexp-start gud-marker-acc) | |
1325 (progn | |
1326 ;; Everything before the potential marker start can be output. | |
1327 (setq output (concat output (substring gud-marker-acc | |
1328 0 (match-beginning 0)))) | |
1329 | |
1330 ;; Everything after, we save, to combine with later input. | |
1331 (setq gud-marker-acc | |
1332 (substring gud-marker-acc (match-beginning 0)))) | |
1333 | |
1334 (setq output (concat output gud-marker-acc) | |
1335 gud-marker-acc "")) | |
1336 | |
1337 output)) | |
1338 | |
1339 (defcustom gud-pdb-command-name "pdb" | |
1340 "File name for executing the Python debugger. | |
1341 This should be an executable on your path, or an absolute file name." | |
1342 :type 'string | |
1343 :group 'gud) | |
1344 | |
1345 ;;;###autoload | |
1346 (defun pdb (command-line) | |
1347 "Run pdb on program FILE in buffer `*gud-FILE*'. | |
1348 The directory containing FILE becomes the initial working directory | |
1349 and source-file directory for your debugger." | |
1350 (interactive | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1351 (list (gud-query-cmdline 'pdb))) |
22173 | 1352 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1353 (gud-common-init command-line nil 'gud-pdb-marker-filter) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1354 (set (make-local-variable 'gud-minor-mode) 'pdb) |
22173 | 1355 |
1356 (gud-def gud-break "break %l" "\C-b" "Set breakpoint at current line.") | |
47530
cfea5643ff62
(gud-pdb-marker-regexp): Allow : and \ in file name.
Richard M. Stallman <rms@gnu.org>
parents:
47443
diff
changeset
|
1357 (gud-def gud-remove "clear %f:%l" "\C-d" "Remove breakpoint at current line") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1358 (gud-def gud-step "step" "\C-s" "Step one source line with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1359 (gud-def gud-next "next" "\C-n" "Step one line (skip functions).") |
22173 | 1360 (gud-def gud-cont "continue" "\C-r" "Continue with display.") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1361 (gud-def gud-finish "return" "\C-f" "Finish executing current function.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1362 (gud-def gud-up "up" "<" "Up one stack frame.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1363 (gud-def gud-down "down" ">" "Down one stack frame.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1364 (gud-def gud-print "p %e" "\C-p" "Evaluate Python expression at point.") |
22173 | 1365 ;; Is this right? |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1366 (gud-def gud-statement "! %e" "\C-e" "Execute Python statement at point.") |
22173 | 1367 |
1368 ;; (setq comint-prompt-regexp "^(.*pdb[+]?) *") | |
1369 (setq comint-prompt-regexp "^(Pdb) *") | |
1370 (setq paragraph-start comint-prompt-regexp) | |
1371 (run-hooks 'pdb-mode-hook)) | |
1372 | |
1373 ;; ====================================================================== | |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1374 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1375 ;; JDB support. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1376 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1377 ;; AUTHOR: Derek Davies <ddavies@world.std.com> |
44178 | 1378 ;; Zoltan Kemenczy <zoltan@ieee.org;zkemenczy@rim.net> |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1379 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1380 ;; CREATED: Sun Feb 22 10:46:38 1998 Derek Davies. |
44178 | 1381 ;; UPDATED: Nov 11, 2001 Zoltan Kemenczy |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1382 ;; Dec 10, 2002 Zoltan Kemenczy - added nested class support |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1383 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1384 ;; INVOCATION NOTES: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1385 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1386 ;; You invoke jdb-mode with: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1387 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1388 ;; M-x jdb <enter> |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1389 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1390 ;; It responds with: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1391 ;; |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1392 ;; Run jdb (like this): jdb |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1393 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1394 ;; type any jdb switches followed by the name of the class you'd like to debug. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1395 ;; Supply a fully qualfied classname (these do not have the ".class" extension) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1396 ;; for the name of the class to debug (e.g. "COM.the-kind.ddavies.CoolClass"). |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1397 ;; See the known problems section below for restrictions when specifying jdb |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1398 ;; command line switches (search forward for '-classpath'). |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1399 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1400 ;; You should see something like the following: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1401 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1402 ;; Current directory is ~/src/java/hello/ |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1403 ;; Initializing jdb... |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1404 ;; 0xed2f6628:class(hello) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1405 ;; > |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1406 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1407 ;; To set an initial breakpoint try: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1408 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1409 ;; > stop in hello.main |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1410 ;; Breakpoint set in hello.main |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1411 ;; > |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1412 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1413 ;; To execute the program type: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1414 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1415 ;; > run |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1416 ;; run hello |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1417 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1418 ;; Breakpoint hit: running ... |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1419 ;; hello.main (hello:12) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1420 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1421 ;; Type M-n to step over the current line and M-s to step into it. That, |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1422 ;; along with the JDB 'help' command should get you started. The 'quit' |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1423 ;; JDB command will get out out of the debugger. There is some truly |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1424 ;; pathetic JDB documentation available at: |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1425 ;; |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1426 ;; http://java.sun.com/products/jdk/1.1/debugging/ |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1427 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1428 ;; KNOWN PROBLEMS AND FIXME's: |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1429 ;; |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1430 ;; Not sure what happens with inner classes ... haven't tried them. |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1431 ;; |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1432 ;; Does not grok UNICODE id's. Only ASCII id's are supported. |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1433 ;; |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1434 ;; You must not put whitespace between "-classpath" and the path to |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1435 ;; search for java classes even though it is required when invoking jdb |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1436 ;; from the command line. See gud-jdb-massage-args for details. |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1437 ;; The same applies for "-sourcepath". |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1438 ;; |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1439 ;; Note: The following applies only if `gud-jdb-use-classpath' is nil; |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1440 ;; refer to the documentation of `gud-jdb-use-classpath' and |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1441 ;; `gud-jdb-classpath',`gud-jdb-sourcepath' variables for information |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1442 ;; on using the classpath for locating java source files. |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1443 ;; |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1444 ;; If any of the source files in the directories listed in |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1445 ;; gud-jdb-directories won't parse you'll have problems. Make sure |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1446 ;; every file ending in ".java" in these directories parses without error. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1447 ;; |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1448 ;; All the .java files in the directories in gud-jdb-directories are |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1449 ;; syntactically analyzed each time gud jdb is invoked. It would be |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1450 ;; nice to keep as much information as possible between runs. It would |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1451 ;; be really nice to analyze the files only as neccessary (when the |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1452 ;; source needs to be displayed.) I'm not sure to what extent the former |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1453 ;; can be accomplished and I'm not sure the latter can be done at all |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1454 ;; since I don't know of any general way to tell which .class files are |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1455 ;; defined by which .java file without analyzing all the .java files. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1456 ;; If anyone knows why JavaSoft didn't put the source file names in |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1457 ;; debuggable .class files please clue me in so I find something else |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1458 ;; to be spiteful and bitter about. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1459 ;; |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1460 ;; ====================================================================== |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1461 ;; gud jdb variables and functions |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1462 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1463 (defcustom gud-jdb-command-name "jdb" |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1464 "Command that executes the Java debugger." |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1465 :type 'string |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1466 :group 'gud) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1467 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1468 (defcustom gud-jdb-use-classpath t |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1469 "If non-nil, search for Java source files in classpath directories. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1470 The list of directories to search is the value of `gud-jdb-classpath'. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1471 The file pathname is obtained by converting the fully qualified |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1472 class information output by jdb to a relative pathname and appending |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1473 it to `gud-jdb-classpath' element by element until a match is found. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1474 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1475 This method has a significant jdb startup time reduction advantage |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1476 since it does not require the scanning of all `gud-jdb-directories' |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1477 and parsing all Java files for class information. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1478 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1479 Set to nil to use `gud-jdb-directories' to scan java sources for |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1480 class information on jdb startup (original method)." |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1481 :type 'boolean |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1482 :group 'gud) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1483 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1484 (defvar gud-jdb-classpath nil |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1485 "Java/jdb classpath directories list. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1486 If `gud-jdb-use-classpath' is non-nil, gud-jdb derives the `gud-jdb-classpath' |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1487 list automatically using the following methods in sequence |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
1488 \(with subsequent successful steps overriding the results of previous |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1489 steps): |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1490 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1491 1) Read the CLASSPATH environment variable, |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1492 2) Read any \"-classpath\" argument used to run jdb, |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1493 or detected in jdb output (e.g. if jdb is run by a script |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1494 that echoes the actual jdb command before starting jdb) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1495 3) Send a \"classpath\" command to jdb and scan jdb output for |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1496 classpath information if jdb is invoked with an \"-attach\" (to |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1497 an already running VM) argument (This case typically does not |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1498 have a \"-classpath\" command line argument - that is provided |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1499 to the VM when it is started). |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1500 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1501 Note that method 3 cannot be used with oldjdb (or Java 1 jdb) since |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1502 those debuggers do not support the classpath command. Use 1) or 2).") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1503 |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1504 (defvar gud-jdb-sourcepath nil |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1505 "Directory list provided by an (optional) \"-sourcepath\" option to jdb. |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1506 This list is prepended to `gud-jdb-classpath' to form the complete |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1507 list of directories searched for source files.") |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1508 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1509 (defvar gud-marker-acc-max-length 4000 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1510 "Maximum number of debugger output characters to keep. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1511 This variable limits the size of `gud-marker-acc' which holds |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1512 the most recent debugger output history while searching for |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1513 source file information.") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1514 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1515 (defvar gud-jdb-history nil |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1516 "History of argument lists passed to jdb.") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1517 |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1518 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1519 ;; List of Java source file directories. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1520 (defvar gud-jdb-directories (list ".") |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1521 "*A list of directories that gud jdb should search for source code. |
28992
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1522 The file names should be absolute, or relative to the current |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1523 directory. |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1524 |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1525 The set of .java files residing in the directories listed are |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1526 syntactically analyzed to determine the classes they define and the |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1527 packages in which these classes belong. In this way gud jdb maps the |
28992
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1528 package-qualified class names output by the jdb debugger to the source |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1529 file from which the class originated. This allows gud mode to keep |
c547172f003f
(gud-jdb-directories): Doc fix.
Gerd Moellmann <gerd@gnu.org>
parents:
28731
diff
changeset
|
1530 the source code display in sync with the debugging session.") |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1531 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1532 (defvar gud-jdb-source-files nil |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1533 "List of the java source files for this debugging session.") |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1534 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1535 ;; Association list of fully qualified class names (package + class name) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1536 ;; and their source files. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1537 (defvar gud-jdb-class-source-alist nil |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1538 "Association list of fully qualified class names and source files.") |
22215
9a2d76cd1da4
(gud-jdb-class-source-alist): defvar moved up.
Richard M. Stallman <rms@gnu.org>
parents:
22173
diff
changeset
|
1539 |
9a2d76cd1da4
(gud-jdb-class-source-alist): defvar moved up.
Richard M. Stallman <rms@gnu.org>
parents:
22173
diff
changeset
|
1540 ;; This is used to hold a source file during analysis. |
9a2d76cd1da4
(gud-jdb-class-source-alist): defvar moved up.
Richard M. Stallman <rms@gnu.org>
parents:
22173
diff
changeset
|
1541 (defvar gud-jdb-analysis-buffer nil) |
9a2d76cd1da4
(gud-jdb-class-source-alist): defvar moved up.
Richard M. Stallman <rms@gnu.org>
parents:
22173
diff
changeset
|
1542 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1543 (defvar gud-jdb-classpath-string nil |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1544 "Holds temporary classpath values.") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1545 |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1546 (defun gud-jdb-build-source-files-list (path extn) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1547 "Return a list of java source files (absolute paths). |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1548 PATH gives the directories in which to search for files with |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1549 extension EXTN. Normally EXTN is given as the regular expression |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1550 \"\\.java$\" ." |
28590
784c31479eb2
(gud-jdb-build-source-files-list): Check that directory
Gerd Moellmann <gerd@gnu.org>
parents:
27833
diff
changeset
|
1551 (apply 'nconc (mapcar (lambda (d) |
28614
d63fb3b5adad
(gud-jdb-build-source-files-list): Fix typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
28599
diff
changeset
|
1552 (when (file-directory-p d) |
37696
d85fcac9a91d
(gud-jdb-build-source-files-list): Fix paren typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
35599
diff
changeset
|
1553 (directory-files d t extn nil))) |
d85fcac9a91d
(gud-jdb-build-source-files-list): Fix paren typo.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
35599
diff
changeset
|
1554 path))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1555 |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1556 ;; Move point past whitespace. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1557 (defun gud-jdb-skip-whitespace () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1558 (skip-chars-forward " \n\r\t\014")) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1559 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1560 ;; Move point past a "// <eol>" type of comment. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1561 (defun gud-jdb-skip-single-line-comment () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1562 (end-of-line)) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1563 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1564 ;; Move point past a "/* */" or "/** */" type of comment. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1565 (defun gud-jdb-skip-traditional-or-documentation-comment () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1566 (forward-char 2) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1567 (catch 'break |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1568 (while (not (eobp)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1569 (if (eq (following-char) ?*) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1570 (progn |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1571 (forward-char) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1572 (if (not (eobp)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1573 (if (eq (following-char) ?/) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1574 (progn |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1575 (forward-char) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1576 (throw 'break nil))))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1577 (forward-char))))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1578 |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1579 ;; Move point past any number of consecutive whitespace chars and/or comments. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1580 (defun gud-jdb-skip-whitespace-and-comments () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1581 (gud-jdb-skip-whitespace) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1582 (catch 'done |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1583 (while t |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1584 (cond |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1585 ((looking-at "//") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1586 (gud-jdb-skip-single-line-comment) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1587 (gud-jdb-skip-whitespace)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1588 ((looking-at "/\\*") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1589 (gud-jdb-skip-traditional-or-documentation-comment) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1590 (gud-jdb-skip-whitespace)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1591 (t (throw 'done nil)))))) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1592 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1593 ;; Move point past things that are id-like. The intent is to skip regular |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1594 ;; id's, such as class or interface names as well as package and interface |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1595 ;; names. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1596 (defun gud-jdb-skip-id-ish-thing () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1597 (skip-chars-forward "^ /\n\r\t\014,;{")) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1598 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1599 ;; Move point past a string literal. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1600 (defun gud-jdb-skip-string-literal () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1601 (forward-char) |
24736
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
1602 (while (not (cond |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
1603 ((eq (following-char) ?\\) |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
1604 (forward-char)) |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
1605 ((eq (following-char) ?\042)))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1606 (forward-char)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1607 (forward-char)) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1608 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1609 ;; Move point past a character literal. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1610 (defun gud-jdb-skip-character-literal () |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1611 (forward-char) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1612 (while |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1613 (progn |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1614 (if (eq (following-char) ?\\) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1615 (forward-char 2)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1616 (not (eq (following-char) ?\'))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1617 (forward-char)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1618 (forward-char)) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1619 |
44178 | 1620 ;; Move point past the following block. There may be (legal) cruft before |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1621 ;; the block's opening brace. There must be a block or it's the end of life |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1622 ;; in petticoat junction. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1623 (defun gud-jdb-skip-block () |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1624 |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1625 ;; Find the begining of the block. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1626 (while |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1627 (not (eq (following-char) ?{)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1628 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1629 ;; Skip any constructs that can harbor literal block delimiter |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1630 ;; characters and/or the delimiters for the constructs themselves. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1631 (cond |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1632 ((looking-at "//") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1633 (gud-jdb-skip-single-line-comment)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1634 ((looking-at "/\\*") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1635 (gud-jdb-skip-traditional-or-documentation-comment)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1636 ((eq (following-char) ?\042) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1637 (gud-jdb-skip-string-literal)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1638 ((eq (following-char) ?\') |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1639 (gud-jdb-skip-character-literal)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1640 (t (forward-char)))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1641 |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1642 ;; Now at the begining of the block. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1643 (forward-char) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1644 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1645 ;; Skip over the body of the block as well as the final brace. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1646 (let ((open-level 1)) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1647 (while (not (eq open-level 0)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1648 (cond |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1649 ((looking-at "//") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1650 (gud-jdb-skip-single-line-comment)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1651 ((looking-at "/\\*") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1652 (gud-jdb-skip-traditional-or-documentation-comment)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1653 ((eq (following-char) ?\042) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1654 (gud-jdb-skip-string-literal)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1655 ((eq (following-char) ?\') |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1656 (gud-jdb-skip-character-literal)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1657 ((eq (following-char) ?{) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1658 (setq open-level (+ open-level 1)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1659 (forward-char)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1660 ((eq (following-char) ?}) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1661 (setq open-level (- open-level 1)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1662 (forward-char)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1663 (t (forward-char)))))) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1664 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1665 ;; Find the package and class definitions in Java source file FILE. Assumes |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1666 ;; that FILE contains a legal Java program. BUF is a scratch buffer used |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1667 ;; to hold the source during analysis. |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1668 (defun gud-jdb-analyze-source (buf file) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1669 (let ((l nil)) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1670 (set-buffer buf) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1671 (insert-file-contents file nil nil nil t) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1672 (goto-char 0) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1673 (catch 'abort |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1674 (let ((p "")) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1675 (while (progn |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1676 (gud-jdb-skip-whitespace) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1677 (not (eobp))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1678 (cond |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1679 |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1680 ;; Any number of semi's following a block is legal. Move point |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1681 ;; past them. Note that comments and whitespace may be |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1682 ;; interspersed as well. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1683 ((eq (following-char) ?\073) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1684 (forward-char)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1685 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1686 ;; Move point past a single line comment. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1687 ((looking-at "//") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1688 (gud-jdb-skip-single-line-comment)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1689 |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1690 ;; Move point past a traditional or documentation comment. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1691 ((looking-at "/\\*") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1692 (gud-jdb-skip-traditional-or-documentation-comment)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1693 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1694 ;; Move point past a package statement, but save the PackageName. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1695 ((looking-at "package") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1696 (forward-char 7) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1697 (gud-jdb-skip-whitespace-and-comments) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1698 (let ((s (point))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1699 (gud-jdb-skip-id-ish-thing) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1700 (setq p (concat (buffer-substring s (point)) ".")) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1701 (gud-jdb-skip-whitespace-and-comments) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1702 (if (eq (following-char) ?\073) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1703 (forward-char)))) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1704 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1705 ;; Move point past an import statement. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1706 ((looking-at "import") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1707 (forward-char 6) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1708 (gud-jdb-skip-whitespace-and-comments) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1709 (gud-jdb-skip-id-ish-thing) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1710 (gud-jdb-skip-whitespace-and-comments) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1711 (if (eq (following-char) ?\073) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1712 (forward-char))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1713 |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1714 ;; Move point past the various kinds of ClassModifiers. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1715 ((looking-at "public") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1716 (forward-char 6)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1717 ((looking-at "abstract") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1718 (forward-char 8)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1719 ((looking-at "final") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1720 (forward-char 5)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1721 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1722 ;; Move point past a ClassDeclaraction, but save the class |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1723 ;; Identifier. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1724 ((looking-at "class") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1725 (forward-char 5) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1726 (gud-jdb-skip-whitespace-and-comments) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1727 (let ((s (point))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1728 (gud-jdb-skip-id-ish-thing) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1729 (setq |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1730 l (nconc l (list (concat p (buffer-substring s (point))))))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1731 (gud-jdb-skip-block)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1732 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1733 ;; Move point past an interface statement. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1734 ((looking-at "interface") |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1735 (forward-char 9) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1736 (gud-jdb-skip-block)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1737 |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1738 ;; Anything else means the input is invalid. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1739 (t |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1740 (message (format "Error parsing file %s." file)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1741 (throw 'abort nil)))))) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1742 l)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1743 |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1744 (defun gud-jdb-build-class-source-alist-for-file (file) |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1745 (mapcar |
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1746 (lambda (c) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1747 (cons c file)) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1748 (gud-jdb-analyze-source gud-jdb-analysis-buffer file))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1749 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1750 ;; Return an alist of fully qualified classes and the source files |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1751 ;; holding their definitions. SOURCES holds a list of all the source |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1752 ;; files to examine. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1753 (defun gud-jdb-build-class-source-alist (sources) |
27833
d31e5fcf98d7
(gud-jdb-build-class-source-alist): Prepend space to scratch buffer
Dave Love <fx@gnu.org>
parents:
26351
diff
changeset
|
1754 (setq gud-jdb-analysis-buffer (get-buffer-create " *gud-jdb-scratch*")) |
21437
a2a8f6772465
(jdb): Do proper analysis of classes defined in a Java
Karl Heuer <kwzh@gnu.org>
parents:
21336
diff
changeset
|
1755 (prog1 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1756 (apply |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1757 'nconc |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1758 (mapcar |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1759 'gud-jdb-build-class-source-alist-for-file |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1760 sources)) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1761 (kill-buffer gud-jdb-analysis-buffer) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1762 (setq gud-jdb-analysis-buffer nil))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1763 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1764 ;; Change what was given in the minibuffer to something that can be used to |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1765 ;; invoke the debugger. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1766 (defun gud-jdb-massage-args (file args) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1767 ;; The jdb executable must have whitespace between "-classpath" and |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1768 ;; its value while gud-common-init expects all switch values to |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1769 ;; follow the switch keyword without intervening whitespace. We |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1770 ;; require that when the user enters the "-classpath" switch in the |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1771 ;; EMACS minibuffer that they do so without the intervening |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1772 ;; whitespace. This function adds it back (it's called after |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
1773 ;; gud-common-init). There are more switches like this (for |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1774 ;; instance "-host" and "-password") but I don't care about them |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1775 ;; yet. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1776 (if args |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1777 (let (massaged-args user-error) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1778 |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1779 (while (and args (not user-error)) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1780 (cond |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1781 ((setq user-error (string-match "-classpath$" (car args)))) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1782 ((setq user-error (string-match "-sourcepath$" (car args)))) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1783 ((string-match "-classpath\\(.+\\)" (car args)) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1784 (setq massaged-args |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1785 (append massaged-args |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1786 (list "-classpath" |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1787 (setq gud-jdb-classpath-string |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1788 (match-string 1 (car args))))))) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1789 ((string-match "-sourcepath\\(.+\\)" (car args)) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1790 (setq massaged-args |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1791 (append massaged-args |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1792 (list "-sourcepath" |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1793 (setq gud-jdb-sourcepath |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1794 (match-string 1 (car args))))))) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1795 (t (setq massaged-args (append massaged-args (list (car args)))))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1796 (setq args (cdr args))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1797 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1798 ;; By this point the current directory is all screwed up. Maybe we |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1799 ;; could fix things and re-invoke gud-common-init, but for now I think |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1800 ;; issueing the error is good enough. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1801 (if user-error |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1802 (progn |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1803 (kill-buffer (current-buffer)) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1804 (error "Error: Omit whitespace between '-classpath or -sourcepath' and its value"))) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1805 massaged-args))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1806 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1807 ;; Search for an association with P, a fully qualified class name, in |
44178 | 1808 ;; gud-jdb-class-source-alist. The asssociation gives the fully |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1809 ;; qualified file name of the source file which produced the class. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1810 (defun gud-jdb-find-source-file (p) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1811 (cdr (assoc p gud-jdb-class-source-alist))) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1812 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1813 ;; Note: Reset to this value every time a prompt is seen |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1814 (defvar gud-jdb-lowest-stack-level 999) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1815 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1816 (defun gud-jdb-find-source-using-classpath (p) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1817 "Find source file corresponding to fully qualified class p. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1818 Convert p from jdb's output, converted to a pathname |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1819 relative to a classpath directory." |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1820 (save-match-data |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1821 (let |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1822 (;; Replace dots with slashes and append ".java" to generate file |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1823 ;; name relative to classpath |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1824 (filename |
44178 | 1825 (concat |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1826 (mapconcat 'identity |
44178 | 1827 (split-string |
1828 ;; Eliminate any subclass references in the class | |
1829 ;; name string. These start with a "$" | |
1830 ((lambda (x) | |
1831 (if (string-match "$.*" x) | |
1832 (replace-match "" t t x) p)) | |
1833 p) | |
1834 "\\.") "/") | |
1835 ".java")) | |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1836 (cplist (append gud-jdb-sourcepath gud-jdb-classpath)) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1837 found-file) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1838 (while (and cplist |
44178 | 1839 (not (setq found-file |
1840 (file-readable-p | |
1841 (concat (car cplist) "/" filename))))) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1842 (setq cplist (cdr cplist))) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1843 (if found-file (concat (car cplist) "/" filename))))) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1844 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1845 (defun gud-jdb-find-source (string) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1846 "Alias for function used to locate source files. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1847 Set to `gud-jdb-find-source-using-classpath' or `gud-jdb-find-source-file' |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1848 during jdb initialization depending on the value of |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1849 `gud-jdb-use-classpath'." |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1850 nil) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1851 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1852 (defun gud-jdb-parse-classpath-string (string) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1853 "Parse the classpath list and convert each item to an absolute pathname." |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1854 (mapcar (lambda (s) (if (string-match "[/\\]$" s) |
44178 | 1855 (replace-match "" nil nil s) s)) |
1856 (mapcar 'file-truename | |
1857 (split-string | |
1858 string | |
1859 (concat "[ \t\n\r,\"" path-separator "]+"))))) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1860 |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1861 ;; See comentary for other debugger's marker filters - there you will find |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1862 ;; important notes about STRING. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1863 (defun gud-jdb-marker-filter (string) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1864 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1865 ;; Build up the accumulator. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1866 (setq gud-marker-acc |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1867 (if gud-marker-acc |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1868 (concat gud-marker-acc string) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1869 string)) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1870 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1871 ;; Look for classpath information until gud-jdb-classpath-string is found |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1872 ;; (interactive, multiple settings of classpath from jdb |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1873 ;; not supported/followed) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1874 (if (and gud-jdb-use-classpath |
44178 | 1875 (not gud-jdb-classpath-string) |
1876 (or (string-match "classpath:[ \t[]+\\([^]]+\\)" gud-marker-acc) | |
1877 (string-match "-classpath[ \t\"]+\\([^ \"]+\\)" gud-marker-acc))) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1878 (setq gud-jdb-classpath |
44178 | 1879 (gud-jdb-parse-classpath-string |
1880 (setq gud-jdb-classpath-string | |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1881 (match-string 1 gud-marker-acc))))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1882 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1883 ;; We process STRING from left to right. Each time through the |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1884 ;; following loop we process at most one marker. After we've found a |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1885 ;; marker, delete gud-marker-acc up to and including the match |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1886 (let (file-found) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1887 ;; Process each complete marker in the input. |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1888 (while |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1889 |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1890 ;; Do we see a marker? |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1891 (string-match |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1892 ;; jdb puts out a string of the following form when it |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1893 ;; hits a breakpoint: |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1894 ;; |
44178 | 1895 ;; <fully-qualified-class><method> (<class>:<line-number>) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1896 ;; |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1897 ;; <fully-qualified-class>'s are composed of Java ID's |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1898 ;; separated by periods. <method> and <class> are |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1899 ;; also Java ID's. <method> begins with a period and |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1900 ;; may contain less-than and greater-than (constructors, |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1901 ;; for instance, are called <init> in the symbol table.) |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1902 ;; Java ID's begin with a letter followed by letters |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1903 ;; and/or digits. The set of letters includes underscore |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1904 ;; and dollar sign. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1905 ;; |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1906 ;; The first group matches <fully-qualified-class>, |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1907 ;; the second group matches <class> and the third group |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1908 ;; matches <line-number>. We don't care about using |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1909 ;; <method> so we don't "group" it. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1910 ;; |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1911 ;; FIXME: Java ID's are UNICODE strings, this matches ASCII |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1912 ;; ID's only. |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1913 ;; |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1914 ;; The "," in the last square-bracket is necessary because of |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1915 ;; Sun's total disrespect for backwards compatibility in |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1916 ;; reported line numbers from jdb - starting in 1.4.0 they |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1917 ;; introduced a comma at the thousands position (how |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1918 ;; ingenious!) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1919 |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1920 "\\(\[[0-9]+\] \\)*\\([a-zA-Z0-9.$_]+\\)\\.[a-zA-Z0-9$_<>(),]+ \ |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1921 \\(([a-zA-Z0-9.$_]+:\\|line=\\)\\([0-9,]+\\)" |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1922 gud-marker-acc) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1923 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1924 ;; A good marker is one that: |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1925 ;; 1) does not have a "[n] " prefix (not part of a stack backtrace) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1926 ;; 2) does have an "[n] " prefix and n is the lowest prefix seen |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1927 ;; since the last prompt |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1928 ;; Figure out the line on which to position the debugging arrow. |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1929 ;; Return the info as a cons of the form: |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1930 ;; |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1931 ;; (<file-name> . <line-number>) . |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1932 (if (if (match-beginning 1) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1933 (let (n) |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1934 (setq n (string-to-int (substring |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1935 gud-marker-acc |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1936 (1+ (match-beginning 1)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1937 (- (match-end 1) 2)))) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1938 (if (< n gud-jdb-lowest-stack-level) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1939 (progn (setq gud-jdb-lowest-stack-level n) t))) |
44178 | 1940 t) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1941 (if (setq file-found |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
1942 (gud-jdb-find-source (match-string 2 gud-marker-acc))) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1943 (setq gud-last-frame |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1944 (cons file-found |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1945 (string-to-int |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
1946 (let |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1947 ((numstr (match-string 4 gud-marker-acc))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1948 (if (string-match "," numstr) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1949 (replace-match "" nil nil numstr) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
1950 numstr))))) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1951 (message "Could not find source file."))) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
1952 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1953 ;; Set the accumulator to the remaining text. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1954 (setq gud-marker-acc (substring gud-marker-acc (match-end 0)))) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1955 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1956 (if (string-match comint-prompt-regexp gud-marker-acc) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1957 (setq gud-jdb-lowest-stack-level 999))) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1958 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1959 ;; Do not allow gud-marker-acc to grow without bound. If the source |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1960 ;; file information is not within the last 3/4 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1961 ;; gud-marker-acc-max-length characters, well,... |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1962 (if (> (length gud-marker-acc) gud-marker-acc-max-length) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1963 (setq gud-marker-acc |
44178 | 1964 (substring gud-marker-acc |
1965 (- (/ (* gud-marker-acc-max-length 3) 4))))) | |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1966 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1967 ;; We don't filter any debugger output so just return what we were given. |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1968 string) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1969 |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
1970 (defvar gud-jdb-command-name "jdb" "Command that executes the Java debugger.") |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1971 |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1972 ;;;###autoload |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1973 (defun jdb (command-line) |
41952 | 1974 "Run jdb with command line COMMAND-LINE in a buffer. |
1975 The buffer is named \"*gud*\" if no initial class is given or | |
44178 | 1976 \"*gud-<initial-class-basename>*\" if there is. If the \"-classpath\" |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1977 switch is given, omit all whitespace between it and its value. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1978 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1979 See `gud-jdb-use-classpath' and `gud-jdb-classpath' documentation for |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1980 information on how jdb accesses source files. Alternatively (if |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1981 `gud-jdb-use-classpath' is nil), see `gud-jdb-directories' for the |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1982 original source file access method. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1983 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1984 For general information about commands available to control jdb from |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1985 gud, see `gud-mode'." |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1986 (interactive |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
1987 (list (gud-query-cmdline 'jdb))) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1988 (setq gud-jdb-classpath nil) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
1989 (setq gud-jdb-sourcepath nil) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1990 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1991 ;; Set gud-jdb-classpath from the CLASSPATH environment variable, |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1992 ;; if CLASSPATH is set. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1993 (setq gud-jdb-classpath-string (getenv "CLASSPATH")) |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1994 (if gud-jdb-classpath-string |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1995 (setq gud-jdb-classpath |
44178 | 1996 (gud-jdb-parse-classpath-string gud-jdb-classpath-string))) |
1997 (setq gud-jdb-classpath-string nil) ; prepare for next | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
1998 |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
1999 (gud-common-init command-line 'gud-jdb-massage-args |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2000 'gud-jdb-marker-filter) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2001 (set (make-local-variable 'gud-minor-mode) 'jdb) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2002 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2003 ;; If a -classpath option was provided, set gud-jdb-classpath |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2004 (if gud-jdb-classpath-string |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2005 (setq gud-jdb-classpath |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2006 (gud-jdb-parse-classpath-string gud-jdb-classpath-string))) |
44178 | 2007 (setq gud-jdb-classpath-string nil) ; prepare for next |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2008 ;; If a -sourcepath option was provided, parse it |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2009 (if gud-jdb-sourcepath |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2010 (setq gud-jdb-sourcepath |
44178 | 2011 (gud-jdb-parse-classpath-string gud-jdb-sourcepath))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2012 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2013 (gud-def gud-break "stop at %c:%l" "\C-b" "Set breakpoint at current line.") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2014 (gud-def gud-remove "clear %c:%l" "\C-d" "Remove breakpoint at current line") |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2015 (gud-def gud-step "step" "\C-s" "Step one source line with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2016 (gud-def gud-next "next" "\C-n" "Step one line (skip functions).") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2017 (gud-def gud-cont "cont" "\C-r" "Continue with display.") |
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2018 (gud-def gud-finish "step up" "\C-f" "Continue until current method returns.") |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2019 (gud-def gud-up "up\C-Mwhere" "<" "Up one stack frame.") |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2020 (gud-def gud-down "down\C-Mwhere" ">" "Up one stack frame.") |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2021 (gud-def gud-run "run" nil "Run the program.") ;if VM start using jdb |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2022 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2023 (setq comint-prompt-regexp "^> \\|^[^ ]+\\[[0-9]+\\] ") |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2024 (setq paragraph-start comint-prompt-regexp) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2025 (run-hooks 'jdb-mode-hook) |
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2026 |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2027 (if gud-jdb-use-classpath |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2028 ;; Get the classpath information from the debugger |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2029 (progn |
44178 | 2030 (if (string-match "-attach" command-line) |
2031 (gud-call "classpath")) | |
2032 (fset 'gud-jdb-find-source | |
2033 'gud-jdb-find-source-using-classpath)) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2034 |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2035 ;; Else create and bind the class/source association list as well |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2036 ;; as the source file list. |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2037 (setq gud-jdb-class-source-alist |
44178 | 2038 (gud-jdb-build-class-source-alist |
2039 (setq gud-jdb-source-files | |
2040 (gud-jdb-build-source-files-list gud-jdb-directories | |
2041 "\\.java$")))) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2042 (fset 'gud-jdb-find-source 'gud-jdb-find-source-file))) |
21336
e78bc1ffd88d
Add support for jdb (Java debugger).
Richard M. Stallman <rms@gnu.org>
parents:
20756
diff
changeset
|
2043 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2044 |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2045 ;; ====================================================================== |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2046 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2047 ;; BASHDB support. See http://bashdb.sourceforge.net |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2048 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2049 ;; AUTHOR: Rocky Bernstein <rocky@panix.com> |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2050 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2051 ;; CREATED: Sun Nov 10 10:46:38 2002 Rocky Bernstein. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2052 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2053 ;; INVOCATION NOTES: |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2054 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2055 ;; You invoke bashdb-mode with: |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2056 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2057 ;; M-x bashdb <enter> |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2058 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2059 ;; It responds with: |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2060 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2061 ;; Run bashdb (like this): bash |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2062 ;; |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2063 |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2064 ;; History of argument lists passed to bashdb. |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2065 (defvar gud-bashdb-history nil) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2066 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2067 ;; Convert a command line as would be typed normally to run a script |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2068 ;; into one that invokes an Emacs-enabled debugging session. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2069 ;; "--debugger" in inserted as the first switch. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2070 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2071 ;; There's no guarantee that Emacs will hand the filter the entire |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2072 ;; marker at once; it could be broken up across several strings. We |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2073 ;; might even receive a big chunk with several markers in it. If we |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2074 ;; receive a chunk of text which looks like it might contain the |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2075 ;; beginning of a marker, we save it here between calls to the |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2076 ;; filter. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2077 (defun gud-bashdb-marker-filter (string) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2078 (setq gud-marker-acc (concat gud-marker-acc string)) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2079 (let ((output "")) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2080 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2081 ;; Process all the complete markers in this chunk. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2082 ;; Format of line looks like this: |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2083 ;; (/etc/init.d/ntp.init:16): |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2084 ;; but we also allow DOS drive letters |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2085 ;; (d:/etc/init.d/ntp.init:16): |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2086 (while (string-match "\\(^\\|\n\\)(\\(\\([a-zA-Z]:\\)?[^:\n]*\\):\\([0-9]*\\)):.*\n" |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2087 gud-marker-acc) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2088 (setq |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2089 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2090 ;; Extract the frame position from the marker. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2091 gud-last-frame |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2092 (cons (match-string 2 gud-marker-acc) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2093 (string-to-int (match-string 4 gud-marker-acc))) |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2094 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2095 ;; Append any text before the marker to the output we're going |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2096 ;; to return - we don't include the marker in this text. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2097 output (concat output |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2098 (substring gud-marker-acc 0 (match-beginning 0))) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2099 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2100 ;; Set the accumulator to the remaining text. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2101 gud-marker-acc (substring gud-marker-acc (match-end 0)))) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2102 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2103 ;; Does the remaining text look like it might end with the |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2104 ;; beginning of another marker? If it does, then keep it in |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2105 ;; gud-marker-acc until we receive the rest of it. Since we |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2106 ;; know the full marker regexp above failed, it's pretty simple to |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2107 ;; test for marker starts. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2108 (if (string-match "\032.*\\'" gud-marker-acc) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2109 (progn |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2110 ;; Everything before the potential marker start can be output. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2111 (setq output (concat output (substring gud-marker-acc |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2112 0 (match-beginning 0)))) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2113 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2114 ;; Everything after, we save, to combine with later input. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2115 (setq gud-marker-acc |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2116 (substring gud-marker-acc (match-beginning 0)))) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2117 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2118 (setq output (concat output gud-marker-acc) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2119 gud-marker-acc "")) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2120 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2121 output)) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2122 |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2123 (defcustom gud-bashdb-command-name "bash --debugger" |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2124 "File name for executing bash debugger." |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2125 :type 'string |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2126 :group 'gud) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2127 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2128 ;;;###autoload |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2129 (defun bashdb (command-line) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2130 "Run bashdb on program FILE in buffer *gud-FILE*. |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2131 The directory containing FILE becomes the initial working directory |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2132 and source-file directory for your debugger." |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2133 (interactive |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2134 (list (read-from-minibuffer "Run bashdb (like this): " |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2135 (if (consp gud-bashdb-history) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2136 (car gud-bashdb-history) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2137 (concat gud-bashdb-command-name |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2138 " ")) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2139 gud-minibuffer-local-map nil |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2140 '(gud-bashdb-history . 1)))) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2141 |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2142 (gud-common-init command-line nil 'gud-bashdb-marker-filter) |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2143 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2144 (set (make-local-variable 'gud-minor-mode) 'bashdb) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2145 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2146 (gud-def gud-break "break %l" "\C-b" "Set breakpoint at current line.") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2147 (gud-def gud-tbreak "tbreak %l" "\C-t" "Set temporary breakpoint at current line.") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2148 (gud-def gud-remove "clear %l" "\C-d" "Remove breakpoint at current line") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2149 (gud-def gud-step "step" "\C-s" "Step one source line with display.") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2150 (gud-def gud-next "next" "\C-n" "Step one line (skip functions).") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2151 (gud-def gud-cont "continue" "\C-r" "Continue with display.") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2152 (gud-def gud-finish "finish" "\C-f" "Finish executing current function.") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2153 (gud-def gud-up "up %p" "<" "Up N stack frames (numeric arg).") |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2154 (gud-def gud-down "down %p" ">" "Down N stack frames (numeric arg).") |
48795
480e8dc8fc37
(bashdb): Prompt now included parenthesis for subshell
Richard M. Stallman <rms@gnu.org>
parents:
48679
diff
changeset
|
2155 (gud-def gud-print "x %e" "\C-p" "Evaluate BASH expression at point.") |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2156 |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2157 ;; Is this right? |
48795
480e8dc8fc37
(bashdb): Prompt now included parenthesis for subshell
Richard M. Stallman <rms@gnu.org>
parents:
48679
diff
changeset
|
2158 (gud-def gud-statement "eval %e" "\C-e" "Execute BASH statement at point.") |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2159 |
48795
480e8dc8fc37
(bashdb): Prompt now included parenthesis for subshell
Richard M. Stallman <rms@gnu.org>
parents:
48679
diff
changeset
|
2160 (setq comint-prompt-regexp "^bashdb<+(*[0-9]+)*>+ ") |
48657
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2161 (setq paragraph-start comint-prompt-regexp) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2162 (run-hooks 'bashdb-mode-hook) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2163 ) |
81f6fbdaa117
(gud-menu-map): Update for bashdb.
Richard M. Stallman <rms@gnu.org>
parents:
48638
diff
changeset
|
2164 |
460 | 2165 ;; |
2166 ;; End of debugger-specific information | |
477 | 2167 ;; |
460 | 2168 |
4729
fdbcbaea7296
(perldb): New function, plus subroutines.
Richard M. Stallman <rms@gnu.org>
parents:
4497
diff
changeset
|
2169 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2170 ;; When we send a command to the debugger via gud-call, it's annoying |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2171 ;; to see the command and the new prompt inserted into the debugger's |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2172 ;; buffer; we have other ways of knowing the command has completed. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2173 ;; |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2174 ;; If the buffer looks like this: |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2175 ;; -------------------- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2176 ;; (gdb) set args foo bar |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2177 ;; (gdb) -!- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2178 ;; -------------------- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2179 ;; (the -!- marks the location of point), and we type `C-x SPC' in a |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2180 ;; source file to set a breakpoint, we want the buffer to end up like |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2181 ;; this: |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2182 ;; -------------------- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2183 ;; (gdb) set args foo bar |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2184 ;; Breakpoint 1 at 0x92: file make-docfile.c, line 49. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2185 ;; (gdb) -!- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2186 ;; -------------------- |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2187 ;; Essentially, the old prompt is deleted, and the command's output |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2188 ;; and the new prompt take its place. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2189 ;; |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2190 ;; Not echoing the command is easy enough; you send it directly using |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2191 ;; process-send-string, and it never enters the buffer. However, |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2192 ;; getting rid of the old prompt is trickier; you don't want to do it |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2193 ;; when you send the command, since that will result in an annoying |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2194 ;; flicker as the prompt is deleted, redisplay occurs while Emacs |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2195 ;; waits for a response from the debugger, and the new prompt is |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2196 ;; inserted. Instead, we'll wait until we actually get some output |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2197 ;; from the subprocess before we delete the prompt. If the command |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2198 ;; produced no output other than a new prompt, that prompt will most |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2199 ;; likely be in the first chunk of output received, so we will delete |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2200 ;; the prompt and then replace it with an identical one. If the |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2201 ;; command produces output, the prompt is moving anyway, so the |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2202 ;; flicker won't be annoying. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2203 ;; |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2204 ;; So - when we want to delete the prompt upon receipt of the next |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2205 ;; chunk of debugger output, we position gud-delete-prompt-marker at |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2206 ;; the start of the prompt; the process filter will notice this, and |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2207 ;; delete all text between it and the process output marker. If |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2208 ;; gud-delete-prompt-marker points nowhere, we leave the current |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2209 ;; prompt alone. |
1256
ff24725192d3
* gud.el: When we send a command to the debugger via gud-call,
Jim Blandy <jimb@redhat.com>
parents:
1255
diff
changeset
|
2210 (defvar gud-delete-prompt-marker nil) |
ff24725192d3
* gud.el: When we send a command to the debugger via gud-call,
Jim Blandy <jimb@redhat.com>
parents:
1255
diff
changeset
|
2211 |
460 | 2212 |
17658
c8e002cdebb2
(gud-mode): Add a mode-class property.
Richard M. Stallman <rms@gnu.org>
parents:
16843
diff
changeset
|
2213 (put 'gud-mode 'mode-class 'special) |
c8e002cdebb2
(gud-mode): Add a mode-class property.
Richard M. Stallman <rms@gnu.org>
parents:
16843
diff
changeset
|
2214 |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2215 (define-derived-mode gud-mode comint-mode "Debugger" |
460 | 2216 "Major mode for interacting with an inferior debugger process. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2217 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2218 You start it up with one of the commands M-x gdb, M-x sdb, M-x dbx, |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2219 M-x perldb, M-x xdb, or M-x jdb. Each entry point finishes by executing a |
14934 | 2220 hook; `gdb-mode-hook', `sdb-mode-hook', `dbx-mode-hook', |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2221 `perldb-mode-hook', `xdb-mode-hook', or `jdb-mode-hook' respectively. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2222 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2223 After startup, the following commands are available in both the GUD |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2224 interaction buffer and any source buffer GUD visits due to a breakpoint stop |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2225 or step operation: |
460 | 2226 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2227 \\[gud-break] sets a breakpoint at the current file and line. In the |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2228 GUD buffer, the current file and line are those of the last breakpoint or |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2229 step. In a source buffer, they are the buffer's file and current line. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2230 |
2532
17a6b6d079cf
(gud-mode): Created C-c synonym bindings in the GUD buffer's local map.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2519
diff
changeset
|
2231 \\[gud-remove] removes breakpoints on the current file and line. |
17a6b6d079cf
(gud-mode): Created C-c synonym bindings in the GUD buffer's local map.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2519
diff
changeset
|
2232 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2233 \\[gud-refresh] displays in the source window the last line referred to |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2234 in the gud buffer. |
460 | 2235 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2236 \\[gud-step], \\[gud-next], and \\[gud-stepi] do a step-one-line, |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2237 step-one-line (not entering function calls), and step-one-instruction |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2238 and then update the source window with the current file and position. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2239 \\[gud-cont] continues execution. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2240 |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2241 \\[gud-print] tries to find the largest C lvalue or function-call expression |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2242 around point, and sends it to the debugger for value display. |
460 | 2243 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2244 The above commands are common to all supported debuggers except xdb which |
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2245 does not support stepping instructions. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2246 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2247 Under gdb, sdb and xdb, \\[gud-tbreak] behaves exactly like \\[gud-break], |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2248 except that the breakpoint is temporary; that is, it is removed when |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2249 execution stops on it. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2250 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2251 Under gdb, dbx, and xdb, \\[gud-up] pops up through an enclosing stack |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2252 frame. \\[gud-down] drops back down through one. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2253 |
3738
c5ebd279e007
(xdb): New debugger supported (xdb under HPUX-PARISC).
Richard M. Stallman <rms@gnu.org>
parents:
3646
diff
changeset
|
2254 If you are using gdb or xdb, \\[gud-finish] runs execution to the return from |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2255 the current function and stops. |
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2256 |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2257 All the keystrokes above are accessible in the GUD buffer |
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2258 with the prefix C-c, and in all buffers through the prefix C-x C-a. |
2532
17a6b6d079cf
(gud-mode): Created C-c synonym bindings in the GUD buffer's local map.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2519
diff
changeset
|
2259 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2260 All pre-defined functions for which the concept make sense repeat |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2261 themselves the appropriate number of times if you give a prefix |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2262 argument. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2263 |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2264 You may use the `gud-def' macro in the initialization hook to define other |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2265 commands. |
868
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2266 |
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2267 Other commands for interacting with the debugger process are inherited from |
0cda1f7b154e
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
810
diff
changeset
|
2268 comint mode, which see." |
7074
b9d86b8e3ca1
(gud-mode, gud-sentinel):
Richard M. Stallman <rms@gnu.org>
parents:
7009
diff
changeset
|
2269 (setq mode-line-process '(":%s")) |
5997
6187a2560211
(gud-mode): Define C-c C-l in gud buffer.
Richard M. Stallman <rms@gnu.org>
parents:
5508
diff
changeset
|
2270 (define-key (current-local-map) "\C-c\C-l" 'gud-refresh) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2271 (set (make-local-variable 'gud-last-frame) nil) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2272 (set (make-local-variable 'tool-bar-map) gud-tool-bar-map) |
460 | 2273 (make-local-variable 'comint-prompt-regexp) |
16327
2239440f2f00
(gud-perldb-massage-args): Handle -e in ARGS.
Richard M. Stallman <rms@gnu.org>
parents:
16250
diff
changeset
|
2274 ;; Don't put repeated commands in command history many times. |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2275 (set (make-local-variable 'comint-input-ignoredups) t) |
6997
efca30974157
(gdb, sdb, dbx, xdb, perldb): Set paragraph-start.
Richard M. Stallman <rms@gnu.org>
parents:
6821
diff
changeset
|
2276 (make-local-variable 'paragraph-start) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2277 (set (make-local-variable 'gud-delete-prompt-marker) (make-marker))) |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2278 |
23735
9392dd2e6137
(gud-common-init): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
22734
diff
changeset
|
2279 ;; Cause our buffers to be displayed, by default, |
9392dd2e6137
(gud-common-init): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
22734
diff
changeset
|
2280 ;; in the selected window. |
9392dd2e6137
(gud-common-init): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
22734
diff
changeset
|
2281 ;;;###autoload (add-hook 'same-window-regexps "\\*gud-.*\\*\\(\\|<[0-9]+>\\)") |
9392dd2e6137
(gud-common-init): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
22734
diff
changeset
|
2282 |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2283 (defcustom gud-chdir-before-run t |
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2284 "Non-nil if GUD should `cd' to the debugged executable." |
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2285 :group 'gud |
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2286 :type 'boolean) |
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2287 |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2288 (defvar gud-target-name "--unknown--" |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2289 "The apparent name of the program being debugged in a gud buffer.") |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2290 |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2291 ;; Perform initializations common to all debuggers. |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2292 ;; The first arg is the specified command line, |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2293 ;; which starts with the program to debug. |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2294 ;; The other three args specify the values to use |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2295 ;; for local variables in the debugger buffer. |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2296 (defun gud-common-init (command-line massage-args marker-filter |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2297 &optional find-file) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2298 (let* ((words (split-string command-line)) |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2299 (program (car words)) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2300 (dir default-directory) |
10876
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2301 ;; Extract the file name from WORDS |
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2302 ;; and put t in its place. |
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2303 ;; Later on we will put the modified file name arg back there. |
4092
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2304 (file-word (let ((w (cdr words))) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2305 (while (and w (= ?- (aref (car w) 0))) |
e72012acb5fb
(gud-debugger-startup): Replaced with gud-massage-args.
Roland McGrath <roland@gnu.org>
parents:
4016
diff
changeset
|
2306 (setq w (cdr w))) |
11930
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2307 (and w |
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2308 (prog1 (car w) |
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2309 (setcar w t))))) |
9743
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2310 (file-subst |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2311 (and file-word (substitute-in-file-name file-word))) |
10876
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2312 (args (cdr words)) |
9743
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2313 ;; If a directory was specified, expand the file name. |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2314 ;; Otherwise, don't expand it, so GDB can use the PATH. |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2315 ;; A file name without directory is literally valid |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2316 ;; only if the file exists in ., and in that case, |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2317 ;; omitting the expansion here has no visible effect. |
5508
67db1f804162
(gud-common-init): Don't crash if no file specified.
Richard M. Stallman <rms@gnu.org>
parents:
5264
diff
changeset
|
2318 (file (and file-word |
9743
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2319 (if (file-name-directory file-subst) |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2320 (expand-file-name file-subst) |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2321 file-subst))) |
11930
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2322 (filepart (and file-word (concat "-" (file-name-nondirectory file))))) |
23735
9392dd2e6137
(gud-common-init): Use pop-to-buffer.
Richard M. Stallman <rms@gnu.org>
parents:
22734
diff
changeset
|
2323 (pop-to-buffer (concat "*gud" filepart "*")) |
48638
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2324 ;; Set the dir, in case the buffer already existed with a different dir. |
fff05c8f251d
(gud-running): Rename from gdb-running. Update uses.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48571
diff
changeset
|
2325 (setq default-directory dir) |
9743
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2326 ;; Set default-directory to the file's directory. |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2327 (and file-word |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2328 gud-chdir-before-run |
9743
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2329 ;; Don't set default-directory if no directory was specified. |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2330 ;; In that case, either the file is found in the current directory, |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2331 ;; in which case this setq is a no-op, |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2332 ;; or it is found by searching PATH, |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2333 ;; in which case we don't know what directory it was found in. |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2334 (file-name-directory file) |
6a97ed1cc733
(gud-common-init): If file arg has no directory,
Richard M. Stallman <rms@gnu.org>
parents:
9695
diff
changeset
|
2335 (setq default-directory (file-name-directory file))) |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2336 (or (bolp) (newline)) |
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2337 (insert "Current directory is " default-directory "\n") |
10876
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2338 ;; Put the substituted and expanded file name back in its place. |
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2339 (let ((w args)) |
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2340 (while (and w (not (eq (car w) t))) |
715419786d7f
(gud-common-init): Put substed file name back in original
Richard M. Stallman <rms@gnu.org>
parents:
10518
diff
changeset
|
2341 (setq w (cdr w))) |
11930
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2342 (if w |
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2343 (setcar w file))) |
d86841220451
(gud-common-init): Don't die if filename not supplied.
Karl Heuer <kwzh@gnu.org>
parents:
11583
diff
changeset
|
2344 (apply 'make-comint (concat "gud" filepart) program nil |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2345 (if massage-args (funcall massage-args file args) args)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2346 ;; Since comint clobbered the mode, we don't set it until now. |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2347 (gud-mode) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2348 (set (make-local-variable 'gud-target-name) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2349 (and file-word (file-name-nondirectory file)))) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2350 (set (make-local-variable 'gud-marker-filter) marker-filter) |
37878
f79c061ff77a
(gud-gdb-run-command-fetch-lines): Use forward-line
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
37696
diff
changeset
|
2351 (if find-file (set (make-local-variable 'gud-find-file) find-file)) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2352 (setq gud-running nil) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2353 (setq gud-last-last-frame nil) |
9190
4e66c15e2d6c
(gud-overload-functions): Function deleted.
Richard M. Stallman <rms@gnu.org>
parents:
8645
diff
changeset
|
2354 |
460 | 2355 (set-process-filter (get-buffer-process (current-buffer)) 'gud-filter) |
2356 (set-process-sentinel (get-buffer-process (current-buffer)) 'gud-sentinel) | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2357 (gud-set-buffer)) |
460 | 2358 |
2359 (defun gud-set-buffer () | |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2360 (when (eq major-mode 'gud-mode) |
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2361 (setq gud-comint-buffer (current-buffer)))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2362 |
13003
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2363 (defvar gud-filter-defer-flag nil |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2364 "Non-nil means don't process anything from the debugger right now. |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2365 It is saved for when this flag is not set.") |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2366 |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2367 (defvar gud-filter-pending-text nil |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2368 "Non-nil means this is text that has been saved for later in `gud-filter'.") |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2369 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2370 ;; These functions are responsible for inserting output from your debugger |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2371 ;; into the buffer. The hard work is done by the method that is |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2372 ;; the value of gud-marker-filter. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2373 |
460 | 2374 (defun gud-filter (proc string) |
2375 ;; Here's where the actual buffer insertion is done | |
13190
1e174c7e3a00
(gud-filter): Move the gud-display-frame call
Richard M. Stallman <rms@gnu.org>
parents:
13003
diff
changeset
|
2376 (let (output process-window) |
9519
c7925093b270
(gud-filter): Don't bind inhibit-quit.
Richard M. Stallman <rms@gnu.org>
parents:
9191
diff
changeset
|
2377 (if (buffer-name (process-buffer proc)) |
13003
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2378 (if gud-filter-defer-flag |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2379 ;; If we can't process any text now, |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2380 ;; save it for later. |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2381 (setq gud-filter-pending-text |
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2382 (concat (or gud-filter-pending-text "") string)) |
15185
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2383 |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2384 ;; If we have to ask a question during the processing, |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2385 ;; defer any additional text that comes from the debugger |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2386 ;; during that time. |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2387 (let ((gud-filter-defer-flag t)) |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2388 ;; Process now any text we previously saved up. |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2389 (if gud-filter-pending-text |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2390 (setq string (concat gud-filter-pending-text string) |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2391 gud-filter-pending-text nil)) |
30736
48d749ce74e4
(gud-filter): Use `with-current-buffer' instead of save-excursion when
Miles Bader <miles@gnu.org>
parents:
30643
diff
changeset
|
2392 |
48d749ce74e4
(gud-filter): Use `with-current-buffer' instead of save-excursion when
Miles Bader <miles@gnu.org>
parents:
30643
diff
changeset
|
2393 (with-current-buffer (process-buffer proc) |
13003
4711396531e8
(gud-filter): Save up text that arrives while processing previous text.
Richard M. Stallman <rms@gnu.org>
parents:
12743
diff
changeset
|
2394 ;; If we have been so requested, delete the debugger prompt. |
30959
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2395 (save-restriction |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2396 (widen) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2397 (if (marker-buffer gud-delete-prompt-marker) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2398 (progn |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2399 (delete-region (process-mark proc) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2400 gud-delete-prompt-marker) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2401 (set-marker gud-delete-prompt-marker nil))) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2402 ;; Save the process output, checking for source file markers. |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2403 (setq output (gud-marker-filter string)) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2404 ;; Check for a filename-and-line number. |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2405 ;; Don't display the specified file |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2406 ;; unless (1) point is at or after the position where output appears |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2407 ;; and (2) this buffer is on the screen. |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2408 (setq process-window |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2409 (and gud-last-frame |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2410 (>= (point) (process-mark proc)) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2411 (get-buffer-window (current-buffer))))) |
15185
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2412 |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2413 ;; Let the comint filter do the actual insertion. |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2414 ;; That lets us inherit various comint features. |
22446
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2415 (comint-output-filter proc output)) |
13190
1e174c7e3a00
(gud-filter): Move the gud-display-frame call
Richard M. Stallman <rms@gnu.org>
parents:
13003
diff
changeset
|
2416 |
22446
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2417 ;; Put the arrow on the source line. |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2418 ;; This must be outside of the save-excursion |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2419 ;; in case the source file is our current buffer. |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2420 (if process-window |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2421 (save-selected-window |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2422 (select-window process-window) |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2423 (gud-display-frame)) |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2424 ;; We have to be in the proper buffer, (process-buffer proc), |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2425 ;; but not in a save-excursion, because that would restore point. |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2426 (let ((old-buf (current-buffer))) |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2427 (set-buffer (process-buffer proc)) |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2428 (unwind-protect |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2429 (gud-display-frame) |
5988c3c973db
(gud-filter): extend scope of binding of gud-filter-defer-flag.
Richard M. Stallman <rms@gnu.org>
parents:
22215
diff
changeset
|
2430 (set-buffer old-buf))))) |
13190
1e174c7e3a00
(gud-filter): Move the gud-display-frame call
Richard M. Stallman <rms@gnu.org>
parents:
13003
diff
changeset
|
2431 |
15185
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2432 ;; If we deferred text that arrived during this processing, |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2433 ;; handle it now. |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2434 (if gud-filter-pending-text |
44305fd68269
(gud-filter): Move the call to gud-display-frame
Richard M. Stallman <rms@gnu.org>
parents:
15127
diff
changeset
|
2435 (gud-filter proc "")))))) |
460 | 2436 |
2437 (defun gud-sentinel (proc msg) | |
2438 (cond ((null (buffer-name (process-buffer proc))) | |
2439 ;; buffer killed | |
2440 ;; Stop displaying an arrow in a source file. | |
2441 (setq overlay-arrow-position nil) | |
49146
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2442 (set-process-buffer proc nil) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2443 (if (eq gud-minor-mode-type 'gdba) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2444 (gdb-reset) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2445 (gud-reset))) |
460 | 2446 ((memq (process-status proc) '(signal exit)) |
2447 ;; Stop displaying an arrow in a source file. | |
2448 (setq overlay-arrow-position nil) | |
49146
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2449 (with-current-buffer gud-comint-buffer |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2450 (if (eq gud-minor-mode 'gdba) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2451 (gdb-reset) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2452 (gud-reset))) |
460 | 2453 (let* ((obuf (current-buffer))) |
2454 ;; save-excursion isn't the right thing if | |
2455 ;; process-buffer is current-buffer | |
2456 (unwind-protect | |
2457 (progn | |
2458 ;; Write something in *compilation* and hack its mode line, | |
2459 (set-buffer (process-buffer proc)) | |
20296
0b41c3dab3a7
(gud-sentinel): Set mode-line-process in the process
Andreas Schwab <schwab@suse.de>
parents:
19890
diff
changeset
|
2460 ;; Fix the mode line. |
0b41c3dab3a7
(gud-sentinel): Set mode-line-process in the process
Andreas Schwab <schwab@suse.de>
parents:
19890
diff
changeset
|
2461 (setq mode-line-process |
0b41c3dab3a7
(gud-sentinel): Set mode-line-process in the process
Andreas Schwab <schwab@suse.de>
parents:
19890
diff
changeset
|
2462 (concat ":" |
0b41c3dab3a7
(gud-sentinel): Set mode-line-process in the process
Andreas Schwab <schwab@suse.de>
parents:
19890
diff
changeset
|
2463 (symbol-name (process-status proc)))) |
11583
b481316dd562
(gud-sentinel): Use force-mode-line-update.
Karl Heuer <kwzh@gnu.org>
parents:
11235
diff
changeset
|
2464 (force-mode-line-update) |
460 | 2465 (if (eobp) |
2466 (insert ?\n mode-name " " msg) | |
2467 (save-excursion | |
2468 (goto-char (point-max)) | |
2469 (insert ?\n mode-name " " msg))) | |
2470 ;; If buffer and mode line will show that the process | |
2471 ;; is dead, we can delete it now. Otherwise it | |
2472 ;; will stay around until M-x list-processes. | |
2473 (delete-process proc)) | |
2474 ;; Restore old buffer, but don't restore old point | |
2475 ;; if obuf is the gud buffer. | |
2476 (set-buffer obuf)))))) | |
2477 | |
49146
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2478 (defvar gud-minor-mode-type nil) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2479 |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2480 (defun gud-kill-buffer-hook () |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2481 (if gud-minor-mode |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2482 (setq gud-minor-mode-type gud-minor-mode))) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2483 |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2484 (add-hook 'kill-buffer-hook 'gud-kill-buffer-hook) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2485 |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2486 (defun gud-reset () |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2487 (dolist (buffer (buffer-list)) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2488 (if (not (eq buffer gud-comint-buffer)) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2489 (save-excursion |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2490 (set-buffer buffer) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2491 (when gud-minor-mode |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2492 (setq gud-minor-mode nil) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2493 (kill-local-variable 'tool-bar-map)))))) |
8e748161e8cf
(gud-kill-buffer-hook): Save gud-minor-mode type.
Nick Roberts <nickrob@snap.net.nz>
parents:
48922
diff
changeset
|
2494 |
460 | 2495 (defun gud-display-frame () |
2496 "Find and obey the last filename-and-line marker from the debugger. | |
2497 Obeying it means displaying in another window the specified file and line." | |
2498 (interactive) | |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2499 (when gud-last-frame |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2500 (gud-set-buffer) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2501 (gud-display-line (car gud-last-frame) (cdr gud-last-frame)) |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2502 (setq gud-last-last-frame gud-last-frame |
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2503 gud-last-frame nil))) |
460 | 2504 |
2505 ;; Make sure the file named TRUE-FILE is in a buffer that appears on the screen | |
2506 ;; and that its line LINE is visible. | |
2507 ;; Put the overlay-arrow on the line LINE in that buffer. | |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2508 ;; Most of the trickiness in here comes from wanting to preserve the current |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2509 ;; region-restriction if that's possible. We use an explicit display-buffer |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2510 ;; to get around the fact that this is called inside a save-excursion. |
460 | 2511 |
2512 (defun gud-display-line (true-file line) | |
7910
842db6d87566
(gud-massage-args): Fix error message syntax.
Richard M. Stallman <rms@gnu.org>
parents:
7741
diff
changeset
|
2513 (let* ((last-nonmenu-event t) ; Prevent use of dialog box for questions. |
15127
654bc3990b4d
(gud-display-line): Switch to gud buffer before calling gud-find-file.
Richard M. Stallman <rms@gnu.org>
parents:
14934
diff
changeset
|
2514 (buffer |
49691
0eed24634607
(gud-gdb-run-command-fetch-lines, gud-display-line):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
2515 (with-current-buffer gud-comint-buffer |
15127
654bc3990b4d
(gud-display-line): Switch to gud buffer before calling gud-find-file.
Richard M. Stallman <rms@gnu.org>
parents:
14934
diff
changeset
|
2516 (gud-find-file true-file))) |
16250
aaa0ecdc4772
(gud-display-line): Don't call display-buffer
Richard M. Stallman <rms@gnu.org>
parents:
16185
diff
changeset
|
2517 (window (and buffer (or (get-buffer-window buffer) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2518 (if (eq gud-minor-mode 'gdba) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2519 (gdb-display-source-buffer buffer) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2520 (display-buffer buffer))))) |
460 | 2521 (pos)) |
15796
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2522 (if buffer |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2523 (progn |
49691
0eed24634607
(gud-gdb-run-command-fetch-lines, gud-display-line):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
49588
diff
changeset
|
2524 (with-current-buffer buffer |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2525 (if (not (or (verify-visited-file-modtime buffer) gud-keep-buffer)) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2526 (progn |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2527 (if |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2528 (yes-or-no-p |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2529 (format "File %s changed on disk. Reread from disk? " |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2530 (buffer-name))) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2531 (revert-buffer t t) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2532 (setq gud-keep-buffer t)))) |
15796
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2533 (save-restriction |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2534 (widen) |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2535 (goto-line line) |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2536 (setq pos (point)) |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2537 (setq overlay-arrow-string "=>") |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2538 (or overlay-arrow-position |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2539 (setq overlay-arrow-position (make-marker))) |
15796
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2540 (set-marker overlay-arrow-position (point) (current-buffer))) |
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2541 (cond ((or (< pos (point-min)) (> pos (point-max))) |
49354
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2542 (widen) |
cea1991cf560
(gud-display-line): If the current file is newer than its
Nick Roberts <nickrob@snap.net.nz>
parents:
49150
diff
changeset
|
2543 (goto-char pos)))) |
15796
0cddfd1a946e
(gud-display-line): Don't crash if BUFFER is nil.
Richard M. Stallman <rms@gnu.org>
parents:
15755
diff
changeset
|
2544 (set-window-point window overlay-arrow-position))))) |
1256
ff24725192d3
* gud.el: When we send a command to the debugger via gud-call,
Jim Blandy <jimb@redhat.com>
parents:
1255
diff
changeset
|
2545 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2546 ;; The gud-call function must do the right thing whether its invoking |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2547 ;; keystroke is from the GUD buffer itself (via major-mode binding) |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2548 ;; or a C buffer. In the former case, we want to supply data from |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2549 ;; gud-last-frame. Here's how we do it: |
460 | 2550 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2551 (defun gud-format-command (str arg) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2552 (let ((insource (not (eq (current-buffer) gud-comint-buffer))) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2553 (frame (or gud-last-frame gud-last-last-frame)) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2554 result) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2555 (while (and str (string-match "\\([^%]*\\)%\\([adeflpc]\\)" str)) |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2556 (let ((key (string-to-char (match-string 2 str))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2557 subst) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2558 (cond |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2559 ((eq key ?f) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2560 (setq subst (file-name-nondirectory (if insource |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2561 (buffer-file-name) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2562 (car frame))))) |
24736
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
2563 ((eq key ?F) |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
2564 (setq subst (file-name-sans-extension |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
2565 (file-name-nondirectory (if insource |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
2566 (buffer-file-name) |
2abcb92cf0ae
(gud-format-command): "%F" means file sans extension.
Richard M. Stallman <rms@gnu.org>
parents:
24388
diff
changeset
|
2567 (car frame)))))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2568 ((eq key ?d) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2569 (setq subst (file-name-directory (if insource |
4344
be116c77da2f
(dbx): Use %d in gud-break.
Richard M. Stallman <rms@gnu.org>
parents:
4335
diff
changeset
|
2570 (buffer-file-name) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2571 (car frame))))) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2572 ((eq key ?l) |
41935
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2573 (setq subst (int-to-string |
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2574 (if insource |
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2575 (save-restriction |
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2576 (widen) |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2577 (+ (count-lines (point-min) (point)) |
41935
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2578 (if (bolp) 1 0))) |
a9d361663625
(gdb): Define and bind gud-jump.
Richard M. Stallman <rms@gnu.org>
parents:
39252
diff
changeset
|
2579 (cdr frame))))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2580 ((eq key ?e) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2581 (setq subst (gud-find-c-expr))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2582 ((eq key ?a) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2583 (setq subst (gud-read-address))) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2584 ((eq key ?c) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2585 (setq subst |
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2586 (gud-find-class |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2587 (if insource |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2588 (buffer-file-name) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2589 (car frame)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2590 (if insource |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2591 (save-restriction |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2592 (widen) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2593 (+ (count-lines (point-min) (point)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2594 (if (bolp) 1 0))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2595 (cdr frame))))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2596 ((eq key ?p) |
27833
d31e5fcf98d7
(gud-jdb-build-class-source-alist): Prepend space to scratch buffer
Dave Love <fx@gnu.org>
parents:
26351
diff
changeset
|
2597 (setq subst (if arg (int-to-string arg))))) |
d31e5fcf98d7
(gud-jdb-build-class-source-alist): Prepend space to scratch buffer
Dave Love <fx@gnu.org>
parents:
26351
diff
changeset
|
2598 (setq result (concat result (match-string 1 str) subst))) |
5264
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2599 (setq str (substring str (match-end 2)))) |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2600 ;; There might be text left in STR when the loop ends. |
a60a8979d34b
(gud-format-command): Rewrite.
Richard M. Stallman <rms@gnu.org>
parents:
4818
diff
changeset
|
2601 (concat result str))) |
460 | 2602 |
1255 | 2603 (defun gud-read-address () |
460 | 2604 "Return a string containing the core-address found in the buffer at point." |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2605 (save-match-data |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2606 (save-excursion |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2607 (let ((pt (point)) found begin) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2608 (setq found (if (search-backward "0x" (- pt 7) t) (point))) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2609 (cond |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2610 (found (forward-char 2) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2611 (buffer-substring found |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2612 (progn (re-search-forward "[^0-9a-f]") |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2613 (forward-char -1) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2614 (point)))) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2615 (t (setq begin (progn (re-search-backward "[^0-9]") |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2616 (forward-char 1) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2617 (point))) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2618 (forward-char 1) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2619 (re-search-forward "[^0-9]") |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2620 (forward-char -1) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2621 (buffer-substring begin (point)))))))) |
460 | 2622 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2623 (defun gud-call (fmt &optional arg) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2624 (let ((msg (gud-format-command fmt arg))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2625 (message "Command: %s" msg) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2626 (sit-for 0) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2627 (gud-basic-call msg))) |
460 | 2628 |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2629 (defun gud-basic-call (command) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2630 "Invoke the debugger COMMAND displaying source in other window." |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2631 (interactive) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2632 (gud-set-buffer) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2633 (let ((proc (get-buffer-process gud-comint-buffer))) |
10095
ace8ae9f015f
(gud-basic-call): Detect error earlier.
Karl Heuer <kwzh@gnu.org>
parents:
10042
diff
changeset
|
2634 (or proc (error "Current buffer has no process")) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2635 ;; Arrange for the current prompt to get deleted. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2636 (save-excursion |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2637 (set-buffer gud-comint-buffer) |
30959
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2638 (save-restriction |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2639 (widen) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2640 (goto-char (process-mark proc)) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2641 (forward-line 0) |
d55632c1102b
(gud-basic-call): Temporarily widen gud comint buffer while checking for
Miles Bader <miles@gnu.org>
parents:
30736
diff
changeset
|
2642 (if (looking-at comint-prompt-regexp) |
48293
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2643 (set-marker gud-delete-prompt-marker (point))) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2644 (if (eq gud-minor-mode 'gdba) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2645 (apply comint-input-sender (list proc command)) |
3a409a9620a7
(gud-find-file): Set up GDB tool bar.
Nick Roberts <nickrob@snap.net.nz>
parents:
48278
diff
changeset
|
2646 (process-send-string proc (concat command "\n"))))))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2647 |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2648 (defun gud-refresh (&optional arg) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2649 "Fix up a possibly garbled display, and redraw the arrow." |
460 | 2650 (interactive "P") |
3646
4b34cbec2058
* gud.el (gud-last-last-frame): New variable.
Jim Blandy <jimb@redhat.com>
parents:
3591
diff
changeset
|
2651 (or gud-last-frame (setq gud-last-frame gud-last-last-frame)) |
43113
106d1a478844
(gud-refresh): Call recenter only after we are sure we
Eli Zaretskii <eliz@gnu.org>
parents:
42829
diff
changeset
|
2652 (gud-display-frame) |
106d1a478844
(gud-refresh): Call recenter only after we are sure we
Eli Zaretskii <eliz@gnu.org>
parents:
42829
diff
changeset
|
2653 (recenter arg)) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2654 |
47443
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2655 ;; Code for parsing expressions out of C code. The single entry point is |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2656 ;; find-c-expr, which tries to return an lvalue expression from around point. |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2657 ;; |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2658 ;; The rest of this file is a hacked version of gdbsrc.el by |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2659 ;; Debby Ayers <ayers@asc.slb.com>, |
b2fb48df4f9f
(gud-gdb-massage-args, gud-sdb-massage-args)
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
47398
diff
changeset
|
2660 ;; Rich Schaefer <schaefer@asc.slb.com> Schlumberger, Austin, Tx. |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2661 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2662 (defun gud-find-c-expr () |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2663 "Returns the C expr that surrounds point." |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2664 (interactive) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2665 (save-excursion |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2666 (let (p expr test-expr) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2667 (setq p (point)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2668 (setq expr (gud-innermost-expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2669 (setq test-expr (gud-prev-expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2670 (while (and test-expr (gud-expr-compound test-expr expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2671 (let ((prev-expr expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2672 (setq expr (cons (car test-expr) (cdr expr))) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2673 (goto-char (car expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2674 (setq test-expr (gud-prev-expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2675 ;; If we just pasted on the condition of an if or while, |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2676 ;; throw it away again. |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2677 (if (member (buffer-substring (car test-expr) (cdr test-expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2678 '("if" "while" "for")) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2679 (setq test-expr nil |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2680 expr prev-expr)))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2681 (goto-char p) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2682 (setq test-expr (gud-next-expr)) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2683 (while (gud-expr-compound expr test-expr) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2684 (setq expr (cons (car expr) (cdr test-expr))) |
33434
032684266f4b
(gud-minor-mode): New var.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
30959
diff
changeset
|
2685 (setq test-expr (gud-next-expr))) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2686 (buffer-substring (car expr) (cdr expr))))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2687 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2688 (defun gud-innermost-expr () |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2689 "Returns the smallest expr that point is in; move point to beginning of it. |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2690 The expr is represented as a cons cell, where the car specifies the point in |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2691 the current buffer that marks the beginning of the expr and the cdr specifies |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2692 the character after the end of the expr." |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2693 (let ((p (point)) begin end) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2694 (gud-backward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2695 (setq begin (point)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2696 (gud-forward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2697 (setq end (point)) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2698 (if (>= p end) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2699 (progn |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2700 (setq begin p) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2701 (goto-char p) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2702 (gud-forward-sexp) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2703 (setq end (point))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2704 ) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2705 (goto-char begin) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2706 (cons begin end))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2707 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2708 (defun gud-backward-sexp () |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2709 "Version of `backward-sexp' that catches errors." |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2710 (condition-case nil |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2711 (backward-sexp) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2712 (error t))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2713 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2714 (defun gud-forward-sexp () |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2715 "Version of `forward-sexp' that catches errors." |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2716 (condition-case nil |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2717 (forward-sexp) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2718 (error t))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2719 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2720 (defun gud-prev-expr () |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2721 "Returns the previous expr, point is set to beginning of that expr. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2722 The expr is represented as a cons cell, where the car specifies the point in |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2723 the current buffer that marks the beginning of the expr and the cdr specifies |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2724 the character after the end of the expr" |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2725 (let ((begin) (end)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2726 (gud-backward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2727 (setq begin (point)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2728 (gud-forward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2729 (setq end (point)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2730 (goto-char begin) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2731 (cons begin end))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2732 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2733 (defun gud-next-expr () |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2734 "Returns the following expr, point is set to beginning of that expr. |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2735 The expr is represented as a cons cell, where the car specifies the point in |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2736 the current buffer that marks the beginning of the expr and the cdr specifies |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2737 the character after the end of the expr." |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2738 (let ((begin) (end)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2739 (gud-forward-sexp) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2740 (gud-forward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2741 (setq end (point)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2742 (gud-backward-sexp) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2743 (setq begin (point)) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2744 (cons begin end))) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2745 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2746 (defun gud-expr-compound-sep (span-start span-end) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2747 "Scan from SPAN-START to SPAN-END for punctuation characters. |
44179
02b2708043f0
Undo some of the too aggressive tabification.
Eli Zaretskii <eliz@gnu.org>
parents:
44178
diff
changeset
|
2748 If `->' is found, return `?.'. If `.' is found, return `?.'. |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2749 If any other punctuation is found, return `??'. |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2750 If no punctuation is found, return `? '." |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2751 (let ((result ?\ ) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2752 (syntax)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2753 (while (< span-start span-end) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2754 (setq syntax (char-syntax (char-after span-start))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2755 (cond |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2756 ((= syntax ?\ ) t) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2757 ((= syntax ?.) (setq syntax (char-after span-start)) |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2758 (cond |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2759 ((= syntax ?.) (setq result ?.)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2760 ((and (= syntax ?-) (= (char-after (+ span-start 1)) ?>)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2761 (setq result ?.) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2762 (setq span-start (+ span-start 1))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2763 (t (setq span-start span-end) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2764 (setq result ??))))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2765 (setq span-start (+ span-start 1))) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2766 result)) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2767 |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2768 (defun gud-expr-compound (first second) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2769 "Non-nil if concatenating FIRST and SECOND makes a single C expression. |
22159
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2770 The two exprs are represented as a cons cells, where the car |
b7e2979c522e
(gud-perldb-marker-acc): Variable deleted.
Richard M. Stallman <rms@gnu.org>
parents:
21437
diff
changeset
|
2771 specifies the point in the current buffer that marks the beginning of the |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2772 expr and the cdr specifies the character after the end of the expr. |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2773 Link exprs of the form: |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2774 Expr -> Expr |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2775 Expr . Expr |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2776 Expr (Expr) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2777 Expr [Expr] |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2778 (Expr) Expr |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2779 [Expr] Expr" |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2780 (let ((span-start (cdr first)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2781 (span-end (car second)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2782 (syntax)) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2783 (setq syntax (gud-expr-compound-sep span-start span-end)) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2784 (cond |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2785 ((= (car first) (car second)) nil) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2786 ((= (cdr first) (cdr second)) nil) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2787 ((= syntax ?.) t) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2788 ((= syntax ?\ ) |
2489
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2789 (setq span-start (char-after (- span-start 1))) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2790 (setq span-end (char-after span-end)) |
b626f5b9a0df
Massive changes, amounting nearly to a rewrite. The new features
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
1902
diff
changeset
|
2791 (cond |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2792 ((= span-start ?)) t) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2793 ((= span-start ?]) t) |
44178 | 2794 ((= span-end ?() t) |
16185
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2795 ((= span-end ?[) t) |
fdb78e6e5701
(gud-find-c-expr): Renamed from find-c-expr.
Richard M. Stallman <rms@gnu.org>
parents:
15819
diff
changeset
|
2796 (t nil))) |
3551
8b5fa2d1755f
Doc fixes. Delete local variable list at the end.
Richard M. Stallman <rms@gnu.org>
parents:
3343
diff
changeset
|
2797 (t nil)))) |
2581
839d67a1dc58
Set no-byte-compile local variable t to work around a byte-compiler bug.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2532
diff
changeset
|
2798 |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2799 (defun gud-find-class (f line) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2800 "Find fully qualified class in file F at line LINE. |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2801 This function uses the `gud-jdb-classpath' (and optional |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2802 `gud-jdb-sourcepath') list(s) to derive a file |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2803 pathname relative to its classpath directory. The values in |
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2804 `gud-jdb-classpath' are assumed to have been converted to absolute |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2805 pathname standards using file-truename. |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2806 If F is visited by a buffer and its mode is CC-mode(Java), |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2807 syntactic information of LINE is used to find the enclosing (nested) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2808 class string which is appended to the top level |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2809 class of the file (using s to separate nested class ids)." |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2810 ;; Convert f to a standard representation and remove suffix |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2811 (if (and gud-jdb-use-classpath (or gud-jdb-classpath gud-jdb-sourcepath)) |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2812 (save-match-data |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2813 (let ((cplist (append gud-jdb-sourcepath gud-jdb-classpath)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2814 (fbuffer (get-file-buffer f)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2815 class-found) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2816 (setq f (file-name-sans-extension (file-truename f))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2817 ;; Search through classpath list for an entry that is |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2818 ;; contained in f |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2819 (while (and cplist (not class-found)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2820 (if (string-match (car cplist) f) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2821 (setq class-found |
48679
672c6eac16e7
Use match-string.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
48657
diff
changeset
|
2822 (mapconcat 'identity |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2823 (split-string |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2824 (substring f (+ (match-end 0) 1)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2825 "/") "."))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2826 (setq cplist (cdr cplist))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2827 ;; if f is visited by a java(cc-mode) buffer, walk up the |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2828 ;; syntactic information chain and collect any 'inclass |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2829 ;; symbols until 'topmost-intro is reached to find out if |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2830 ;; point is within a nested class |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2831 (if (and fbuffer (equal (symbol-file 'java-mode) "cc-mode")) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2832 (save-excursion |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2833 (set-buffer fbuffer) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2834 (let ((nclass) (syntax) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2835 (pos (point))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2836 ;; While the c-syntactic information does not start |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2837 ;; with the 'topmost-intro symbol, there may be |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2838 ;; nested classes... |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2839 (while (not (eq 'topmost-intro |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2840 (car (car (c-guess-basic-syntax))))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2841 ;; Check if the current position c-syntactic |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2842 ;; analysis has 'inclass |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2843 (setq syntax (c-guess-basic-syntax)) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2844 (while |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2845 (and (not (eq 'inclass (car (car syntax)))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2846 (cdr syntax)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2847 (setq syntax (cdr syntax))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2848 (if (eq 'inclass (car (car syntax))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2849 (progn |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2850 (goto-char (cdr (car syntax))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2851 ;; Now we're at the beginning of a class |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2852 ;; definition. Find class name |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2853 (looking-at |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2854 "[A-Za-z0-9 \t\n]*?class[ \t\n]+\\([^ \t\n]+\\)") |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2855 (setq nclass |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2856 (append (list (match-string-no-properties 1)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2857 nclass))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2858 (setq syntax (c-guess-basic-syntax)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2859 (while (and (not (cdr (car syntax))) (cdr syntax)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2860 (setq syntax (cdr syntax))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2861 (goto-char (cdr (car syntax))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2862 )) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2863 (string-match (concat (car nclass) "$") class-found) |
49588
37645a051842
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49354
diff
changeset
|
2864 (setq class-found |
48922
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2865 (replace-match (mapconcat 'identity nclass "$") |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2866 t t class-found))))) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2867 (if (not class-found) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2868 (message "gud-find-class: class for file %s not found!" f)) |
aa7d3d1a21a3
(gud-menu-map): Add jdb support for "run".
Pavel Janík <Pavel@Janik.cz>
parents:
48795
diff
changeset
|
2869 class-found)) |
44176
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2870 ;; Not using classpath - try class/source association list |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2871 (let ((class-found (rassoc f gud-jdb-class-source-alist))) |
ae2fa08b3654
(gud-jdb-sourcepath): New variable, saves jdb -sourcepath parameter value.
Eli Zaretskii <eliz@gnu.org>
parents:
43113
diff
changeset
|
2872 (if class-found |
44178 | 2873 (car class-found) |
2874 (message "gud-find-class: class for file %s not found in gud-jdb-class-source-alist!" f) | |
2875 nil)))) | |
42829
07bd6e693cb6
(easy-mmode-defmap): Enable "Up Stack", "Down Stack", and
Richard M. Stallman <rms@gnu.org>
parents:
42706
diff
changeset
|
2876 |
48299
21b6ba166466
Fix feature name in `provide'.
Juanma Barranquero <lekktu@gmail.com>
parents:
48293
diff
changeset
|
2877 (provide 'gud) |
4016 | 2878 |
810
80303373daae
*** empty log message ***
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
806
diff
changeset
|
2879 ;;; gud.el ends here |