⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debug.h

📁 一个Windows下的Linux专用虚拟机
💻 H
字号:
/* * This source code is a part of coLinux source package. * * Dan Aloni <da-x@colinux.org>, 2003 (c) * * The code is licensed under the GPL. See the COPYING file at * the root directory. */#ifndef __COLINUX_DEBUG_H__#define __COLINUX_DEBUG_H__#ifdef COLINUX_DEBUG/*-------------------------------- Debug Mode --------------------------------*/#include <stdarg.h>extern char _colinux_module[0x30];extern const char *colinux_obj_filenames[];#define COLINUX_DEFINE_MODULE(str) \char _colinux_module[] = str;#define CO_DEBUG_LIST \	X(misc,           15, 0) \	X(network,        15, 0) \	X(messages,       15, 0) \	X(prints,         15, 0) \	X(blockdev,       15, 0) \	X(allocations,    15, 0) \	X(context_switch, 15, 0) \	X(pipe,           15, 0) \	X(filesystem,     15, 0) \typedef struct {#define X(facility, static_level, default_dynamic_level) int facility##_level;	CO_DEBUG_LIST#undef X} co_debug_levels_t;typedef enum {#define X(facility, static_level, default_dynamic_level) CO_DEBUG_FACILITY_##facility,	CO_DEBUG_LIST#undef X} co_debug_facility_t;extern void co_debug_system(const char *fmt, ...)	__attribute__ ((format (printf, 1, 2)));extern void co_debug_level_system(const char *module, co_debug_facility_t facility, int level,			const char *filename, int line, const char *func, const char *text);extern void co_debug_(const char *module, co_debug_facility_t facility, int level, 		      const char *filename, int line, const char *func,		      const char *fmt, ...)	__attribute__ ((format (printf, 7, 8)));extern co_debug_levels_t co_global_debug_levels;#define X(facility, static_level, default_dynamic_level)	        \static inline int co_debug_log_##facility##_level(int requested_level)  \{									\	if (requested_level > static_level)				\		return 0;						\	return (requested_level <= co_global_debug_levels.facility##_level);      \}CO_DEBUG_LIST;#undef X#define co_debug_lvl(facility, __level__, fmt, ...) do { \        if (co_debug_log_##facility##_level(__level__))  \		co_debug_(_colinux_module, CO_DEBUG_FACILITY_##facility, __level__, __FILE__, \                          __LINE__, __FUNCTION__, fmt, ## __VA_ARGS__);	\} while (0)#else/*------------------------------ Production Mode -----------------------------*/#define co_debug_lvl(facility, level, fmt, ...)    do {} while(0)#define co_debug_system(fmt, ...)                  do {} while(0)/*----------------------------------------------------------------------------*/#endiftypedef enum {	CO_DEBUG_TYPE_TLV,	CO_DEBUG_TYPE_TIMESTAMP,	CO_DEBUG_TYPE_STRING,	CO_DEBUG_TYPE_MODULE,	CO_DEBUG_TYPE_LOCAL_INDEX,	CO_DEBUG_TYPE_FACILITY,	CO_DEBUG_TYPE_LEVEL,	CO_DEBUG_TYPE_LINE,	CO_DEBUG_TYPE_FUNC,	CO_DEBUG_TYPE_FILE,	CO_DEBUG_TYPE_DRIVER_INDEX,} co_debug_type_t;typedef struct {	char type;	unsigned char length;	char value[];} co_debug_tlv_t;extern int co_debug_local_index;extern void co_debug_buf(const char *buf, long size);#define co_debug_ulong(name)     co_debug("%s: 0x%lx", #name, name)#define co_debug(fmt, ...)       co_debug_lvl(misc, 10, fmt, ## __VA_ARGS__)#define co_debug_error(fmt, ...) co_debug_lvl(misc, 3, fmt, ## __VA_ARGS__)#define co_debug_info(fmt, ...)  co_debug_lvl(misc, 1, fmt, ## __VA_ARGS__)#ifndef COLINUX_TRACE#undef CO_TRACE_STOP#define CO_TRACE_STOP#undef CO_TRACE_CONTINUE#define CO_TRACE_CONTINUE#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -