我正在使用两个 Linux 虚拟机在 Mac (VMWare Fusion) 上调试 Linux 内核。
我已经安装了 kernel-debuginfo-3.10.0-327.36.3.el7.x86_64
并且 debugStub 可以正常工作。
然后我在 fchown
系统调用上添加了一个断点,它中断了,
Breakpoint 10, SYSC_fchown (group=0, user=0, fd=<optimized out>) at fs/open.c:650
但是我无法读取fd.file
,这个值被优化掉了,
有什么想法吗?
最佳答案
But I can't read fd.file, the value is optimized out
调试优化代码时经常会发生这种情况。
您最好的选择可能是反汇编
例程。对于像这样的小例程,通常不难判断值在哪个寄存器中,然后就可以转换为正确的类型。例如。如果值在 $r9
中:
(gdb) p *(struct file *)$r9
关于linux - 调试linux内核时如何避免 "optimized out",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45645515/