diff options
author | Dawn Perchik <dawn@cygnus> | 1997-02-12 22:48:45 +0000 |
---|---|---|
committer | Dawn Perchik <dawn@cygnus> | 1997-02-12 22:48:45 +0000 |
commit | 4659e3b3672dd188d167d8dba5c9a429c3cdaf51 (patch) | |
tree | b057fc2855e7cc9fbbb4dd214fa911f91045bdb3 /gdb | |
parent | 19336eb964e520638e838e895563ced9ddeec2d8 (diff) | |
download | gdb-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/.Sanitize | 2 | ||||
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/debugify.c | 66 | ||||
-rw-r--r-- | gdb/debugify.h | 42 |
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_ */ + |