mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 06:45:56 +08:00
Change maybe_disable_address_space_randomization to a class
This changes maybe_disable_address_space_randomization to be an RAII class, rather than having it return a cleanup. Regression tested by the buildbot. ChangeLog 2017-11-26 Tom Tromey <tom@tromey.com> * nat/linux-personality.h (class maybe_disable_address_space_randomization): New class. (maybe_disable_address_space_randomization): Don't declare function. * nat/linux-personality.c (restore_personality) (make_disable_asr_cleanup): Remove. (maybe_disable_address_space_randomization): Now a constructor. (~maybe_disable_address_space_randomization): New destructor. * linux-nat.c (linux_nat_create_inferior): Update. gdbserver/ChangeLog 2017-11-26 Tom Tromey <tom@tromey.com> * linux-low.c (linux_create_inferior): Update.
This commit is contained in:
@ -20,12 +20,27 @@
|
||||
#ifndef NAT_LINUX_PERSONALITY_H
|
||||
#define NAT_LINUX_PERSONALITY_H
|
||||
|
||||
/* Disable the inferior's address space randomization if
|
||||
DISABLE_RANDOMIZATION is not zero and if we have
|
||||
<sys/personality.h>. Return a cleanup which, when called, will
|
||||
re-enable the inferior's address space randomization. */
|
||||
class maybe_disable_address_space_randomization
|
||||
{
|
||||
public:
|
||||
|
||||
extern struct cleanup *maybe_disable_address_space_randomization
|
||||
(int disable_randomization);
|
||||
/* Disable the inferior's address space randomization if
|
||||
DISABLE_RANDOMIZATION is not zero and if we have
|
||||
<sys/personality.h>. */
|
||||
maybe_disable_address_space_randomization (int disable_randomization);
|
||||
|
||||
/* On destruction, re-enable address space randomization. */
|
||||
~maybe_disable_address_space_randomization ();
|
||||
|
||||
DISABLE_COPY_AND_ASSIGN (maybe_disable_address_space_randomization);
|
||||
|
||||
private:
|
||||
|
||||
/* True if the personality was set in the constructor. */
|
||||
bool m_personality_set;
|
||||
|
||||
/* If m_personality_set is true, the original personality value. */
|
||||
int m_personality_orig;
|
||||
};
|
||||
|
||||
#endif /* ! NAT_LINUX_PERSONALITY_H */
|
||||
|
Reference in New Issue
Block a user