如何告诉gdb显示装配线而不是源代码行?

时间:2016-11-20 22:11:54

标签: c linux debugging linux-kernel gdb

我正在调试Linux内核代码,而不是显示像

这样的源代码行
(gdb) 
5588    init_cgroup_root(&cgrp_dfl_root, &opts);

我希望看到像

这样的说明
(gdb)  
        call 0x23498722 <start_kernel>

如何告诉gdb这样做?

2 个答案:

答案 0 :(得分:3)

使用scala> object foo { val x: Boolean = true } defined object foo scala> implicit val x: Int = 23 x: Int = 23 scala> implicitly[Int] res0: Int = 23 scala> import foo._ import foo._ scala> implicitly[Int] <console>:17: error: could not find implicit value for parameter e: Int implicitly[Int] ^ 后跟代码行。如果您不知道该行,您可以在该函数中设置断点,当执行到达该函数时,它将为您提供地址。

编辑: 可能是您提出的更好的解决方案disassemble

然后在任何需要的地方设置断点并定期进行。 gdb将输出汇编指令而不是源代码

答案 1 :(得分:0)

在gdb cmdline中:

gdb&gt; si或gdb&gt; x / Ni地址(代码地址)

enter image description here