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