使用gdb同时执行工作代码和错误代码

使用gdb同时执行工作代码和错误代码,gdb,Gdb,我有一个有bug的C代码,还有一个旧版本没有显示bug。现在,我想同时使用两个gdb会话,并排使用,逐步完成代码。我正在寻找一种方法来做到这一点,而不必在每个gdb会话中键入,比如,n。换句话说,我正在寻找一种方法来链接会话,当我在一个会话中按下gdb命令时,它将传播到另一个会话。那能做到吗 谢谢。您可以在tmux/screen中打开两个窗格来完成此操作。请参阅此链接和“同步”窗格部分。对于tmux: ctrl-b :set-window-option synchronize-panes on|

我有一个有bug的C代码,还有一个旧版本没有显示bug。现在,我想同时使用两个gdb会话,并排使用,逐步完成代码。我正在寻找一种方法来做到这一点,而不必在每个gdb会话中键入,比如,
n
。换句话说,我正在寻找一种方法来链接会话,当我在一个会话中按下gdb命令时,它将传播到另一个会话。那能做到吗


谢谢。

您可以在tmux/screen中打开两个窗格来完成此操作。请参阅此链接和“同步”窗格部分。对于tmux:

ctrl-b :set-window-option synchronize-panes on|off 

您可以在tmux/screen中打开两个窗格来完成此操作。请参阅此链接和“同步”窗格部分。对于tmux:

ctrl-b :set-window-option synchronize-panes on|off 

应该做到这一点

我想您可以使用(未测试)在单个gdb会话中做到这一点

首先,您可以创建两个下级,一个用于新的buggy版本,另一个用于旧版本。然后,您需要为
next
命令定义如下内容:

define hookpost-next
inferior 2
next
inferior 1
end

我想您可以使用(未经测试)在单个gdb会话中完成它

首先,您可以创建两个下级,一个用于新的buggy版本,另一个用于旧版本。然后,您需要为
next
命令定义如下内容:

define hookpost-next
inferior 2
next
inferior 1
end

我认为这种方法不存在。一般来说,差异可能很大,编译器可能生成了完全不同的代码。您可能希望查看类似于
git-bisect
的内容,或者版本控制系统的类似内容来帮助跟踪它down@Flexo,谢谢你的评论。它不一定是完美的或是一个普遍的解决方案。答案中的任何一个解决了你的问题吗?我认为这样的方法不存在。一般来说,差异可能很大,编译器可能生成了完全不同的代码。您可能希望查看类似于
git-bisect
的内容,或者版本控制系统的类似内容来帮助跟踪它down@Flexo,谢谢你的评论。它不一定是完美的,也不一定是一般的解决方案。答案中的任何一个解决了你的问题吗?我来试一试。谢谢,我来试一试。Thank.fwiw这里有一个使用python执行类似操作的示例:fwiw这里有一个使用python执行类似操作的示例: