GDB在内核中输出错误的参数值

时间:2014-07-25 08:25:39

标签: c linux debugging gdb kernel

我正在用gdb调试Linux内核,断点工作正常。

但是当gdb中断时,传入的参数值不正确。

Breakpoint 4, XXX (a=0xb008, b=1, c=1, d=0x0, e=0) at XX.c:YY

是的,所有这些价值都是错误的。我在XXX内核函数中添加了一些printk,并确认它是错误的。 (这不是数据格式问题)

我测试了gcc-4.6 and gcc-4.9相同的结果。我也没有修改CFLAGS_KERNEL

也许是gdb问题?我正在使用版本7.7.1

P.S我也试过多个内核源代码,3.12.8,3.4.0 2.6.32等没有变化。

1 个答案:

答案 0 :(得分:0)

这里没有足够的信息来了解问题所在。它可能是一个gdb问题,但从描述中我会说它更可能是调试信息问题。但是没有简单的方法可以告诉我们,必须深入研究调试信息,编译器发出的程序集以及gdb源代码,以便确定bug的位置。