Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:13:30

0001 
0002 /*--------------------------------------------------------------------*/
0003 /*--- Misc client state info                pub_tool_clientstate.h ---*/
0004 /*--------------------------------------------------------------------*/
0005 
0006 /*
0007    This file is part of Valgrind, a dynamic binary instrumentation
0008    framework.
0009 
0010    Copyright (C) 2000-2017 Julian Seward
0011       jseward@acm.org
0012 
0013    This program is free software; you can redistribute it and/or
0014    modify it under the terms of the GNU General Public License as
0015    published by the Free Software Foundation; either version 2 of the
0016    License, or (at your option) any later version.
0017 
0018    This program is distributed in the hope that it will be useful, but
0019    WITHOUT ANY WARRANTY; without even the implied warranty of
0020    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0021    General Public License for more details.
0022 
0023    You should have received a copy of the GNU General Public License
0024    along with this program; if not, see <http://www.gnu.org/licenses/>.
0025 
0026    The GNU General Public License is contained in the file COPYING.
0027 */
0028 
0029 #ifndef __PUB_TOOL_CLIENTSTATE_H
0030 #define __PUB_TOOL_CLIENTSTATE_H
0031 
0032 #include "pub_tool_basics.h"   // VG_ macro
0033 #include "pub_tool_xarray.h"   // XArray
0034 
0035 /* Note, this header requires pub_{core,tool}_xarray.h to be
0036    included ahead of it. */
0037 
0038 // Command line pieces, after they have been extracted from argv in
0039 // m_main.main().  These are all NULL-terminated vectors.
0040 
0041 /* Args for the client. */
0042 extern XArray* /* of HChar* */ VG_(args_for_client);
0043 
0044 /* Args for V.  This is the concatenation of the following:
0045    - contents of ~/.valgrindrc
0046    - contents of $VALGRIND_OPTS
0047    - contents of ./.valgrindrc
0048    - args from the command line
0049    in the stated order.
0050 
0051    Only the last of these is passed onwards to child Valgrinds at
0052    client sys_execve, since the children will re-acquire the first 3
0053    categories for themselves.  Therefore we also record the number of
0054    these no-pass-at-execve arguments -- that is what
0055    VG_(args_for_valgrind_noexecpass) is. */
0056 extern XArray* /* of HChar* */ VG_(args_for_valgrind);
0057 
0058 /* Number of leading args in VG_(args_for_valgrind) not to pass on at
0059    exec time. */
0060 extern Int VG_(args_for_valgrind_noexecpass);
0061 
0062 /* The name of the client executable, as specified on the command
0063    line. */
0064 extern const HChar* VG_(args_the_exename);
0065 
0066 
0067 #endif   // __PUB_TOOL_CLIENTSTATE_H
0068 
0069 /*--------------------------------------------------------------------*/
0070 /*--- end                                                          ---*/
0071 /*--------------------------------------------------------------------*/