Annotation of freem/src/mdebug.h, revision 1.5
1.1 snw 1: /*
1.5 ! snw 2: * $Id: mdebug.h,v 1.4 2025/04/29 18:46:17 snw Exp $
1.1 snw 3: * debugger enhancements
4: *
5: *
1.2 snw 6: * Author: Serena Willis <snw@coherent-logic.com>
1.1 snw 7: * Copyright (C) 1998 MUG Deutschland
1.3 snw 8: * Copyright (C) 2020, 2025 Coherent Logic Development LLC
1.1 snw 9: *
10: *
11: * This file is part of FreeM.
12: *
13: * FreeM is free software: you can redistribute it and/or modify
14: * it under the terms of the GNU Affero Public License as published by
15: * the Free Software Foundation, either version 3 of the License, or
16: * (at your option) any later version.
17: *
18: * FreeM is distributed in the hope that it will be useful,
19: * but WITHOUT ANY WARRANTY; without even the implied warranty of
20: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21: * GNU Affero Public License for more details.
22: *
23: * You should have received a copy of the GNU Affero Public License
24: * along with FreeM. If not, see <https://www.gnu.org/licenses/>.
25: *
1.4 snw 26: * $Log: mdebug.h,v $
1.5 ! snw 27: * Revision 1.4 2025/04/29 18:46:17 snw
! 28: * Begin work on interactive debugger
! 29: *
1.4 snw 30: * Revision 1.3 2025/03/09 19:50:47 snw
31: * Second phase of REUSE compliance and header reformat
32: *
1.3 snw 33: *
34: * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC
35: * SPDX-License-Identifier: AGPL-3.0-or-later
1.1 snw 36: **/
37:
38: #if !defined(_MDEBUG_H)
39: #define _MDEBUG_H
40:
41: #define MAXWATCH 100
42:
1.5 ! snw 43: #define DEBENTRY_CMD 0
! 44: #define DEBENTRY_LINE 1
! 45: #define DEBENTRY_BREAKPOINT 2
! 46: #define DEBENTRY_ERROR 4
! 47: #define DEBENTRY_SIGINT 5
! 48:
! 49: #define STEPMODE_NONE 0
! 50: #define STEPMODE_CONT 1
! 51: #define STEPMODE_CMD 2
! 52: #define STEPMODE_LINE 3
! 53:
1.1 snw 54: typedef struct dbg_watch {
55:
56: /* name of variable to watch */
57: char *varnam;
58:
59: /* number of changes to this variable */
60: int chgct;
61:
62: /* pending fires */
63: int firect;
64:
65:
66: } dbg_watch;
67:
68: extern void dbg_init (void);
1.5 ! snw 69: extern int debugger (int entry_mode, char *curcode);
1.1 snw 70: extern dbg_watch *dbg_add_watch (char *varnam);
71: extern void dbg_remove_watch (char *varnam);
72: extern dbg_watch *dbg_find_watch (char *varnam);
73: extern void dbg_dump_watch (char *varnam);
74: extern char *dbg_get_watch_name (char *varnam);
75: extern void dbg_fire_watch (char *varnam);
76: extern void dbg_dump_watchlist (void);
77:
78:
79: extern short dbg_enable_watch; /* 0 = watches disabled, 1 = watches enabled */
80: extern int dbg_pending_watches;
81:
1.3 snw 82: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>