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

📄 sdutil.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
/*      @(#)sdutil.c	1.1 7/30/92 Copyright Sun Micro     */#include <stdio.h>#ifndef SVR4#include <mon/idprom.h>#endif#include "sdrtns.h"/**************************************************************************** NAME: trace_before(), trace_after() -  Trace where you are as test in progress.	Use trace_before() prior to entering one place, trace_after right	after leaving that place. SYNOPSIS:        void trace_before(string)	void trace_after(string) ARGUMENTS:	input:  char *string - name of the place.	   DESCRIPTION:	When trace_before(string) is called,  the following message will 	display at on-line mode:	  "@test_name device_name: L# func_name (before) string".	For trace_after(string):	  "@test_name device_name: L# func_name (after) string"; 	where, L# indicates the scope level of function func_name relative	to main (L0).  The string should be the place to enter or leave.	At Sundaig mode, "@test_name device_name" is replaced by a standard	formatted prepending message.  MACROS:	MAX_LEVEL - the maximun scope level depth that this trace allows.	FUNC_NAME_LENGTH - the length limit of function name (func_name). NOTE:	There is two macros pertaining to trace_before and trace_after:	   TRACE_IN  --  defined in sdrtns.h as			 (void)trace_before((char *)NULL)	   TRACE_OUT --  (void)trace_after((char *)NULL)	They are used as follows:		function()		{			func_name = "function";		      	TRACE_IN			...			...			TRACE_OUT			return(0)		} 	At on-line mode, TRACE_IN will display:	"@test_name device_name: L# func_name(Enter) string".        At Sundaig mode, "@test_name device_name" is replaced by a standard         formatted prepending message.   RETURN VALUE:  void*****************************************************************************/#define MAX_LEVEL	  40#define FUNC_NAME_LENGTH  80static char func_name_buf[MAX_LEVEL+1][FUNC_NAME_LENGTH];void trace_before(string)char *string;{    extern int  trace_level;    char  *control_str;    if( (string== (char *)NULL  || string[0]==NULL) &&		trace_level < MAX_LEVEL) { 	strcpy (func_name_buf[++trace_level], func_name);	send_message (0, TRACE, "%s%d %s(Enter)", "L", trace_level,		func_name);    }    else    	send_message (0, TRACE, "%s%d %s (before) %s", "L", trace_level, 		func_name, string);}void trace_after(string)char *string;{    extern int trace_level;    if( (string== (char *)NULL  || string[0]==NULL) && 	  trace_level >0 ) {           send_message (0, TRACE, "%s%d %s(Leave)", "L", trace_level,		func_name_buf[trace_level]);	trace_level -= 1;	func_name = "unknown_function";    }    else        send_message (0, TRACE, "%s%d %s (after) %s", "L", trace_level, 		func_name, string);} 

⌨️ 快捷键说明

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