--- freem/src/frmgbl.c 2025/04/16 17:36:12 1.12
+++ freem/src/frmgbl.c 2025/05/05 04:46:35 1.17
@@ -1,5 +1,5 @@
/*
- * $Id: frmgbl.c,v 1.12 2025/04/16 17:36:12 snw Exp $
+ * $Id: frmgbl.c,v 1.17 2025/05/05 04:46:35 snw Exp $
* freem global C variables
*
*
@@ -24,6 +24,21 @@
* along with FreeM. If not, see .
*
* $Log: frmgbl.c,v $
+ * Revision 1.17 2025/05/05 04:46:35 snw
+ * Documentation fixes; make FreeM more standards compliant
+ *
+ * Revision 1.16 2025/04/30 17:19:16 snw
+ * Improve backtraces in debugger
+ *
+ * Revision 1.15 2025/04/30 14:41:03 snw
+ * Further debugger work
+ *
+ * Revision 1.14 2025/04/28 19:38:55 snw
+ * Add trace mode
+ *
+ * Revision 1.13 2025/04/17 14:34:27 snw
+ * Further logging improvements
+ *
* Revision 1.12 2025/04/16 17:36:12 snw
* Add FreeBSD shm cleanup script
*
@@ -64,9 +79,10 @@
#include
#include
#include
+#include
#include "transact.h"
#include "locktab.h"
-#include
+#include "log.h"
#ifdef LIBFREEM
# include "errmsg.h"
@@ -542,8 +558,8 @@ char curdir[256] = "."; /* curre
char startuprou[PATHLEN] = "\201"; /* start up routine from cmdline*/
char zcommds[256] =
-" za zas zb zd zg zh zi zj zl zn zp zq zr zs zt zwr zbreak \
-zgo zhalt zinsert zjob zload znamespace zprint zquit zremove zsave ztrap zwrite \201"; /* intrinsic z-commands */
+" za zb zc zd zg zh zi zj zl zm zn zp zq zr zs zth ztr zwa zwi zwr zassert zbreak \
+zconst zgo zhalt zinsert zjob zload zmap znamespace zprint zquit zremove zsave zthrow ztrap zunmap zwatch zwith zwrite \201"; /* intrinsic z-commands */
char zfunctions[256] = /* intrinsic z-functions */
" zb zc zd ze zh zht zk zl zm zn zo zp zr zs zt zboolean zcall zcr zcrc zdata zdate zedit zhorolog \
zkey zlength zlsd zname znext zorder zpiece zprevious zreplace zsyntax zsort ztime \201";
@@ -652,6 +668,10 @@ short ipc_pending = 0; /* 1 if an inco
int strict_mode = 0;
+int trace_mode = 0;
+short debug_mode = FALSE;
+int lasterr[NESTLEVLS + 1];
+
short first_process = FALSE;
#if defined(__FreeBSD__)
size_t shm_init_size = 4194304;
@@ -740,11 +760,12 @@ void m_fatal(char *s)
if (tp_level) {
- fprintf (stderr, "freem [FATAL]: memory allocation failure in %s; rolling back %d transactions [errno %d %s]\n", s, tp_level, errno_sav, strerror (errno_sav));
+ /* TODO: make this FM_LOG_FATAL (logger will need to do a tp_trollback) */
+ logprintf (FM_LOG_ERROR, "freem: memory allocation failure in %s; rolling back %d transactions (error code %d [%s])", s, tp_level, errno_sav, strerror (errno_sav));
tp_trollback (tp_level);
}
else {
- fprintf (stderr, "freem [FATAL]: memory allocation failure in %s [errno %d %s]\n", s, errno_sav, strerror (errno_sav));
+ logprintf (FM_LOG_FATAL, "freem: memory allocation failure in %s (error code %d [%s])", s, errno_sav, strerror (errno_sav));
}
exit (3);