Home | History | Annotate | Line # | Download | only in nat
linux-personality.h revision 1.1.1.6
      1      1.1  christos /* Disable address space randomization based on inferior personality.
      2      1.1  christos 
      3  1.1.1.6  christos    Copyright (C) 2008-2023 Free Software Foundation, Inc.
      4      1.1  christos 
      5      1.1  christos    This file is part of GDB.
      6      1.1  christos 
      7      1.1  christos    This program is free software; you can redistribute it and/or modify
      8      1.1  christos    it under the terms of the GNU General Public License as published by
      9      1.1  christos    the Free Software Foundation; either version 3 of the License, or
     10      1.1  christos    (at your option) any later version.
     11      1.1  christos 
     12      1.1  christos    This program is distributed in the hope that it will be useful,
     13      1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14      1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15      1.1  christos    GNU General Public License for more details.
     16      1.1  christos 
     17      1.1  christos    You should have received a copy of the GNU General Public License
     18      1.1  christos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     19      1.1  christos 
     20      1.1  christos #ifndef NAT_LINUX_PERSONALITY_H
     21      1.1  christos #define NAT_LINUX_PERSONALITY_H
     22      1.1  christos 
     23  1.1.1.4  christos class maybe_disable_address_space_randomization
     24  1.1.1.4  christos {
     25  1.1.1.4  christos public:
     26      1.1  christos 
     27  1.1.1.4  christos   /* Disable the inferior's address space randomization if
     28  1.1.1.4  christos      DISABLE_RANDOMIZATION is not zero and if we have
     29  1.1.1.4  christos      <sys/personality.h>. */
     30  1.1.1.4  christos   maybe_disable_address_space_randomization (int disable_randomization);
     31  1.1.1.4  christos 
     32  1.1.1.4  christos   /* On destruction, re-enable address space randomization.  */
     33  1.1.1.4  christos   ~maybe_disable_address_space_randomization ();
     34  1.1.1.4  christos 
     35  1.1.1.4  christos   DISABLE_COPY_AND_ASSIGN (maybe_disable_address_space_randomization);
     36  1.1.1.4  christos 
     37  1.1.1.4  christos private:
     38  1.1.1.4  christos 
     39  1.1.1.4  christos   /* True if the personality was set in the constructor.  */
     40  1.1.1.4  christos   bool m_personality_set;
     41  1.1.1.4  christos 
     42  1.1.1.4  christos   /* If m_personality_set is true, the original personality value.  */
     43  1.1.1.4  christos   int m_personality_orig;
     44  1.1.1.4  christos };
     45      1.1  christos 
     46      1.1  christos #endif /* ! NAT_LINUX_PERSONALITY_H */
     47