debug.c

来自「ctags-5.5.4.tar.gz,一个很好的代码开发以及编辑源码」· C语言 代码 · 共 116 行

C
116
字号
/**   $Id: debug.c,v 1.3 2002/06/15 22:28:44 darren Exp $**   Copyright (c) 1996-2002, Darren Hiebert**   This source code is released for free distribution under the terms of the*   GNU General Public License.**   This module contains debugging functions.*//**   INCLUDE FILES*/#include "general.h"	/* must always come first */#include <ctype.h>#include <stdarg.h>#include "debug.h"#include "options.h"#include "read.h"/**   FUNCTION DEFINITIONS*/#ifdef DEBUGextern void lineBreak (void) {}	/* provides a line-specified break point */extern void debugPrintf ( const enum eDebugLevels level,			 const char *const format, ... ){    va_list ap;    va_start (ap, format);    if (debug (level))	vprintf (format, ap);    fflush (stdout);    va_end (ap);}extern void debugPutc (const int level, const int c){    if (debug (level)  &&  c != EOF)    {    	     if (c == STRING_SYMBOL)	printf ("\"string\"");    	else if (c == CHAR_SYMBOL)	printf ("'c'");	else				putchar (c);	fflush (stdout);    }}extern void debugParseNest (const boolean increase, const unsigned int level){    debugPrintf (DEBUG_PARSE, "<*%snesting:%d*>", increase ? "++" : "--", level);}extern void debugCppNest (const boolean begin, const unsigned int level){    debugPrintf (DEBUG_CPP, "<*cpp:%s level %d*>", begin ? "begin":"end", level);}extern void debugCppIgnore (const boolean ignore){    debugPrintf (DEBUG_CPP, "<*cpp:%s ignore*>", ignore ? "begin":"end");}extern void clearString (char *const string, const int length){    int i;    for (i = 0 ; i < length ; ++i)	string [i] = '\0';}extern void debugEntry (const tagEntryInfo *const tag){    const char *const scope = tag->isFileScope ? "{fs}" : "";    if (debug (DEBUG_PARSE))    {	printf ("<#%s%s:%s", scope, tag->kindName, tag->name);	if (tag->extensionFields.scope [0] != NULL  &&		tag->extensionFields.scope [1] != NULL)	    printf (" [%s:%s]", tag->extensionFields.scope [0],		    tag->extensionFields.scope [1]);	if (Option.extensionFields.inheritance  &&		tag->extensionFields.inheritance != NULL)	    printf (" [inherits:%s]", tag->extensionFields.inheritance);	if (Option.extensionFields.fileScope &&		tag->isFileScope && ! isHeaderFile ())	    printf (" [file:]");	if (Option.extensionFields.access  &&		tag->extensionFields.access != NULL)	    printf (" [access:%s]", tag->extensionFields.access);	if (Option.extensionFields.implementation  &&		tag->extensionFields.implementation != NULL)	    printf (" [imp:%s]", tag->extensionFields.implementation);	printf ("#>");	fflush (stdout);    }}#endif/* vi:set tabstop=8 shiftwidth=4: */

⌨️ 快捷键说明

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