有没有办法使用 GDB 在代码中的每一行设置断点?显然我不想击中b *addr
每一行,所以我想知道是否有一种快速的方法来做到这一点。
编辑 请注意,我正在运行由其他人创建的二进制文件,并且我无权访问源代码。不幸的是,该二进制文件没有使用 -g 标志编译。因此,我不能只单步执行代码中的每一行。
进一步编辑
正如 Jason 在下面指出的那样,只要您使用si
or ni
,您确实可以单步执行代码,而不仅仅是简单地s
(step) 或n
(next)。n
但是,如果源代码是使用 -g 编译的,或者s
工作正常,但它会逐步执行源代码行,而不是像在没有 -g 的情况下编译的二进制文件中那样逐步执行每个汇编指令ni
或si
do。