1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
/*
* $Id: GCdebug.c,v 1.8 2006-02-09 13:29:35 rousseau Exp $
* GCdebug.c: log (or not) messages
* Copyright (C) 2001 Ludovic Rousseau <ludovic.rousseau@free.fr>
*
* License: this code is under a double licence COPYING.BSD and COPYING.GPL
*
*/
#include "Config.h"
#include "GCdebug.h"
#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#define DEBUG_BUF_SIZE (256*3+30)
static char DebugBuffer[DEBUG_BUF_SIZE];
void log_msg(const int priority, const char *fmt, ...)
{
va_list argptr;
va_start(argptr, fmt);
vsnprintf(DebugBuffer, DEBUG_BUF_SIZE, fmt, argptr);
va_end(argptr);
fprintf(stderr, "%s\n", DebugBuffer);
} /* debug_msg */
void log_xxd(const int priority, const char *msg, const unsigned char *buffer,
const int len)
{
int i;
char *c, *debug_buf_end;
debug_buf_end = DebugBuffer + DEBUG_BUF_SIZE - 5;
strncpy(DebugBuffer, msg, sizeof(DebugBuffer)-1);
c = DebugBuffer + strlen(DebugBuffer);
for (i = 0; (i < len) && (c < debug_buf_end); ++i)
{
sprintf(c, "%02X ", buffer[i]);
c += strlen(c);
}
fprintf(stderr, "%s\n", DebugBuffer);
} /* debug_xxd */
|