This continues to smell like heap corruption.How are you setting the heap boundaries? And to what values?More random thoughts:[] 256MB should be plenty of heap (unless there's been a lot more allocation that is shown)[] What other code is running before the first printf? Any special startup code or just the standard library startup?[] Are the values printed for Next_Ptr_Glob and Ptr_Glob reasonable? (that is, within you heap and not within your globals or stack) It's good that they are multiples of 8.[] stdout is probably line buffered so flsbuf will be called every "\n" (and every buffer, maybe 512 characters) which explains a bit why changing the format strings changes the timing of the wild access.[] the first printf (or puts, etc.) will cause a buffer for stdout to be created (via malloc)[] if the "%x"s that you changed to "%d"s are the only "%x"s then the main effect will be that image code gets smaller (possibly affecting the globals and heap base) because the formatting code for %x can be removed. Also, of course the contents of the buffer are different after the printf.It's hard to say if tracking down the problem will ultimately be worthwhile, but if I was in your position I'm the sort of person that tends to get obsessed by this sort of thing until I understand it. Changing stdout to unbuffered might possibly avoid the problem (like mapping in the low memory) but it might just come back in some worse way.