git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			277 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			277 lines
		
	
	
		
			8.8 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
						|
%% Name:        debugrpt.tex
 | 
						|
%% Purpose:     wxDebugReport documentation
 | 
						|
%% Author:      Vadim Zeitlin
 | 
						|
%% Modified by:
 | 
						|
%% Created:     2005-03-21
 | 
						|
%% RCS-ID:      $Id$
 | 
						|
%% Copyright:   (c) Vadim Zeitlin 2005
 | 
						|
%% License:     wxWindows license
 | 
						|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 | 
						|
 | 
						|
\section{\class{wxDebugReport}}\label{wxdebugreport}
 | 
						|
 | 
						|
wxDebugReport is used to generate a debug report, containing information about
 | 
						|
the program current state. It is usually used from 
 | 
						|
\helpref{wxApp::OnFatalException()}{wxapponfatalexception} as shown in the 
 | 
						|
\helpref{sample}{sampledebugrpt}.
 | 
						|
 | 
						|
A wxDebugReport object contains one or more files. A few of them can be created by the
 | 
						|
class itself but more can be created from the outside and then added to the
 | 
						|
report. Also note that several virtual functions may be overridden to further
 | 
						|
customize the class behaviour.
 | 
						|
 | 
						|
Once a report is fully assembled, it can simply be left in the temporary
 | 
						|
directory so that the user can email it to the developers (in which case you
 | 
						|
should still use \helpref{wxDebugReportCompress}{wxdebugreportcompress} to
 | 
						|
compress it in a single file) or uploaded to a Web server using 
 | 
						|
\helpref{wxDebugReportUpload}{wxdebugreportupload} (setting up the Web server
 | 
						|
to accept uploads is your responsibility, of course). Other handlers, for example for
 | 
						|
automatically emailing the report, can be defined as well but are not currently
 | 
						|
included in wxWidgets.
 | 
						|
 | 
						|
\wxheading{Example of use}
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
    wxDebugReport report;
 | 
						|
    wxDebugReportPreviewStd preview;
 | 
						|
 | 
						|
    report.AddCurrentContext();  // could also use AddAll()
 | 
						|
    report.AddCurrentDump();     // to do both at once
 | 
						|
 | 
						|
    if ( preview.Show(report) )
 | 
						|
        report.Process();
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
\wxheading{Derived from}
 | 
						|
 | 
						|
No base class
 | 
						|
 | 
						|
\wxheading{Include files}
 | 
						|
 | 
						|
<wx/debugrpt.h>
 | 
						|
 | 
						|
\wxheading{Library}
 | 
						|
 | 
						|
\helpref{wxQa}{librarieslist}
 | 
						|
 | 
						|
\wxheading{Data structures}
 | 
						|
 | 
						|
This enum is used for functions that report either the current state
 | 
						|
or the state during the last (fatal) exception:
 | 
						|
 | 
						|
\begin{verbatim}
 | 
						|
enum wxDebugReport::Context
 | 
						|
{
 | 
						|
    Context_Current,
 | 
						|
    Context_Exception
 | 
						|
};
 | 
						|
\end{verbatim}
 | 
						|
 | 
						|
\latexignore{\rtfignore{\wxheading{Members}}}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::wxDebugReport}\label{wxdebugreportwxdebugreport}
 | 
						|
 | 
						|
\func{}{wxDebugReport}{\void}
 | 
						|
 | 
						|
The constructor creates a temporary directory where the files that will
 | 
						|
be included in the report are created. Use 
 | 
						|
\helpref{IsOk()}{wxdebugreportisok} to check for errors.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::\destruct{wxDebugReport}}\label{wxdebugreportdtor}
 | 
						|
 | 
						|
\func{}{\destruct{wxDebugReport}}{\void}
 | 
						|
 | 
						|
The destructor normally destroys the temporary directory created in the constructor
 | 
						|
with all the files it contains. Call \helpref{Reset()}{wxdebugreportreset} to
 | 
						|
prevent this from happening.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddAll}\label{wxdebugreportaddall}
 | 
						|
 | 
						|
\func{void}{AddAll}{\param{Context }{context = Context\_Exception}}
 | 
						|
 | 
						|
Adds all available information to the report. Currently this includes a
 | 
						|
text (XML) file describing the process context and, under Win32, a minidump
 | 
						|
file.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddContext}\label{wxdebugreportaddcontext}
 | 
						|
 | 
						|
\func{bool}{AddContext}{\param{Context }{ctx}}
 | 
						|
 | 
						|
Add an XML file containing the current or exception context and the
 | 
						|
stack trace.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddCurrentContext}\label{wxdebugreportaddcurrentcontext}
 | 
						|
 | 
						|
\func{bool}{AddCurrentContext}{\void}
 | 
						|
 | 
						|
The same as \helpref{AddContext(Context\_Current)}{wxdebugreportaddcontext}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddCurrentDump}\label{wxdebugreportaddcurrentdump}
 | 
						|
 | 
						|
\func{bool}{AddCurrentDump}{\void}
 | 
						|
 | 
						|
The same as \helpref{AddDump(Context\_Current)}{wxdebugreportadddump}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddDump}\label{wxdebugreportadddump}
 | 
						|
 | 
						|
\func{bool}{AddDump}{\param{Context }{ctx}}
 | 
						|
 | 
						|
Adds the minidump file to the debug report.
 | 
						|
 | 
						|
Minidumps are only available under recent Win32 versions (\texttt{dbghlp32.dll} 
 | 
						|
can be installed under older systems to make minidumps available).
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddExceptionContext}\label{wxdebugreportaddexceptioncontext}
 | 
						|
 | 
						|
\func{bool}{AddExceptionContext}{\void}
 | 
						|
 | 
						|
The same as \helpref{AddContext(Context\_Exception)}{wxdebugreportaddcontext}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddExceptionDump}\label{wxdebugreportaddexceptiondump}
 | 
						|
 | 
						|
\func{bool}{AddExceptionDump}{\void}
 | 
						|
 | 
						|
The same as \helpref{AddDump(Context\_Exception)}{wxdebugreportadddump}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddFile}\label{wxdebugreportaddfile}
 | 
						|
 | 
						|
\func{void}{AddFile}{\param{const wxString\& }{filename}, \param{const wxString\& }{description}}
 | 
						|
 | 
						|
Add another file to the report. If \arg{filename} is an absolute path, it is
 | 
						|
copied to a file in the debug report directory with the same name. Otherwise
 | 
						|
the file should already exist in this directory
 | 
						|
 | 
						|
\arg{description} only exists to be displayed to the user in the report summary
 | 
						|
shown by \helpref{wxDebugReportPreview}{wxdebugreportpreview}.
 | 
						|
 | 
						|
\wxheading{See also }
 | 
						|
 | 
						|
\helpref{GetDirectory()}{wxdebugreportgetdirectory},\\
 | 
						|
\helpref{AddText()}{wxdebugreportaddtext}
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::AddText}\label{wxdebugreportaddtext}
 | 
						|
 | 
						|
\func{bool}{AddText}{\param{const wxString\& }{filename}, \param{const wxString\& }{text}, \param{const wxString\& }{description}}
 | 
						|
 | 
						|
This is a convenient wrapper around \helpref{AddFile}{wxdebugreportaddfile}. It
 | 
						|
creates the file with the given \arg{name} and writes \arg{text} to it, then
 | 
						|
adds the file to the report. The \arg{filename} shouldn't contain the path.
 | 
						|
 | 
						|
Returns \true if file could be added successfully, \false if an IO error
 | 
						|
occurred.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::DoAddCustomContext}\label{wxdebugreportdoaddcustomcontext}
 | 
						|
 | 
						|
\func{void}{DoAddCustomContext}{\param{wxXmlNode * }{nodeRoot}}
 | 
						|
 | 
						|
This function may be overridden to add arbitrary custom context to the XML
 | 
						|
context file created by \helpref{AddContext}{wxdebugreportaddcontext}. By
 | 
						|
default, it does nothing.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::DoAddExceptionInfo}\label{wxdebugreportdoaddexceptioninfo}
 | 
						|
 | 
						|
\func{bool}{DoAddExceptionInfo}{\param{wxXmlNode* }{nodeContext}}
 | 
						|
 | 
						|
This function may be overridden to modify the contents of the exception tag in
 | 
						|
the XML context file.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::DoAddLoadedModules}\label{wxdebugreportdoaddloadedmodules}
 | 
						|
 | 
						|
\func{bool}{DoAddLoadedModules}{\param{wxXmlNode* }{nodeModules}}
 | 
						|
 | 
						|
This function may be overridden to modify the contents of the modules tag in
 | 
						|
the XML context file.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::DoAddSystemInfo}\label{wxdebugreportdoaddsysteminfo}
 | 
						|
 | 
						|
\func{bool}{DoAddSystemInfo}{\param{wxXmlNode* }{nodeSystemInfo}}
 | 
						|
 | 
						|
This function may be overridden to modify the contents of the system tag in
 | 
						|
the XML context file.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::GetDirectory}\label{wxdebugreportgetdirectory}
 | 
						|
 | 
						|
\constfunc{const wxString\&}{GetDirectory}{\void}
 | 
						|
 | 
						|
Returns the name of the temporary directory used for the files in this report.
 | 
						|
 | 
						|
This method should be used to construct the full name of the files which you
 | 
						|
wish to add to the report using \helpref{AddFile}{wxdebugreportaddfile}.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::GetFile}\label{wxdebugreportgetfile}
 | 
						|
 | 
						|
\constfunc{bool}{GetFile}{\param{size\_t }{n}, \param{wxString* }{name}, \param{wxString* }{desc}}
 | 
						|
 | 
						|
Retrieves the name (relative to 
 | 
						|
\helpref{GetDirectory()}{wxdebugreportgetdirectory}) and the description of the
 | 
						|
file with the given index. If \arg{n} is greater than or equal to the number of
 | 
						|
filse, \false is returned.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::GetFilesCount}\label{wxdebugreportgetfilescount}
 | 
						|
 | 
						|
\constfunc{size\_t}{GetFilesCount}{\void}
 | 
						|
 | 
						|
Gets the current number files in this report.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::GetReportName}\label{wxdebugreportgetreportname}
 | 
						|
 | 
						|
\constfunc{wxString}{GetReportName}{\void}
 | 
						|
 | 
						|
Gets the name used as a base name for various files, by default 
 | 
						|
\helpref{wxApp::GetAppName()}{wxappgetappname} is used.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::IsOk}\label{wxdebugreportisok}
 | 
						|
 | 
						|
\constfunc{bool}{IsOk}{\void}
 | 
						|
 | 
						|
Returns \true if the object was successfully initialized. If this method returns 
 | 
						|
\false the report can't be used.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::Process}\label{wxdebugreportprocess}
 | 
						|
 | 
						|
\func{bool}{Process}{\void}
 | 
						|
 | 
						|
Processes this report: the base class simply notifies the user that the
 | 
						|
report has been generated. This is usually not enough -- instead you
 | 
						|
should override this method to do something more useful to you.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::RemoveFile}\label{wxdebugreportremovefile}
 | 
						|
 | 
						|
\func{void}{RemoveFile}{\param{const wxString\& }{name}}
 | 
						|
 | 
						|
Removes the file from report: this is used by 
 | 
						|
\helpref{wxDebugReportPreview}{wxdebugreportpreview} to allow the user to
 | 
						|
remove files potentially containing private information from the report.
 | 
						|
 | 
						|
 | 
						|
\membersection{wxDebugReport::Reset}\label{wxdebugreportreset}
 | 
						|
 | 
						|
\func{void}{Reset}{\void}
 | 
						|
 | 
						|
Resets the directory name we use. The object can't be used any more after
 | 
						|
this as it becomes uninitialized and invalid.
 | 
						|
 |