diff options
Diffstat (limited to 'tools/gdb/error.c')
| -rw-r--r-- | tools/gdb/error.c | 58 | 
1 files changed, 58 insertions, 0 deletions
| diff --git a/tools/gdb/error.c b/tools/gdb/error.c new file mode 100644 index 000000000..aea290111 --- /dev/null +++ b/tools/gdb/error.c @@ -0,0 +1,58 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <errno.h> +#include "error.h" + +char *pname; + +void +Warning(char *fmt, ...) +{ +    va_list args; + +    fprintf(stderr, "%s: WARNING: ", pname); + +    va_start(args, fmt); +    vfprintf(stderr, fmt, args); +    va_end(args); + +    fprintf(stderr, "\n"); +} + +void +Error(char *fmt, ...) +{ +    va_list args; + +    fprintf(stderr, "%s: ERROR: ", pname); + +    va_start(args, fmt); +    vfprintf(stderr, fmt, args); +    va_end(args); + +    fprintf(stderr, "\n"); + +    exit(1); +} + +void +Perror(char *fmt, ...) +{ +    va_list args; +    int e = errno; +    char *p; + +    fprintf(stderr, "%s: ERROR: ", pname); + +    va_start(args, fmt); +    vfprintf(stderr, fmt, args); +    va_end(args); + +    if ((p = strerror(e)) == NULL || *p == '\0') +	fprintf(stderr, ": Unknown Error (%d)\n", e); +    else +	fprintf(stderr, ": %s\n", p); + +    exit(1); +} |