mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-08 00:16:11 +00:00
67 lines
2.9 KiB
C
67 lines
2.9 KiB
C
|
|
/*---------------------------------------------------------------------*/
|
|
/*--- Address Description, used e.g. to describe addresses involved ---*/
|
|
/*--- in race conditions, locks. ---*/
|
|
/*--- hg_addrdescr.h ---*/
|
|
/*---------------------------------------------------------------------*/
|
|
|
|
/*
|
|
This file is part of Helgrind, a Valgrind tool for detecting errors
|
|
in threaded programs.
|
|
|
|
Copyright (C) 2007-2015 OpenWorks Ltd
|
|
info@open-works.co.uk
|
|
|
|
This program is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License as
|
|
published by the Free Software Foundation; either version 2 of the
|
|
License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful, but
|
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
|
02111-1307, USA.
|
|
|
|
The GNU General Public License is contained in the file COPYING.
|
|
*/
|
|
|
|
#ifndef __HG_ADDRDESCR_H
|
|
#define __HG_ADDRDESCR_H
|
|
|
|
/* Describe an address as best you can, for error messages or
|
|
lock description, putting the result in ai.
|
|
This might allocate some memory in ai, to be cleared with
|
|
VG_(clear_addrinfo). */
|
|
extern void HG_(describe_addr) ( Addr a, /*OUT*/AddrInfo* ai );
|
|
|
|
/* Get a readable description of addr, then print it using HG_(pp_addrdescr)
|
|
using xml False and VG_(printf) to emit the characters.
|
|
Returns True if a description was found/printed, False otherwise. */
|
|
extern Bool HG_(get_and_pp_addrdescr) (Addr a);
|
|
|
|
/* For error creation/address description:
|
|
map 'data_addr' to a malloc'd chunk, if any.
|
|
Slow linear search accelerated in some special cases normal hash
|
|
search of the mallocmeta table. This is an abuse of the normal file
|
|
structure since this is exported by hg_main.c, not hg_addrdesc.c. Oh
|
|
Well. Returns True if found, False if not. Zero-sized blocks are
|
|
considered to contain the searched-for address if they equal that
|
|
address. */
|
|
Bool HG_(mm_find_containing_block)( /*OUT*/ExeContext** where,
|
|
/*OUT*/UInt* tnr,
|
|
/*OUT*/Addr* payload,
|
|
/*OUT*/SizeT* szB,
|
|
Addr data_addr );
|
|
|
|
|
|
#endif /* ! __HG_ADDRDESCR_H */
|
|
|
|
/*--------------------------------------------------------------------*/
|
|
/*--- end hg_addrdescr.h ---*/
|
|
/*--------------------------------------------------------------------*/
|