Como dizer ao emacs gdb para mostrar a linha de código atual no centro do buffer?

3

Usar o depurador no emacs é legal: você pode percorrer o código com o comando next , e o emacs sempre mostrará a linha de código que está atualmente sendo executada, assim:

  int x;
  int y;
=>int z;

Mas, infelizmente, se o arquivo for longo, o ponteiro => acabará se movendo para o fundo e sempre mostrará a linha atual na parte inferior do buffer.

Seria melhor se o ponteiro => sempre ficasse no meio do buffer (centralizado verticalmente), para que eu possa ver o que está chegando logo após a linha atual, antes de dizer next novamente, como aqui :

  int y;
=>int z;
  std::cout << z;

Isso é possível? Posso definir isso em algum lugar?

    
por dehmann 10.03.2010 / 03:38

1 resposta

4

Não há mecanismo embutido para manter a linha centralizada, mas esse conselho faz o truque para mim:

(defadvice gud-display-line (after gud-display-line-centered activate)
  "Center the line in the window"
  (when (and gud-overlay-arrow-position gdb-source-window)
    (with-selected-window gdb-source-window
      ; (marker-buffer gud-overlay-arrow-position)
      (save-restriction
        (goto-line (ad-get-arg 1))
        (recenter)))))
    
por 10.03.2010 / 05:24