Annotation of freem/src/mdebug.h, revision 1.6
1.1 snw 1: /*
1.6 ! snw 2: * $Id: mdebug.h,v 1.5 2025/04/30 14:41:03 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.6 ! snw 27: * Revision 1.5 2025/04/30 14:41:03 snw
! 28: * Further debugger work
! 29: *
1.5 snw 30: * Revision 1.4 2025/04/29 18:46:17 snw
31: * Begin work on interactive debugger
32: *
1.4 snw 33: * Revision 1.3 2025/03/09 19:50:47 snw
34: * Second phase of REUSE compliance and header reformat
35: *
1.3 snw 36: *
37: * SPDX-FileCopyrightText: (C) 2025 Coherent Logic Development LLC
38: * SPDX-License-Identifier: AGPL-3.0-or-later
1.1 snw 39: **/
40:
41: #if !defined(_MDEBUG_H)
42: #define _MDEBUG_H
43:
44: #define MAXWATCH 100
45:
1.5 snw 46: #define DEBENTRY_CMD 0
47: #define DEBENTRY_LINE 1
48: #define DEBENTRY_BREAKPOINT 2
49: #define DEBENTRY_ERROR 4
50: #define DEBENTRY_SIGINT 5
51:
52: #define STEPMODE_NONE 0
53: #define STEPMODE_CONT 1
54: #define STEPMODE_CMD 2
55: #define STEPMODE_LINE 3
56:
1.1 snw 57: typedef struct dbg_watch {
58:
59: /* name of variable to watch */
60: char *varnam;
61:
62: /* number of changes to this variable */
63: int chgct;
64:
65: /* pending fires */
66: int firect;
67:
68:
69: } dbg_watch;
70:
71: extern void dbg_init (void);
1.6 ! snw 72: extern int debugger (int entry_mode, char *entryref);
1.1 snw 73: extern dbg_watch *dbg_add_watch (char *varnam);
74: extern void dbg_remove_watch (char *varnam);
75: extern dbg_watch *dbg_find_watch (char *varnam);
76: extern void dbg_dump_watch (char *varnam);
77: extern char *dbg_get_watch_name (char *varnam);
78: extern void dbg_fire_watch (char *varnam);
79: extern void dbg_dump_watchlist (void);
80:
81:
82: extern short dbg_enable_watch; /* 0 = watches disabled, 1 = watches enabled */
83: extern int dbg_pending_watches;
84:
1.3 snw 85: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>