Я только что написал процесс скребка. Это отдельная файловая программа - загружает ActiveRecord, создает пару моделей, определяет пару функций скремблирования и затем запускается в цикле.Как я могу сбросить код (а не объекты/стек) работающего Ruby-процесса?
К сожалению, я испортил команду git, и теперь сам файл пропал.
Однако, у do есть один экземпляр скребка, который в настоящее время работает. Я отправил SIGSTOP для предотвращения возможных ошибок.
Как я могу подключиться к процессу и заставить его сбрасывать код, чтобы я мог скопировать его обратно в файл .rb?
Меня не интересует его трассировка стека или другие случайные объекты в ОЗУ; это совершенно неважно, поскольку оно написано как убийственное в любое время без потерь. Я просто не хочу переписывать эту проклятую вещь.
https://github.com/ileitch/hijack похоже, что это позволит мне приложить отладчик к запущенному процессу, что является хорошим первым шагом. Но предположим, что я это сделаю, и что?
FWIW, мне удалось восстановить ~ 60 строк, используя puts Readline::HISTORY.to_a.reverse.uniq.reverse
с консоли irb, в которой я играл с кодом. Но я предпочел бы все остальное, если смогу.
Спасибо!
ETA: https://github.com/ngty/sourcify - другой возможный link здесь.
ETA2: ... phew, dropbox поймал его. Должно было подумать, чтобы это проверить раньше. > <
Итак, уже не критический, но все же любопытный, если это можно сделать.
Там не много вы можете сделать в мерзавца, который не является невыполнимым. Какая гит-команда вызвала катастрофу? –
'git clean -f' :( – Sai
Да, это будет сделано. –