File: pldebug_8h-source.html

package info (click to toggle)
paintlib 2.6.2-8
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,900 kB
  • ctags: 3,875
  • sloc: cpp: 25,209; sh: 10,600; ansic: 1,891; makefile: 119
file content (151 lines) | stat: -rw-r--r-- 10,540 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>paintlib: pldebug.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.2 -->
<div class="qindex"><a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="hierarchy.html">Class&nbsp;Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical&nbsp;List</a> | <a class="qindex" href="annotated.html">Compound&nbsp;List</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class="qindex" href="functions.html">Compound&nbsp;Members</a></div>
<h1>pldebug.h</h1><div class="fragment"><pre>00001 <span class="comment">/*</span>
00002 <span class="comment">/--------------------------------------------------------------------</span>
00003 <span class="comment">|</span>
00004 <span class="comment">|      $Id: pldebug_8h-source.html,v 1.4 2004/09/15 15:26:29 uzadow Exp $</span>
00005 <span class="comment">|</span>
00006 <span class="comment">|      Plattform-independent support for PLASSERT_VALID, PLTRACE and</span>
00007 <span class="comment">|      PLASSERT.</span>
00008 <span class="comment">|</span>
00009 <span class="comment">|      Copyright (c) 1996-2002 Ulrich von Zadow</span>
00010 <span class="comment">|</span>
00011 <span class="comment">\--------------------------------------------------------------------</span>
00012 <span class="comment">*/</span>
00013 <span class="preprocessor">#ifndef INCL_PLDEBUG</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define INCL_PLDEBUG</span>
00015 <span class="preprocessor"></span>
00016 <span class="preprocessor">#ifdef _DEBUG</span>
00017 <span class="preprocessor"></span><span class="preprocessor">#include &lt;stdarg.h&gt;</span>
00018 <span class="preprocessor">#include &lt;stdio.h&gt;</span>
00019 <span class="preprocessor">#include &lt;stdlib.h&gt;</span>
00020 <span class="preprocessor">#ifdef _WINDOWS</span>
00021 <span class="preprocessor"></span><span class="preprocessor">#define WIN32_LEAN_AND_MEAN  </span><span class="comment">/* Prevent including &lt;winsock*.h&gt; in &lt;windows.h&gt; */</span>
00022 <span class="preprocessor">#define VC_EXTRALEAN  // Exclude rarely-used stuff from Windows headers</span>
00023 <span class="preprocessor"></span><span class="preprocessor">#include &lt;windows.h&gt;</span>  <span class="comment">// For OutputDebugString</span>
00024 <span class="preprocessor">#endif</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00026 <span class="preprocessor"></span>
00027 <span class="comment">//------------- PLASSERT_VALID</span>
00028 <span class="preprocessor">#ifdef _DEBUG</span>
00029 <span class="preprocessor"></span><span class="preprocessor">  #define PLASSERT_VALID(pOb) (pOb)-&gt;AssertValid()</span>
00030 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00031 <span class="preprocessor"></span><span class="preprocessor">  #define PLASSERT_VALID(pOb) do{} while (0)</span>
00032 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00033 <span class="preprocessor"></span>
00034 <span class="comment">//------------- TRACE</span>
00035 <span class="preprocessor">#ifdef _DEBUG</span>
00036 <span class="preprocessor"></span>  <span class="comment">// Inlined to avoid differing linker signatures for debug and release</span>
00037   <span class="comment">// versions of paintlib.</span>
00038   <span class="keywordtype">void</span> PLTrace(<span class="keyword">const</span> <span class="keywordtype">char</span> * pszFormat, ...); 
00039 <span class="preprocessor">  #define PLTRACE ::PLTrace</span>
00040 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00041 <span class="preprocessor"></span>  <span class="comment">// This will be optimized away in release mode and still allow TRACE</span>
00042   <span class="comment">// to take a variable amount of arguments :-).</span>
00043   <span class="keyword">inline</span> <span class="keywordtype">void</span> PLTrace (<span class="keyword">const</span> <span class="keywordtype">char</span> *, ...) { }
00044 <span class="preprocessor">  #define PLTRACE  1 ? (void)0 : ::PLTrace</span>
00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00046 <span class="preprocessor"></span>
00047 <span class="comment">//------------- ASSERT</span>
00048 
00049 <span class="preprocessor">#ifdef _DEBUG</span>
00050 <span class="preprocessor"></span><span class="preprocessor">  #ifdef _WINDOWS</span>
00051 <span class="preprocessor"></span><span class="preprocessor">    #define PLASSERT(f)            \</span>
00052 <span class="preprocessor">      if (!(f))                    \</span>
00053 <span class="preprocessor">        {                          \</span>
00054 <span class="preprocessor">          PLTRACE ("Assertion failed at %s, %i\n", __FILE__, __LINE__); \</span>
00055 <span class="preprocessor">          __asm { int 3 }          \</span>
00056 <span class="preprocessor">        }</span>
00057 <span class="preprocessor"></span><span class="preprocessor">  #else</span>
00058 <span class="preprocessor"></span><span class="preprocessor">    #define PLASSERT(f)            \</span>
00059 <span class="preprocessor">      if (!(f))                    \</span>
00060 <span class="preprocessor">        {                          \</span>
00061 <span class="preprocessor">          PLTRACE ("Assertion failed at %s, %i\n", __FILE__, __LINE__); \</span>
00062 <span class="preprocessor">          abort();                 \</span>
00063 <span class="preprocessor">        }</span>
00064 <span class="preprocessor"></span><span class="preprocessor">  #endif</span>
00065 <span class="preprocessor"></span><span class="preprocessor">#else</span>
00066 <span class="preprocessor"></span><span class="preprocessor">  #define PLASSERT(f) do{}while (0)</span>
00067 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00068 <span class="preprocessor"></span>
00069 <span class="preprocessor">#ifdef _DEBUG</span>
00070 <span class="preprocessor"></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> PLTrace(<span class="keyword">const</span> <span class="keywordtype">char</span> * pszFormat, ...)
00071   {
00072     va_list args;
00073     va_start(args, pszFormat);
00074 
00075     <span class="keywordtype">int</span> nBuf;
00076     <span class="keywordtype">char</span> szBuffer[4096];
00077 
00078     nBuf = vsprintf(szBuffer, pszFormat, args);
00079     PLASSERT(nBuf &lt; 4096);
00080 
00081 <span class="preprocessor">#ifndef _WINDOWS</span>
00082 <span class="preprocessor"></span>    fprintf (stderr, szBuffer);
00083 <span class="preprocessor">#else</span>
00084 <span class="preprocessor"></span>    ::OutputDebugString (szBuffer);
00085 <span class="preprocessor">#endif //_WINDOWS</span>
00086 <span class="preprocessor"></span>
00087     va_end(args);
00088   }
00089 <span class="preprocessor">#endif</span>
00090 <span class="preprocessor"></span>
00091 <span class="comment">//------------- CompilerAssert template for conditional</span>
00092 <span class="comment">//              compile time error generation.</span>
00093 
00094 <span class="preprocessor">#define PLCOMPILER_ASSERT(cond) (void)sizeof(int[bool(cond)?1:-1]);</span>
00095 <span class="preprocessor"></span>
00096 
00097 <span class="preprocessor">#endif // INCL_PLDEBUG</span>
00098 <span class="preprocessor"></span>
00099 <span class="comment">/*</span>
00100 <span class="comment">/--------------------------------------------------------------------</span>
00101 <span class="comment">|</span>
00102 <span class="comment">|      $Log: pldebug_8h-source.html,v $
00102 <span class="comment">|      Revision 1.4  2004/09/15 15:26:29  uzadow
00102 <span class="comment">|      Linux compatibility changes, doc update.
00102 <span class="comment">|</span>
00103 <span class="comment">|      Revision 1.7  2004/09/11 12:41:35  uzadow</span>
00104 <span class="comment">|      removed plstdpch.h</span>
00105 <span class="comment">|</span>
00106 <span class="comment">|      Revision 1.6  2004/06/13 20:19:27  uzadow</span>
00107 <span class="comment">|      no message</span>
00108 <span class="comment">|</span>
00109 <span class="comment">|      Revision 1.5  2004/06/06 12:56:38  uzadow</span>
00110 <span class="comment">|      Doxygenified documentation.</span>
00111 <span class="comment">|</span>
00112 <span class="comment">|      Revision 1.4  2004/03/10 21:36:43  uzadow</span>
00113 <span class="comment">|      pltester now has sensible output in non-debug mode.</span>
00114 <span class="comment">|</span>
00115 <span class="comment">|      Revision 1.3  2002/03/31 13:36:41  uzadow</span>
00116 <span class="comment">|      Updated copyright.</span>
00117 <span class="comment">|</span>
00118 <span class="comment">|      Revision 1.2  2001/10/21 17:12:39  uzadow</span>
00119 <span class="comment">|      Added PSD decoder beta, removed BPPWanted from all decoders, added PLFilterPixel.</span>
00120 <span class="comment">|</span>
00121 <span class="comment">|      Revision 1.1  2001/09/16 19:03:22  uzadow</span>
00122 <span class="comment">|      Added global name prefix PL, changed most filenames.</span>
00123 <span class="comment">|</span>
00124 <span class="comment">|      Revision 1.3  2000/12/04 23:55:40  uzadow</span>
00125 <span class="comment">|      no message</span>
00126 <span class="comment">|</span>
00127 <span class="comment">|      Revision 1.2  2000/12/04 13:28:17  uzadow</span>
00128 <span class="comment">|      Changed PLASSERT to use int 3 in windows builds.</span>
00129 <span class="comment">|</span>
00130 <span class="comment">|      Revision 1.1  2000/01/17 23:45:07  Ulrich von Zadow</span>
00131 <span class="comment">|      MFC-Free version.</span>
00132 <span class="comment">|</span>
00133 <span class="comment">|</span>
00134 <span class="comment">\--------------------------------------------------------------------</span>
00135 <span class="comment">*/</span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Mon Sep 13 16:16:40 2004 for paintlib by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.2 </small></address>
</body>
</html>