aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDawn Perchik <dawn@cygnus>1997-02-12 22:48:45 +0000
committerDawn Perchik <dawn@cygnus>1997-02-12 22:48:45 +0000
commit4659e3b3672dd188d167d8dba5c9a429c3cdaf51 (patch)
treeb057fc2855e7cc9fbbb4dd214fa911f91045bdb3 /gdb
parent19336eb964e520638e838e895563ced9ddeec2d8 (diff)
downloadgdb-4659e3b3672dd188d167d8dba5c9a429c3cdaf51.zip
gdb-4659e3b3672dd188d167d8dba5c9a429c3cdaf51.tar.gz
gdb-4659e3b3672dd188d167d8dba5c9a429c3cdaf51.tar.bz2
* debugify.c, debugify.h: New files. Provide common macros
for writing debug info to a log file or stdio.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/.Sanitize2
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/debugify.c66
-rw-r--r--gdb/debugify.h42
4 files changed, 115 insertions, 0 deletions
diff --git a/gdb/.Sanitize b/gdb/.Sanitize
index 422d7b7..faea153 100644
--- a/gdb/.Sanitize
+++ b/gdb/.Sanitize
@@ -199,6 +199,8 @@ dbug-rom.c
dbxread.c
dcache.c
dcache.h
+debugify.h
+debugify.c
defs.h
delta68-nat.c
demangle.c
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 11787bc..f59ac7a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,4 +1,9 @@
+Wed Feb 12 14:42:47 1997 Dawn Perchik <dawn@cygnus.com>
+
+ * debugify.c, debugify.h: New files. Provide common macros
+ for writing debug info to a log file or stdio.
+
Wed Feb 12 02:44:39 1997 Dawn Perchik <dawn@cygnus.com>
* c-valprint.c (c_val_print): Fix printing for arrays defined
diff --git a/gdb/debugify.c b/gdb/debugify.c
new file mode 100644
index 0000000..7f5af2a
--- /dev/null
+++ b/gdb/debugify.c
@@ -0,0 +1,66 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#define DEBUGIFY
+#include "debugify.h"
+
+#define REDIRECT
+
+static FILE *fout=NULL;
+static char fname[128];
+static int file_cnt=0; /* count number of open files */
+
+void puts_dbg(const char *data)
+{
+ FILE *fdbg;
+
+ fdbg=fopen("dbg.log","a+");
+ if (fdbg==NULL)
+ return;
+ fprintf(fdbg,data);
+ fclose(fdbg);
+}
+
+/* Can't easily get the message back to gdb... write to a log instead. */
+void fputs_dbg (const char *data, FILE * fakestream)
+{
+#ifdef REDIRECT
+ puts_dbg(data);
+#else /* REDIRECT */
+
+ //CIOLogView_output (s);
+ if (fakestream==stdout || fakestream==stderr || fakestream==NULL)
+ {
+ if (fout==NULL)
+ {
+ for (file_cnt=0; file_cnt<20; file_cnt++)
+ {
+ sprintf(fname,"dbg%d.log",file_cnt);
+ if ((fout=fopen(fname),"r")!=NULL)
+ fclose(fout);
+ else
+ break;
+ }
+ fout=fopen(fname,"w");
+ if (fout==NULL)
+ return;
+ }
+ fakestream=fout;
+ }
+ fprintf(fakestream,data);
+ fflush(fakestream);
+#endif /* REDIRECT */
+}
+
+void printf_dbg(const char* format,...)
+{
+ va_list args;
+ char buf[256];
+ va_start (args, format);
+ vsprintf (buf, format, args);
+ puts_dbg(buf);
+ va_end (args);
+}
diff --git a/gdb/debugify.h b/gdb/debugify.h
new file mode 100644
index 0000000..e250910
--- /dev/null
+++ b/gdb/debugify.h
@@ -0,0 +1,42 @@
+
+#ifndef _DEBUGIFY_H_
+#define _DEBUGIFY_H_
+
+#ifdef DEBUGIFY
+#include <assert.h>
+#ifdef TO_SCREEN
+#define DBG(x) OutputDebugString x
+#elif TO_GDB
+#define DBG(x) printf_unfiltered x
+#elif TO_POPUP
+#define DBG(x) MessageBox x
+#else /* default: TO_FILE "gdb.log" */
+#define DBG(x) printf_dbg x
+#endif
+
+#define ASSERT(x) assert(x)
+
+#else /* DEBUGIFY */
+#define DBG(x)
+#define ASSERT(x)
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef REDIRECT
+#define printf_unfiltered printf_dbg
+#define fputs_unfiltered fputs_dbg
+void fputs_dbg (const char *fmt, FILE *fakestream);
+#endif /* REDIRECT */
+
+void puts_dbg(const char *fmt);
+void printf_dbg(const char *fmt,...);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _DEBUGIFY_H_ */
+