重定向正在运行进程的stderr
💡
原文英文,约300词,阅读约需2分钟。
📝
内容提要
在柏林的KDE冲刺活动中,Roman Gilg介绍了如何将正在运行的进程的stderr重定向到文件。通过使用gdb调试器,可以附加到运行中的进程并执行相关代码,具体步骤包括附加gdb到进程并运行编译代码以重定向stderr。此方法简单有效,gdb还可用于其他操作。
🎯
关键要点
- 在柏林的KDE冲刺活动中,Roman Gilg介绍了如何将正在运行的进程的stderr重定向到文件。
- 使用gdb调试器可以附加到运行中的进程并执行相关代码。
- 具体步骤包括附加gdb到进程并运行编译代码以重定向stderr。
- 使用open创建要重定向到的文件,并通过dup2覆盖stderr。
- gdb还可以用于其他操作,例如关闭进程的文件描述符。
❓
延伸问答
如何将正在运行的进程的stderr重定向到文件?
可以使用gdb调试器附加到运行中的进程,并运行编译代码来重定向stderr。
gdb调试器的哪些功能可以帮助重定向stderr?
gdb可以附加到运行中的进程并在目标进程空间中执行任意代码。
在重定向stderr时,使用的文件描述符是什么?
stderr的文件描述符始终是2。
重定向stderr的具体代码是什么?
代码是:dup2(open("/tmp/log", 65), 2),其中65是O_CREAT | O_WRONLY的值。
使用gdb重定向stderr后,如何继续进程?
关闭gdb(按control+d)将继续进程,进程会开始写入到创建的文件中。
gdb还可以用于哪些其他操作?
gdb可以用于关闭进程的文件描述符等其他操作。
➡️