Sujet : Re: C23 thoughts and opinions
De : already5chosen (at) *nospam* yahoo.com (Michael S)
Groupes : comp.lang.cDate : 06. Jun 2024, 12:43:25
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240606144325.000069e2@yahoo.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
User-Agent : Claws Mail 3.19.1 (GTK+ 2.24.33; x86_64-w64-mingw32)
On Sun, 2 Jun 2024 01:11:35 +0300
Michael S <
already5chosen@yahoo.com> wrote:
On Fri, 31 May 2024 22:15:54 +0100
bart <bc@freeuk.com> wrote:
If I run this:
printf("%p\n", &_binary_hello_c_start);
printf("%p\n", &_binary_hello_c_end);
printf("%p\n", &_binary_hello_c_size);
I get:
00007ff6ef252010
00007ff6ef252056
00007ff5af240046
I can see that the first two can be subtracted to give the sizes of
the data, which is 70 or 0x46. 0x46 is the last byte of the address
of _size, so what's happening there? What's with the crap in bits
16-47?
It looks like ASLR. I don't see it because I test on Win7.
I tried it on versions of Windows that have ASLR. Had seen no problems.
I see *_start and *_end at high addresses and sometimes changing
between invocations, which means that ASLR is certainly in effect, but
*_size always prints correct result.