(defconst bug-22374-dir (file-name-directory (or load-file-name buffer-file-name))) (defun bug-22373-frame0 () (interactive) (select-window (get-buffer-window "*stack frames of test*")) (let ((new-level "0")) (setq gdb-frame-number new-level) (gdb-input (concat "-stack-select-frame " new-level) 'ignore) (gdb-update))) (mapatoms (lambda (s) (when (and (fboundp s) (string-match "\\`display-buffer" (symbol-name s))) (trace-function-background s)))) (trace-function-background 'bug-22373-frame0) (find-file (expand-file-name "test.cpp" bug-22374-dir)) (gdb "gdb -i=mi ./test") (gdb-many-windows ) (gdb-input "start" #'ignore) (run-with-idle-timer 0.25 nil (lambda () (select-window (get-buffer-window "test.cpp")) (switch-to-buffer "*scratch*") (run-with-idle-timer 0.5 nil #'bug-22373-frame0) ))