debug_common.C
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #include <stdio.h>
00032 #include <stdlib.h>
00033 #include <stdarg.h>
00034
00035 #include "common/h/debug_common.h"
00036
00037 int common_debug_dwarf = 0;
00038 int common_debug_addrtranslate = 0;
00039
00040 #if defined(_MSC_VER)
00041 #pragma warning(push)
00042 #pragma warning(disable:4996)
00043 #endif
00044
00045 bool init_debug_common() {
00046 static bool initialized = false;
00047 if (initialized) return true;
00048 initialized = true;
00049
00050 if (getenv("COMMON_DEBUG_DWARF") ||
00051 getenv("DYNINST_DEBUG_DWARF")) {
00052 common_debug_dwarf = 1;
00053 }
00054
00055 if (getenv("DYNINST_DEBUG_ADDRTRANSLATE") ||
00056 getenv("DYNINST_DEBUG_TRANSLATE")) {
00057 common_debug_addrtranslate = 1;
00058 }
00059
00060 return true;
00061 }
00062
00063
00064 int dwarf_printf_int(const char *format, ...)
00065 {
00066 init_debug_common();
00067 if (!common_debug_dwarf) return 0;
00068 if (NULL == format) return -1;
00069
00070 va_list va;
00071 va_start(va, format);
00072 int ret = vfprintf(stderr, format, va);
00073 va_end(va);
00074
00075 return ret;
00076 }
00077
00078 int translate_printf_int(const char *format, ...)
00079 {
00080 init_debug_common();
00081 if (!common_debug_addrtranslate) return 0;
00082 if (NULL == format) return -1;
00083
00084 va_list va;
00085 va_start(va, format);
00086 int ret = vfprintf(stderr, format, va);
00087 va_end(va);
00088
00089 return ret;
00090 }
00091
00092
00093 #if defined(_MSC_VER)
00094 #pragma warning(pop)
00095 #endif
00096