printk() format %pS wrong symbol

William Tambe tambewilliam at gmail.com
Sat Jul 4 06:11:19 EDT 2020


I am seeing an issue in our Linux port where printk() format %pS will print
a symbol as:
kernel_init+0x120/0x120
where the offset within the function 0x120, is the same as the function
size 0x120; in fact, the largest offset within the function should be 0x11f.

When printing above symbol+offset in gdb, the correct symbol is
displayed as follow:

(gdb) p (void*)(kernel_init+0x120)
$1 = (void *) 0x589a28 <ret_for_syscall>

What could be the cause of printk() format %pS printing an incorrect symbol.

Where can I find in the Linux source code, the function handling the format
%pS ?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20200704/f349c67c/attachment-0001.html>


More information about the Kernelnewbies mailing list