gpt4 book ai didi

linux - GDB 附加到可执行文件被删除的进程

转载 作者:IT王子 更新时间:2023-10-29 01:12:18 34 4
gpt4 key购买 nike

我有正在运行的进程,但它的可执行文件已被删除。如果我尝试附加 gdb,我会收到以下错误

/home/vivek/binary/releases/20120328101511/bin/app.exe (deleted): No such file or directory.

如何将 gdb 附加到此进程?

示例测试用例:源代码:

#include<stdio.h>
#include<stdlib.h>
int main(){
for (;;){
printf("Sleeping");
sleep(1);
}
}

编译它

 gcc main.cc -o a.out
gcc main.cc -o b.out

运行./a.out

现在从不同的终端删除a.out。然后启动 gdb 附加 pgrep a.out 文件 b.out它不起作用。

GDB 显示以下错误:

/tmp/temp/a.out (deleted): No such file or directory.
A program is being debugged already. Kill it? (y or n) n
Program not killed.

最佳答案

尝试使用 /proc/<pid>/exe作为可执行文件。现在它显示为一个符号链接(symbolic link),但在过去可以从中提取已删除的可执行文件。

参见 Detecting deleted executables .

我们可以使用下面的命令来附加gdb

gdb <path-to-binary> <pid>

关于linux - GDB 附加到可执行文件被删除的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9974254/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com