是否可以边执行边调试程序?
Is it possible to debug program while being executed?
场景:
我执行了一个程序(监控软件),它需要很长时间才能完成(现在将近 30 分钟)。我知道,根据经验,它不应该花那么长时间,所以我试图找到一种方法,如果有的话,看看它发生了什么。
我试过的:
到目前为止,我唯一能做的就是
ps auxww | grep myprogram
所以我知道它在工作,并且
tail -f myprogram.log
所以我可以查看日志中是否有内容。到目前为止,只有一些小警告,它们无论如何都不会中断主程序。
问题:
那么,有没有什么办法可以在不重新启动程序的情况下,debug
它以任何方式?
GNU 调试器gdb 接受选项 -p 以附加到正在运行的程序。你当然必须知道你的进程的 PID:
gdb -p PID
场景:
我执行了一个程序(监控软件),它需要很长时间才能完成(现在将近 30 分钟)。我知道,根据经验,它不应该花那么长时间,所以我试图找到一种方法,如果有的话,看看它发生了什么。
我试过的:
到目前为止,我唯一能做的就是
ps auxww | grep myprogram
所以我知道它在工作,并且
tail -f myprogram.log
所以我可以查看日志中是否有内容。到目前为止,只有一些小警告,它们无论如何都不会中断主程序。
问题:
那么,有没有什么办法可以在不重新启动程序的情况下,debug
它以任何方式?
GNU 调试器gdb 接受选项 -p 以附加到正在运行的程序。你当然必须知道你的进程的 PID:
gdb -p PID