Zastanawiam się, czy miły ekspert elisp może to napisać gdb-pounce
fn, który zmusi emacsa do oczekiwania na proceszacznij, weź pid i powiedz biegaczowi gdb, aby dołączyć do niego. Polecenie powinno wyświetlać „Oczekiwanie na„ proces ”, aby rozpocząć ...” i naciśnięcie dowolnego klawisza powinno wyjść z funkcji.
Uzyskanie pid jest jedną z łatwiejszych części:
;; The command which will get the PID
(setq cmd ( format "ps -u %s -o pid,fname | awk "{ if ( "%s" == $2 ) print($1)}"
(user-login-name)
binary))
(set maybe_pid (shell-command-to-string cmd) )
Miejsce, w którym potrzebny jest ekspert elisp, to jak to nazwać co 1 sekundę lub do użytkownik naciska klawisz, aby wyjść.
Z góry dziękuję.
AKTUALIZACJA: Skrypt jest tutaj: https://bitbucket.org/vrdhn/gdb-pounce/raw/master/gdb-pounce.el
Odpowiedzi:
1 dla odpowiedzi № 1Możesz zrobić coś takiego:
(let ((done nil))
(while (and (not done) (not (input-pending-p)))
(if (> (random 10) 7)
(setq done t)
(message "Waiting...")
(sleep-for 1))))
Włożyłem random
sprawdź tutaj tylko jako przykład; to tam sprawdzasz proces. Kluczowe części to input-pending-p
i sleep-for
.