![](/img/trans.png)
[英]How to set breakproint by GDB while running GUI of cpp applicaion
[英]How to modify a binary while it is running in gdb
编辑:实际的问题是与更新二进制文件的方法有关,而不是由于gdb的问题。 有关详细信息,请参见下面的答案。
原始问题:
最近,gdb在运行程序并在断点处停止时,我无法再编译程序。 尝试再次写入二进制文件将导致“文本文件繁忙”错误。
这是在Ubuntu 16.04 LTS 64位,内核4.4.0-75上。
我认为我没有在寻找正确的东西,因为对“ gdb文本文件繁忙”或类似内容的一些搜索不会产生任何结果。 gdb手册特别提到了此行为(运行gdb时再次编译),实际上,我以前已经做了很多次。
希望对任何更改以及如何防止发生更改有任何指示。
一些进一步的搜索显示了这篇很棒的帖子https://unix.stackexchange.com/a/188041/10847 ,它说明了更新二进制文件的方法在这里很重要。 在这种情况下,构建系统将使用cp ab
复制二进制文件,这将失败。 cp -fab
将删除b,然后用a覆盖,从而允许gdb在将新二进制文件写入磁盘时继续调试旧二进制文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.