|
|
| version 1.1, 2025/01/19 02:04:04 | version 1.6, 2025/05/01 17:02:30 |
|---|---|
| Line 1 | Line 1 |
| /* | /* |
| * * | * $Id$ |
| * * * | |
| * * * | |
| * *************** | |
| * * * * * | |
| * * MUMPS * | |
| * * * * * | |
| * *************** | |
| * * * | |
| * * * | |
| * * | |
| * | |
| * mdebug.h | |
| * debugger enhancements | * debugger enhancements |
| * | * |
| * | * |
| * Author: Serena Willis <jpw@coherent-logic.com> | * Author: Serena Willis <snw@coherent-logic.com> |
| * Copyright (C) 1998 MUG Deutschland | * Copyright (C) 1998 MUG Deutschland |
| * Copyright (C) 2020 Coherent Logic Development LLC | * Copyright (C) 2020, 2025 Coherent Logic Development LLC |
| * | * |
| * | * |
| * This file is part of FreeM. | * This file is part of FreeM. |
| Line 35 | Line 23 |
| * You should have received a copy of the GNU Affero Public License | * You should have received a copy of the GNU Affero Public License |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | |
| * Revision 1.6 2025/05/01 17:02:30 snw | |
| * Further debugging improvements | |
| * | |
| * Revision 1.5 2025/04/30 14:41:03 snw | |
| * Further debugger work | |
| * | |
| * Revision 1.4 2025/04/29 18:46:17 snw | |
| * Begin work on interactive debugger | |
| * | |
| * Revision 1.3 2025/03/09 19:50:47 snw | |
| * Second phase of REUSE compliance and header reformat | |
| * | |
| * | |
| * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC | |
| * SPDX-License-Identifier: AGPL-3.0-or-later | |
| **/ | **/ |
| #if !defined(_MDEBUG_H) | #if !defined(_MDEBUG_H) |
| Line 42 | Line 46 |
| #define MAXWATCH 100 | #define MAXWATCH 100 |
| #define DEBENTRY_CMD 0 | |
| #define DEBENTRY_LINE 1 | |
| #define DEBENTRY_BREAKPOINT 2 | |
| #define DEBENTRY_ERROR 4 | |
| #define DEBENTRY_SIGINT 5 | |
| #define STEPMODE_NONE 0 | |
| #define STEPMODE_CONT 1 | |
| #define STEPMODE_CMD 2 | |
| #define STEPMODE_LINE 3 | |
| typedef struct dbg_watch { | typedef struct dbg_watch { |
| /* name of variable to watch */ | /* name of variable to watch */ |
| Line 57 typedef struct dbg_watch { | Line 72 typedef struct dbg_watch { |
| } dbg_watch; | } dbg_watch; |
| extern void dbg_init (void); | extern void dbg_init (void); |
| extern int debugger (int entry_mode, char *entryref); | |
| extern dbg_watch *dbg_add_watch (char *varnam); | extern dbg_watch *dbg_add_watch (char *varnam); |
| extern void dbg_remove_watch (char *varnam); | extern void dbg_remove_watch (char *varnam); |
| extern dbg_watch *dbg_find_watch (char *varnam); | extern dbg_watch *dbg_find_watch (char *varnam); |
| Line 69 extern void dbg_dump_watchlist (void); | Line 85 extern void dbg_dump_watchlist (void); |
| extern short dbg_enable_watch; /* 0 = watches disabled, 1 = watches enabled */ | extern short dbg_enable_watch; /* 0 = watches disabled, 1 = watches enabled */ |
| extern int dbg_pending_watches; | extern int dbg_pending_watches; |
| #endif | |
| #endif |