繁体   English   中英

如何在gdb中运行二进制文件时对其进行修改

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM