我不小心删除了nodejs应用程序的源代码,但是这个应用程序正在运行,那么如何才能从运行的应用程序中获取源代码?
我希望源代码已缓存在某个目录中。
答案 0 :(得分:3)
我能够通过附加调试器来恢复整个文件。 首次使用
setBreakpoint('app.js', 10)
其中10行是您知道的代码行,将在运行过程中再次运行
然后我说pause
,然后说next
,直到它说它已暂停在要恢复的脚本上。
最后,说list(5000)
,其中5000是要列出的任意长行。
您现在将拥有完整的脚本,尽管前面有行号,但是您可以使用site like this删除它们。
希望这对以后遇到此独特问题的所有人有所帮助,因为这花了我几个小时才能弄清。
答案 1 :(得分:1)
有一种方法可以使用Nodejs调试器检索一些源代码。
假设Linux操作系统,您需要获取应用程序的进程ID:
$ ps -e | grep node
接下来,您将在调试模式下输入您的应用程序:
$ kill -s USR1 PID
其中PID是节点应用的pid。
然后启动调试控制台:
$ node debug -p PID
如果您有应用控制台,则会看到:
Starting debugger agent.
Debugger listening on port 5858
在调试控制台中,您应该看到一个调试提示,您可以使用以下命令获取命令:
debug> help
我可以使用 list 命令显示一些正在运行的应用程序源:
debug> list(NUMBER_OF_LINE)
其中NUMBER_OF_LINE是您要显示的源代码行数。
我不确定这是否是一次尝试,因为我的源代码未被删除。
希望你能得到一些结果。