如何在gdb中从汇编代码切换到c代码

how to switch from assembly code to c code in gdb

我正在尝试使用

调试我的 C 程序
gcc -g -lm -lpthread -std=c99 -w terminalproject.c

然后

gdb a.out

但是当我打字的时候 layout next,它显示的是汇编代码而不是 C 代码。

如何在布局中切换到C代码?

编辑:我正在使用 Red Hat Linux 6,我试图在 Ubuntu 中 运行 它,它正在显示 C 代码。

p.s 我的代码中有 pthreads。

这个命令:

gcc -g -lm -lpthread -std=c99 -w terminalproject.c

错误的。改用这个:

gcc -g -std=c99 -pthread terminalproject.c -lm

你应该永远不要使用-w(抑制所有警告)标志,除非你想要痛苦的调试会话。


layout src says No source Available.

这可能意味着您使用的是更新的 GCC,而不是旧版 GDB。尝试从源代码构建最新的 GDB 版本——这通常并不难。