/ / Emacs Gdb: dołącz do procesu na starcie - emacs, gdb, elisp

Emacs Gdb: dołącz do procesu na początku - emacs, gdb, elisp

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 № 1

Moż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.