I'm working on an unusual problem on a BeagleBone Black. The unusual part is stepping under the debug causes a SIGILL that was not formerly present.Addresses are moving around between runs due to PIC and PIE. I want to force LD to perform a deterministic load. The idea is to do something like:LD_BASE_ADDRESS=0x1000 ./test.exeOr maybe:LD_ADDRESS_SEED=0x0000 ./test.exeAnd then get reproducible results like when a random number generator is seeded with the same seed.I checked the ld.so(8) man page, but I don't see the option. LD_USE_LOAD_BIAS looks close but its not clear to me if it provides the deterministic behavior.How do I tell LD to deterministically load the programs and all its shared objects?
LD option for deterministic loading of program and shared objects?
linux;arm;ld
This isnt controlled by the linker, its controlled by the kernel. You can disable ASLR using randomize_va_space:echo 0 | sudo tee /proc/sys/kernel/randomize_va_spaceTo re-enable it:echo 2 | sudo tee /proc/sys/kernel/randomize_va_spaceYou can also disable it for a single process using setarch to apply the appropriate personality:setarch $(uname -m) -R commandwill run command without ASLR.