From: Ben Pfaff Date: Tue, 12 Apr 2005 05:05:47 +0000 (+0000) Subject: Get rid of DEBUG macro, supporting code, and documentation, X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=399807640fe989ca9fc4d18343600cecefb76f50;p=pintos-anon Get rid of DEBUG macro, supporting code, and documentation, because no one ever used it. --- diff --git a/doc/debug.texi b/doc/debug.texi index 961888f..75d9b24 100644 --- a/doc/debug.texi +++ b/doc/debug.texi @@ -7,7 +7,6 @@ introduces you to a few of them. @menu * printf:: * ASSERT:: -* DEBUG:: * UNUSED NO_RETURN NO_INLINE PRINTF_FORMAT:: * Backtraces:: * i386-elf-gdb:: @@ -53,31 +52,6 @@ When an assertion proves untrue, the kernel panics. The panic message should help you to find the problem. See the description of backtraces below for more information. -@node DEBUG -@section @code{DEBUG} - -The @code{DEBUG} macro, also defined in @file{}, is a sort of -conditional @func{printf}. It takes as its arguments the name of a -``message class'' and a @func{printf}-like format string and -arguments. The message class is used to filter the messages that are -actually displayed. You select the messages to display on the Pintos -command line using the @option{-d} option. This allows you to easily -turn different types of messages on and off while you debug, without -the need to recompile. - -For example, suppose you want to output thread debugging messages. To -use a class named @code{thread}, you could invoke @code{DEBUG} like -this: -@example -DEBUG(thread, "thread id: %d\n", id); -@end example -@noindent -and then to start Pintos with @code{thread} messages enable you'd use -a command line like this: -@example -pintos run -d thread -@end example - @node UNUSED NO_RETURN NO_INLINE PRINTF_FORMAT @section UNUSED, NO_RETURN, NO_INLINE, and PRINTF_FORMAT diff --git a/src/lib/debug.c b/src/lib/debug.c index 4f0f5f3..66e9119 100644 --- a/src/lib/debug.c +++ b/src/lib/debug.c @@ -12,56 +12,6 @@ #include #endif -#define MAX_CLASSES 16 -static bool all_enabled; -static const char *enabled_classes[MAX_CLASSES]; -static size_t enabled_cnt; - -static bool class_is_enabled (const char *class); - -/* Enables the debug message classes specified in CLASSES. The - string CLASSES is modified by and becomes owned by this - function. */ -void -debug_enable (char *classes) -{ - char *class, *save; - - for (class = strtok_r (classes, ",", &save); class != NULL; - class = strtok_r (NULL, ",", &save)) - { - if (strcmp (class, "all") && enabled_cnt < MAX_CLASSES) - enabled_classes[enabled_cnt++] = class; - else - all_enabled = true; - } -} - -/* Prints a debug message along with the source file name, line - number, and function name of where it was emitted. CLASS is - used to filter out unwanted messages. */ -void -debug_message (const char *file, int line, const char *function, - const char *class, const char *message, ...) -{ - if (class_is_enabled (class)) - { - va_list args; - -#ifdef KERNEL - enum intr_level old_level = intr_disable (); -#endif - printf ("%s:%d: %s(): ", file, line, function); - va_start (args, message); - vprintf (message, args); - printf ("\n"); - va_end (args); -#ifdef KERNEL - intr_set_level (old_level); -#endif - } -} - /* Halts the OS or user program, printing the source file name, line number, and function name, plus a user-specific message. */ @@ -118,20 +68,3 @@ debug_backtrace (void) printf (" %p", frame[1]); printf (".\n"); } - - -/* Returns true if CLASS is enabled, false otherwise. */ -static bool -class_is_enabled (const char *class) -{ - size_t i; - - if (all_enabled) - return true; - - for (i = 0; i < enabled_cnt; i++) - if (!strcmp (enabled_classes[i], class)) - return true; - - return false; -} diff --git a/src/lib/debug.h b/src/lib/debug.h index 947dff2..3ab800b 100644 --- a/src/lib/debug.h +++ b/src/lib/debug.h @@ -9,20 +9,11 @@ #define NO_INLINE __attribute__ ((noinline)) #define PRINTF_FORMAT(FMT, FIRST) __attribute__ ((format (printf, FMT, FIRST))) -/* Prints a debug message along with the source file name, line - number, and function name of where it was emitted. CLASS is - used to filter out unwanted messages. */ -#define DEBUG(CLASS, ...) \ - debug_message (__FILE__, __LINE__, __func__, #CLASS, __VA_ARGS__) - /* Halts the OS, printing the source file name, line number, and function name, plus a user-specific message. */ #define PANIC(...) debug_panic (__FILE__, __LINE__, __func__, __VA_ARGS__) void debug_enable (char *classes); -void debug_message (const char *file, int line, const char *function, - const char *class, const char *message, ...) - PRINTF_FORMAT (5, 6); void debug_panic (const char *file, int line, const char *function, const char *message, ...) PRINTF_FORMAT (4, 5) NO_RETURN; void debug_backtrace (void); diff --git a/src/threads/init.c b/src/threads/init.c index f6a01dc..5896616 100644 --- a/src/threads/init.c +++ b/src/threads/init.c @@ -222,8 +222,6 @@ argv_init (void) for (i = 0; i < argc; i++) if (!strcmp (argv[i], "-rs")) random_init (atoi (argv[++i])); - else if (!strcmp (argv[i], "-d")) - debug_enable (argv[++i]); else if (!strcmp (argv[i], "-q")) power_off_when_done = true; #ifdef USERPROG @@ -255,8 +253,7 @@ argv_init (void) { printf ( "Kernel options:\n" - " -rs SEED Seed random seed to SEED.\n" - " -d CLASS[,...] Enable the given classes of debug messages.\n" + " -rs SEED Set random seed to SEED.\n" #ifdef USERPROG " -ex 'PROG [ARG...]' Run PROG, passing the optional arguments.\n" " -ul USER_MAX Limit user memory to USER_MAX pages.\n"