]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/debugrpt.tex
undefine _DEFINE_LIST before redefining it; also rename it to have WX prefix
[wxWidgets.git] / docs / latex / wx / debugrpt.tex
... / ...
CommitLineData
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: debugrpt.tex
3%% Purpose: wxDebugReport documentation
4%% Author: Vadim Zeitlin
5%% Modified by:
6%% Created: 2005-03-21
7%% RCS-ID: $Id$
8%% Copyright: (c) Vadim Zeitlin 2005
9%% License: wxWindows license
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12\section{\class{wxDebugReport}}\label{wxdebugreport}
13
14wxDebugReport is used to generate a debug report, containing information about
15the program current state. It is usually used from
16\helpref{wxApp::OnFatalException()}{wxapponfatalexception} as shown in the
17\helpref{sample}{sampledebugrpt}.
18
19A wxDebugReport object contains one or more files. A few of them can be created by the
20class itself but more can be created from the outside and then added to the
21report. Also note that several virtual functions may be overridden to further
22customize the class behaviour.
23
24Once a report is fully assembled, it can simply be left in the temporary
25directory so that the user can email it to the developers (in which case you
26should still use \helpref{wxDebugReportCompress}{wxdebugreportcompress} to
27compress it in a single file) or uploaded to a Web server using
28\helpref{wxDebugReportUpload}{wxdebugreportupload} (setting up the Web server
29to accept uploads is your responsibility, of course). Other handlers, for example for
30automatically emailing the report, can be defined as well but are not currently
31included in wxWidgets.
32
33\wxheading{Example of use}
34
35\begin{verbatim}
36 wxDebugReport report;
37 wxDebugReportPreviewStd preview;
38
39 report.AddCurrentContext(); // could also use AddAll()
40 report.AddCurrentDump(); // to do both at once
41
42 if ( preview.Show(report) )
43 report.Process();
44\end{verbatim}
45
46\wxheading{Derived from}
47
48No base class
49
50\wxheading{Include files}
51
52<wx/debugrpt.h>
53
54\wxheading{Library}
55
56\helpref{wxQa}{librarieslist}
57
58\wxheading{Data structures}
59
60This enum is used for functions that report either the current state
61or the state during the last (fatal) exception:
62
63\begin{verbatim}
64enum wxDebugReport::Context
65{
66 Context_Current,
67 Context_Exception
68};
69\end{verbatim}
70
71\latexignore{\rtfignore{\wxheading{Members}}}
72
73
74\membersection{wxDebugReport::wxDebugReport}\label{wxdebugreportwxdebugreport}
75
76\func{}{wxDebugReport}{\void}
77
78The constructor creates a temporary directory where the files that will
79be included in the report are created. Use
80\helpref{IsOk()}{wxdebugreportisok} to check for errors.
81
82
83\membersection{wxDebugReport::\destruct{wxDebugReport}}\label{wxdebugreportdtor}
84
85\func{}{\destruct{wxDebugReport}}{\void}
86
87The destructor normally destroys the temporary directory created in the constructor
88with all the files it contains. Call \helpref{Reset()}{wxdebugreportreset} to
89prevent this from happening.
90
91
92\membersection{wxDebugReport::AddAll}\label{wxdebugreportaddall}
93
94\func{void}{AddAll}{\param{Context }{context = Context\_Exception}}
95
96Adds all available information to the report. Currently this includes a
97text (XML) file describing the process context and, under Win32, a minidump
98file.
99
100
101\membersection{wxDebugReport::AddContext}\label{wxdebugreportaddcontext}
102
103\func{bool}{AddContext}{\param{Context }{ctx}}
104
105Add an XML file containing the current or exception context and the
106stack trace.
107
108
109\membersection{wxDebugReport::AddCurrentContext}\label{wxdebugreportaddcurrentcontext}
110
111\func{bool}{AddCurrentContext}{\void}
112
113The same as \helpref{AddContext(Context\_Current)}{wxdebugreportaddcontext}.
114
115
116\membersection{wxDebugReport::AddCurrentDump}\label{wxdebugreportaddcurrentdump}
117
118\func{bool}{AddCurrentDump}{\void}
119
120The same as \helpref{AddDump(Context\_Current)}{wxdebugreportadddump}.
121
122
123\membersection{wxDebugReport::AddDump}\label{wxdebugreportadddump}
124
125\func{bool}{AddDump}{\param{Context }{ctx}}
126
127Adds the minidump file to the debug report.
128
129Minidumps are only available under recent Win32 versions (\texttt{dbghlp32.dll}
130can be installed under older systems to make minidumps available).
131
132
133\membersection{wxDebugReport::AddExceptionContext}\label{wxdebugreportaddexceptioncontext}
134
135\func{bool}{AddExceptionContext}{\void}
136
137The same as \helpref{AddContext(Context\_Exception)}{wxdebugreportaddcontext}.
138
139
140\membersection{wxDebugReport::AddExceptionDump}\label{wxdebugreportaddexceptiondump}
141
142\func{bool}{AddExceptionDump}{\void}
143
144The same as \helpref{AddDump(Context\_Exception)}{wxdebugreportadddump}.
145
146
147\membersection{wxDebugReport::AddFile}\label{wxdebugreportaddfile}
148
149\func{void}{AddFile}{\param{const wxString\& }{filename}, \param{const wxString\& }{description}}
150
151Add another file to the report. If \arg{filename} is an absolute path, it is
152copied to a file in the debug report directory with the same name. Otherwise
153the file should already exist in this directory
154
155\arg{description} only exists to be displayed to the user in the report summary
156shown by \helpref{wxDebugReportPreview}{wxdebugreportpreview}.
157
158\wxheading{See also }
159
160\helpref{GetDirectory()}{wxdebugreportgetdirectory},\\
161\helpref{AddText()}{wxdebugreportaddtext}
162
163
164\membersection{wxDebugReport::AddText}\label{wxdebugreportaddtext}
165
166\func{bool}{AddText}{\param{const wxString\& }{filename}, \param{const wxString\& }{text}, \param{const wxString\& }{description}}
167
168This is a convenient wrapper around \helpref{AddFile}{wxdebugreportaddfile}. It
169creates the file with the given \arg{name} and writes \arg{text} to it, then
170adds the file to the report. The \arg{filename} shouldn't contain the path.
171
172Returns \true if file could be added successfully, \false if an IO error
173occurred.
174
175
176\membersection{wxDebugReport::DoAddCustomContext}\label{wxdebugreportdoaddcustomcontext}
177
178\func{void}{DoAddCustomContext}{\param{wxXmlNode * }{nodeRoot}}
179
180This function may be overridden to add arbitrary custom context to the XML
181context file created by \helpref{AddContext}{wxdebugreportaddcontext}. By
182default, it does nothing.
183
184
185\membersection{wxDebugReport::DoAddExceptionInfo}\label{wxdebugreportdoaddexceptioninfo}
186
187\func{bool}{DoAddExceptionInfo}{\param{wxXmlNode* }{nodeContext}}
188
189This function may be overridden to modify the contents of the exception tag in
190the XML context file.
191
192
193\membersection{wxDebugReport::DoAddLoadedModules}\label{wxdebugreportdoaddloadedmodules}
194
195\func{bool}{DoAddLoadedModules}{\param{wxXmlNode* }{nodeModules}}
196
197This function may be overridden to modify the contents of the modules tag in
198the XML context file.
199
200
201\membersection{wxDebugReport::DoAddSystemInfo}\label{wxdebugreportdoaddsysteminfo}
202
203\func{bool}{DoAddSystemInfo}{\param{wxXmlNode* }{nodeSystemInfo}}
204
205This function may be overridden to modify the contents of the system tag in
206the XML context file.
207
208
209\membersection{wxDebugReport::GetDirectory}\label{wxdebugreportgetdirectory}
210
211\constfunc{const wxString\&}{GetDirectory}{\void}
212
213Returns the name of the temporary directory used for the files in this report.
214
215This method should be used to construct the full name of the files which you
216wish to add to the report using \helpref{AddFile}{wxdebugreportaddfile}.
217
218
219\membersection{wxDebugReport::GetFile}\label{wxdebugreportgetfile}
220
221\constfunc{bool}{GetFile}{\param{size\_t }{n}, \param{wxString* }{name}, \param{wxString* }{desc}}
222
223Retrieves the name (relative to
224\helpref{GetDirectory()}{wxdebugreportgetdirectory}) and the description of the
225file with the given index. If \arg{n} is greater than or equal to the number of
226filse, \false is returned.
227
228
229\membersection{wxDebugReport::GetFilesCount}\label{wxdebugreportgetfilescount}
230
231\constfunc{size\_t}{GetFilesCount}{\void}
232
233Gets the current number files in this report.
234
235
236\membersection{wxDebugReport::GetReportName}\label{wxdebugreportgetreportname}
237
238\constfunc{wxString}{GetReportName}{\void}
239
240Gets the name used as a base name for various files, by default
241\helpref{wxApp::GetAppName()}{wxappgetappname} is used.
242
243
244\membersection{wxDebugReport::IsOk}\label{wxdebugreportisok}
245
246\constfunc{bool}{IsOk}{\void}
247
248Returns \true if the object was successfully initialized. If this method returns
249\false the report can't be used.
250
251
252\membersection{wxDebugReport::Process}\label{wxdebugreportprocess}
253
254\func{bool}{Process}{\void}
255
256Processes this report: the base class simply notifies the user that the
257report has been generated. This is usually not enough -- instead you
258should override this method to do something more useful to you.
259
260
261\membersection{wxDebugReport::RemoveFile}\label{wxdebugreportremovefile}
262
263\func{void}{RemoveFile}{\param{const wxString\& }{name}}
264
265Removes the file from report: this is used by
266\helpref{wxDebugReportPreview}{wxdebugreportpreview} to allow the user to
267remove files potentially containing private information from the report.
268
269
270\membersection{wxDebugReport::Reset}\label{wxdebugreportreset}
271
272\func{void}{Reset}{\void}
273
274Resets the directory name we use. The object can't be used any more after
275this as it becomes uninitialized and invalid.
276