10087c501c6356fb083c0ea12d87263aca7abf25anjn
2d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--------------------------------------------------------------------*/
3d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--- ErrorMgr: management of errors and suppressions.             ---*/
4d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*---                                          pub_core_errormgr.h ---*/
5d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--------------------------------------------------------------------*/
6d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
7d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*
8d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   This file is part of Valgrind, a dynamic binary instrumentation
9d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   framework.
10d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
11b3a1e4bffbdbbf38304f216af405009868f43628sewardj   Copyright (C) 2000-2015 Julian Seward
12d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn      jseward@acm.org
13d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
14d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   This program is free software; you can redistribute it and/or
15d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   modify it under the terms of the GNU General Public License as
16d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   published by the Free Software Foundation; either version 2 of the
17d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   License, or (at your option) any later version.
18d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
19d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   This program is distributed in the hope that it will be useful, but
20d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   WITHOUT ANY WARRANTY; without even the implied warranty of
21d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
22d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   General Public License for more details.
23d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
24d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   You should have received a copy of the GNU General Public License
25d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   along with this program; if not, write to the Free Software
26d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
27d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   02111-1307, USA.
28d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
29d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   The GNU General Public License is contained in the file COPYING.
30d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn*/
31d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
32d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn#ifndef __PUB_CORE_ERRORMGR_H
33d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn#define __PUB_CORE_ERRORMGR_H
34d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
35d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn//--------------------------------------------------------------------
36d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn// PURPOSE: This module manages errors recording and printing,
37d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn// which includes suppression reading and writing.
38d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn//--------------------------------------------------------------------
39d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
40d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn#include "pub_tool_errormgr.h"
41d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
42d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn// These must be negative, so as to not overlap with tool error kinds.
43d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njntypedef
44d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   enum {
45a86f29edc3d1daaf084736744a4a88c3c970e3f7njn      // Nb: thread errors are a relic of the time when Valgrind's core
46a86f29edc3d1daaf084736744a4a88c3c970e3f7njn      // could detect them.  This example is left as an example should new
47a86f29edc3d1daaf084736744a4a88c3c970e3f7njn      // core errors ever be added.
48a86f29edc3d1daaf084736744a4a88c3c970e3f7njn      ThreadErr = -1,
49d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   }
50d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn   CoreErrorKind;
51d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
529f297ca50245f24b23fada944e2f5268d313eb96sewardjextern void VG_(load_suppressions)        ( void );
53d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
543b290486cd4cd601b20e04340e593c9ed9717e5fsewardj// if verbosity == 0,           print nothing.
553b290486cd4cd601b20e04340e593c9ed9717e5fsewardj// else if xml                  print suppressions used (in xml format)
563b290486cd4cd601b20e04340e593c9ed9717e5fsewardj// else if verbosity == 1       print Error summary
573b290486cd4cd601b20e04340e593c9ed9717e5fsewardj// else                         print all errors and suppressions used.
583b290486cd4cd601b20e04340e593c9ed9717e5fsewardjextern void VG_(show_all_errors)          ( Int verbosity, Bool xml );
593b290486cd4cd601b20e04340e593c9ed9717e5fsewardj
60ad4e979f408239dabbaae955d8ffcb84a51a5c85florian/* Print (in readable format) the last error that occurred. */
613b290486cd4cd601b20e04340e593c9ed9717e5fsewardjextern void VG_(show_last_error)          ( void );
62d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
639f297ca50245f24b23fada944e2f5268d313eb96sewardjextern void VG_(show_error_counts_as_XML) ( void );
64d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
652b8059ad8e01f0928e8767ae25b9103c4ef15f18florianextern Bool VG_(is_action_requested)      ( const HChar* action, Bool* clo );
669f297ca50245f24b23fada944e2f5268d313eb96sewardj
670087c501c6356fb083c0ea12d87263aca7abf25anjnextern Bool VG_(showing_core_errors)      ( void );
680087c501c6356fb083c0ea12d87263aca7abf25anjn
699f297ca50245f24b23fada944e2f5268d313eb96sewardjextern UInt VG_(get_n_errs_found)         ( void );
70baf69645a5d270e6662d05d74e537e9ba970f34cphilippeextern UInt VG_(get_n_errs_shown)         ( void );
71d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
7242081da641afd49d92f5beb45925ac59a6c851basewardjextern void VG_(print_errormgr_stats)     ( void );
7342081da641afd49d92f5beb45925ac59a6c851basewardj
74d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn#endif   // __PUB_CORE_ERRORMGR_H
75d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn
76d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--------------------------------------------------------------------*/
77d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--- end                                                          ---*/
78d2b1711bd846d1eb4dcb7b05a44a2bfbb49a5992njn/*--------------------------------------------------------------------*/
79