Mercurial > octave
annotate libinterp/parse-tree/bp-table.h @ 30564:796f54d4ddbf stable
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2021.
In all .txi and .texi files except gpl.txi and gpl.texi in the
doc/liboctave and doc/interpreter directories, change the copyright
to "Octave Project Developers", the same as used for other source
files. Update copyright notices for 2022 (not done since 2019). For
gpl.txi and gpl.texi, change the copyright notice to be "Free Software
Foundation, Inc." and leave the date at 2007 only because this file
only contains the text of the GPL, not anything created by the Octave
Project Developers.
Add Paul Thomas to contributors.in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 28 Dec 2021 18:22:40 -0500 |
parents | 14b098a6ba46 |
children | 83f9f8bda883 |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30155
diff
changeset
|
3 // Copyright (C) 2001-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
7084 | 25 |
23137
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
26 #if ! defined (octave_bp_table_h) |
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
27 #define octave_bp_table_h 1 |
7084 | 28 |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21157
diff
changeset
|
29 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21157
diff
changeset
|
30 |
23137
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
31 #include <list> |
7084 | 32 #include <map> |
9183
94ae487acd1b
use set instead of map to keep track of debugger breakpoints
jpswensen@compsci34-754-2010.compscidhcp.jhu.edu
parents:
8920
diff
changeset
|
33 #include <set> |
23149
f81c759dfae7
* bp-table.h: Also include <string>.
John W. Eaton <jwe@octave.org>
parents:
23148
diff
changeset
|
34 #include <string> |
7084 | 35 |
23137
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
36 class octave_map; |
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
37 class octave_user_code; |
7084 | 38 class octave_value_list; |
23137
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
39 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
40 namespace octave |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
41 { |
25360
bc5f225bc578
eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents:
25347
diff
changeset
|
42 class tree_evaluator; |
25347
af3319d86a5f
eliminate some global references to interpreter internals
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
43 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
44 struct bp_type |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
45 { |
30155
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
29954
diff
changeset
|
46 public: |
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
29954
diff
changeset
|
47 bp_type (int l, const std::string& c) : line (l), cond (c) { } |
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
29954
diff
changeset
|
48 |
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
29954
diff
changeset
|
49 //-------- |
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
29954
diff
changeset
|
50 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
51 int line; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
52 std::string cond; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
53 }; |
7084 | 54 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
55 // Interface to breakpoints. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
56 class OCTINTERP_API bp_table |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
57 { |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
58 public: |
7084 | 59 |
25360
bc5f225bc578
eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents:
25347
diff
changeset
|
60 bp_table (tree_evaluator& tw) |
bc5f225bc578
eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents:
25347
diff
changeset
|
61 : m_evaluator (tw), m_bp_set (), m_errors_that_stop (), |
25347
af3319d86a5f
eliminate some global references to interpreter internals
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
62 m_caught_that_stop (), m_warnings_that_stop () |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
63 { } |
7084 | 64 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
65 ~bp_table (void) = default; |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
66 |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
67 // Set of breakpoint lines. |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
68 typedef std::set<int> bp_lines; |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
69 |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
70 typedef bp_lines::const_iterator const_bp_lines_iterator; |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
71 typedef bp_lines::iterator bp_lines_iterator; |
7084 | 72 |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
73 typedef std::map <std::string, bp_lines> fname_line_map; |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
74 |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
75 typedef fname_line_map::const_iterator const_fname_line_map_iterator; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
76 typedef fname_line_map::iterator fname_line_map_iterator; |
7084 | 77 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
78 typedef std::map <std::string, std::list<bp_type>> fname_bp_map; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
79 typedef fname_bp_map::const_iterator const_fname_bp_map_iterator; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
80 typedef fname_bp_map::iterator fname_bp_map_iterator; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
81 |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
82 #if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS) |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
83 OCTAVE_DEPRECATED (7, "use 'bp_table::add_breakpoints_in_function' instead") |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
84 int add_breakpoint (const std::string& fname = "", |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
85 const std::string& class_name = "", |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
86 int line = 1, |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
87 const std::string& condition = "") |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
88 { |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
89 return add_breakpoint_in_function (fname, class_name, line, condition); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
90 } |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
91 |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
92 OCTAVE_DEPRECATED (7, "use 'bp_table::add_breakpoints_in_function' instead") |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
93 bp_lines add_breakpoint (const std::string& fname = "", |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
94 const std::string& class_name = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
95 const bp_lines& lines = bp_lines (), |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
96 const std::string& condition = "") |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
97 { |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
98 return add_breakpoints_in_function (fname, class_name, lines, condition); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
99 } |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
100 #endif |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
101 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
102 // Add a breakpoint at the nearest executable line in a function. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
103 int add_breakpoint_in_function (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
104 const std::string& class_name = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
105 int line = 1, |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
106 const std::string& condition = ""); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
107 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
108 // Add a set of breakpoints at the nearest executable lines in a |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
109 // function. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
110 bp_lines add_breakpoints_in_function (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
111 const std::string& class_name = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
112 const bp_lines& lines = bp_lines (), |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
113 const std::string& condition = ""); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
114 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
115 // Add a breakpoint at the nearest executable line in a file. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
116 int add_breakpoint_in_file (const std::string& file = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
117 int line = 1, |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
118 const std::string& condition = ""); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
119 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
120 // Add a set of breakpoints at the nearest executable lines in a |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
121 // file. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
122 bp_lines add_breakpoints_in_file (const std::string& file = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
123 const bp_lines& lines = bp_lines (), |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
124 const std::string& condition = ""); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
125 |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
126 #if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS) |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
127 OCTAVE_DEPRECATED (7, "use 'bp_table::remove_breakpoint_from_function' instead") |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
128 int remove_breakpoint (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
129 int line = 1) |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
130 { |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
131 return remove_breakpoint_from_function (fname, line); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
132 } |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
133 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
134 OCTAVE_DEPRECATED (7, "use 'bp_table::remove_breakpoints_from_function' instead") |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
135 int remove_breakpoint (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
136 const bp_lines& lines = bp_lines ()) |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
137 { |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
138 return remove_breakpoints_from_function (fname, lines); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
139 } |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
140 #endif |
7084 | 141 |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
142 // Remove a breakpoint from the given line in file. |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
143 int remove_breakpoint_from_function (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
144 int line = 1); |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
145 |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
146 // Remove a set of breakpoints from the given lines in file. |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
147 int remove_breakpoints_from_function (const std::string& fname = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
148 const bp_lines& lines = bp_lines ()); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
149 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
150 // Remove all the breakpoints in a specified function. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
151 bp_lines remove_all_breakpoints_from_function (const std::string& fname, |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
152 bool silent = false); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
153 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
154 // Remove a breakpoint from the given line in file. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
155 int remove_breakpoint_from_file (const std::string& file = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
156 int line = 1); |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
157 |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
158 // Remove a set of breakpoints from the given lines in file. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
159 int remove_breakpoints_from_file (const std::string& file = "", |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
160 const bp_lines& lines = bp_lines ()); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
161 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
162 |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
163 #if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS) |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
164 OCTAVE_DEPRECATED (7, "use 'bp_table::remove_all_breakpoints_from_function' instead") |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
165 bp_lines remove_all_breakpoints_in_file (const std::string& fname, |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
166 bool silent = false) |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
167 { |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
168 return remove_all_breakpoints_from_function (fname, silent); |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
169 } |
29954
4c88a452519c
rename OCTAVE_USE_DEPRECATED_FUNCTIONS macro and attempt to make it work
John W. Eaton <jwe@octave.org>
parents:
29458
diff
changeset
|
170 #endif |
29458
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
171 |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
172 // Remove all the breakpoints from a file. |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
173 bp_lines remove_all_breakpoints_from_file (const std::string& file, |
c0f86150aa6c
begin allowing breakpoints to be set using file name
John W. Eaton <jwe@octave.org>
parents:
29457
diff
changeset
|
174 bool silent = false); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11584
diff
changeset
|
175 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
176 // Remove all the breakpoints registered with octave. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
177 void remove_all_breakpoints (void); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11584
diff
changeset
|
178 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
179 // Return all breakpoints. Each element of the map is a vector |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
180 // containing the breakpoints corresponding to a given function name. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
181 fname_bp_map get_breakpoint_list (const octave_value_list& fname_list); |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
182 |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
183 bool have_breakpoints (void) { return (! m_bp_set.empty ()); } |
7084 | 184 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
185 // Should we enter debugging for this particular error identifier? |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
186 bool debug_on_err (const std::string& id) |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
187 { |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
188 return (m_errors_that_stop.empty () || m_errors_that_stop.count (id)); |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
189 } |
8658
73c4516fae10
New evaluator and debugger derived from tree-walker class
John W. Eaton <jwe@octave.org>
parents:
8123
diff
changeset
|
190 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
191 // Should we enter debugging for this particular identifier in a try/catch? |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
192 bool debug_on_caught (const std::string& id) |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
193 { |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
194 return (m_caught_that_stop.empty () || m_caught_that_stop.count (id)); |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
195 } |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
196 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
197 // Should we enter debugging for this particular warning identifier? |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
198 bool debug_on_warn (const std::string& id) |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
199 { |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
200 return (m_warnings_that_stop.empty () || m_warnings_that_stop.count (id)); |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
201 } |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
202 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
203 octave_map stop_on_err_warn_status (bool to_screen); |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
204 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
205 void dbstop_process_map_args (const octave_map& mv); |
21311
718332a58d35
Fix left mouse button in editor margin bug from cset 65827e9cccb8
Lachlan Andrew <lachlanbis@gmail.com>
parents:
21244
diff
changeset
|
206 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
207 void dbclear_all_signals (void); |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
208 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
209 bool condition_valid (const std::string& cond); |
7084 | 210 |
26954
6e50f1fedeb5
dbstop: accept "at CLASS in METHOD" syntax (partial fix for bug #45404)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
211 void parse_dbfunction_params (const char *who, const octave_value_list& args, |
6e50f1fedeb5
dbstop: accept "at CLASS in METHOD" syntax (partial fix for bug #45404)
John W. Eaton <jwe@octave.org>
parents:
26376
diff
changeset
|
212 std::string& func_name, std::string& class_name, |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
213 bp_table::bp_lines& lines, std::string& cond); |
7084 | 214 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
215 private: |
7084 | 216 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
217 typedef std::set<std::string>::const_iterator const_bp_set_iterator; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
218 typedef std::set<std::string>::iterator bp_set_iterator; |
21157
94fc5f13d51b
dbstop: conditional breakpoint, dbstop if caught error etc. (bug #46795)
Lachlan Andrew <lachlanbis@gmail.com>
parents:
20791
diff
changeset
|
219 |
25360
bc5f225bc578
eliminate some global accesses to the breakpoint table
John W. Eaton <jwe@octave.org>
parents:
25347
diff
changeset
|
220 tree_evaluator& m_evaluator; |
25347
af3319d86a5f
eliminate some global references to interpreter internals
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
221 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
222 // Set of function (.m file) names containing at least one breakpoint. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
223 std::set<std::string> m_bp_set; |
16596
645672f1c873
handle setting breakpoints in subfunctions in GUI editor
John W. Eaton <jwe@octave.org>
parents:
16419
diff
changeset
|
224 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
225 // Set of error and warning message IDs that cause us to stop |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
226 // *if* Vdebug_on_error / Vdebug_on_caught / Vdebug_on_warning is set. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
227 // Empty means stop on any error / caught error / warning. |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
228 std::set<std::string> m_errors_that_stop; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
229 std::set<std::string> m_caught_that_stop; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
230 std::set<std::string> m_warnings_that_stop; |
16627
de91b1621260
adjust location of eof marker for files with subfunctions but no explicit end statements
John W. Eaton <jwe@octave.org>
parents:
16596
diff
changeset
|
231 |
27160
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
232 void set_stop_flag (const char *who, const std::string& condition, |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
233 bool on_off); |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
234 |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
235 void process_id_list (const char *who, const std::string& condition, |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
236 const octave_value_list& args, |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
237 int nargin, int& pos, bool on_off, |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
238 std::set<std::string>& id_list); |
6b0c61a5a0f0
move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents:
26975
diff
changeset
|
239 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
240 bool add_breakpoint_1 (octave_user_code *fcn, const std::string& fname, |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
241 const bp_lines& line, const std::string& condition, |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
242 bp_lines& retval); |
7084 | 243 |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
244 int remove_breakpoint_1 (octave_user_code *fcn, const std::string&, |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
245 const bp_lines& lines); |
7084 | 246 |
29457
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
247 bp_lines remove_all_breakpoints_in_file_1 (octave_user_code *fcn, |
313b8b897733
revamp handling of breakpoint line positions
John W. Eaton <jwe@octave.org>
parents:
29359
diff
changeset
|
248 const std::string& fname); |
24738
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
249 }; |
3695c2cd69b8
don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
250 } |
23137
334119c390b3
move bp_table class to separate file
John W. Eaton <jwe@octave.org>
parents:
23084
diff
changeset
|
251 |
7084 | 252 #endif |