Hi Jeff, Thanks for your help, finally I found this in kernel document. Pointer Types ============= Pointers printed without a specifier extension (i.e unadorned %p) are hashed to give a unique identifier without leaking kernel addresses to user space. On 64 bit machines the first 32 bits are zeroed. If you _really_ want the address see %px below. ⁣Get BlueMail for Android ​ On Jan 13, 2022, 23:44, at 23:44, Jeffrey Walton wrote: >On Thu, Jan 13, 2022 at 4:04 PM admin LI wrote: >> >> I'm developing a kernel module for an ARM machine, while debugging I >found addresses >> printed are all randomized and useless for debugging. >> >> To prove I was not crazy I wrote this small program: >> >> --------------------------------- >> #include >> #include >> #include >> #include >> >> MODULE_LICENSE("GPL"); >> MODULE_AUTHOR("Somebody"); >> MODULE_DESCRIPTION("A simple example Linux module."); >> MODULE_VERSION("0.01"); >> >> static int __init example_init(void) { >> uint32_t a; >> uint32_t b; >> uint32_t c; >> uint8_t d[10]; >> uint8_t *e; >> >> printk(KERN_INFO "Hello, World!\n"); >> printk(KERN_INFO "&a %p\n",&a); >> printk(KERN_INFO "&b %p\n",&b); >> printk(KERN_INFO "&c %p\n",&c); >> printk(KERN_INFO "&d %p\n",d); >> printk(KERN_INFO "&d[0] %p\n",&d[0]); >> printk(KERN_INFO "&d[1] %p\n",&d[1]); >> >> e = kmalloc(10, GFP_KERNEL); >> printk(KERN_INFO "&e[0] %p\n",&e[0]); >> printk(KERN_INFO "&e[1] %p\n",&e[1]); >> >> kfree(e); >> >> return 0; >> } >> >> static void __exit example_exit(void) { >> printk(KERN_INFO "Goodbye, World!\n"); >> } >> >> module_init(example_init); >> module_exit(example_exit); >> --------------------------------- >> And it gave me this output: >> >> Hello, World! >> &a b3f9fa31 >> &b 27e1c68a >> &c da50d287 >> &d 9f9aec2b >> &d[0] 9f9aec2b >> &d[1] cc627580 >> &e[0] 98b8c9eb >> &e[1] 45f248f8 >> >> Then I tested on my debian host machine which gave me the same kind >of randomized addresses. >> >> When I search randomization the only thing I found is KASLR which I >don't think is the same thing. > >I think something else may be going on, but I'll toss this out there >in case it helps. > >In the past randomization was disabled by writing 0 to >/proc/sys/kernel/randomize_va_space. Something like: > > sysctl -w kernel.randomize_va_space=0 > >To make it permanent, change it in /etc/sysctl.conf. > >Jeff