📄 leonbare_debug.h
字号:
#ifndef __LEONBARE_KERNEL_DEBUG_H__#define __LEONBARE_KERNEL_DEBUG_H__#include <asm-leon/leondbg.h>//#define LBDEBUG_DO_DEBUG//#define LBDEBUG_DO_ASSERT#define LBDEBUG_ASSERT_NR (1<<0)#define LBDEBUG_FNCALL_NR (1<<1)#define LBDEBUG_FNEXIT_NR (1<<2)#define LBDEBUG_SCHED_NR (1<<3)#define LBDEBUG_QUEUE_NR (1<<4)#define LBDEBUG_PRINTF leonbare_debug_printf#ifdef LBDEBUG_DO_DEBUGextern int leonbare_debug;# define PDEBUG_FLAGS_CHECK(c) ((c)&leonbare_debug)# define PDEBUG_FLAGS_SET(c) leonbare_debug |= c#else# define PDEBUG_FLAGS_CHECK(c) 0# define PDEBUG_FLAGS_SET(c) #endif#ifdef LBDEBUG_DO_DEBUG# define LBDEBUG(x, fmt, args...) do { if (PDEBUG_FLAGS_CHECK(x)) { LBDEBUG_PRINTF(fmt,args); } } while(0)#else# define LBDEBUG(x, fmt, args...) #endif#ifdef LBDEBUG_DO_ASSERT# define LBPASSERT(x, fmt, args...) if (!(x)) { LBDEBUG_PRINTF(fmt,args); while(1); }#else# define LBPASSERT(x, fmt, args...) #endif#define LBDEBUG_HEADER(code) \ if (PDEBUG_FLAGS_CHECK(code)) { \ register unsigned int _GETSP asm("sp"); \ LBDEBUG_PRINTF("[sp:%08x self(%08x):", _GETSP, LEONBARE_KR_CURRENT); \ LBDEBUG_PRINTF("%10s",LEONBARE_TH_NAME_DBG(LEONBARE_KR_CURRENT)); \ LBDEBUG_PRINTF(" %03d @ %28s()]:" , __LINE__,__FUNCTION__); \ }#define LBDEBUG_HEADER_PRINTF(code,fmt,args...) \ if (PDEBUG_FLAGS_CHECK(code)) { \ LBDEBUG_HEADER(code); \ LBDEBUG_PRINTF(fmt,args); \ }#define LBDEBUG_FNCALL LBDEBUG_HEADER_PRINTF(LBDEBUG_FNCALL_NR,"enter\n",0)#define LBDEBUG_FNEXIT LBDEBUG_HEADER_PRINTF(LBDEBUG_FNEXIT_NR,"exit\n",0)#ifndef __ASSEMBLER__int leonbare_debug_printf(const char *fmt, ...);#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -