gdb 不同位置,函数调用参数显示差异

gdb 不同位置,函数调用参数显示差异,如:


copy_strings (argc=1, argv=0xffcf08, page=0xffce6c, p=131068, from_kmem=2) at exec.c:230
230    {
(gdb) n
235        if (!p)
(gdb) n
328        __asm__("mov %%ds,%w0":"=r" (_v):"0" (0));
(gdb) n
321        __asm__("mov %%fs,%w0":"=r" (_v):"0" (0));
(gdb) n
239        if (from_kmem==2)
(gdb) n
copy_strings (argc=1, argv=0x4, page=0xffcd88, p=16764356, from_kmem=64) at /root/oldlinux/src/linux/include/asm/segment.h:334
334        __asm__ __volatile__("mov %w0,%%fs": /* no output */ :"r" (val));
(gdb)

230行与334行看到copy_strings不一样,此时,不可想信from_kmem值发生变化,可能是gdb的显示值不准,有bug?

原文地址:https://www.cnblogs.com/mull/p/8041706.html