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