จะบอกให้ emacs gdb แสดงบรรทัดรหัสปัจจุบันที่กึ่งกลางบัฟเฟอร์ได้อย่างไร


3

การใช้ตัวดีบั๊กใน emacs นั้นดี: คุณสามารถก้าวผ่านโค้ดด้วยnextคำสั่งและ emacs จะแสดงบรรทัดโค้ดที่ถูกเรียกใช้ในปัจจุบันเช่นนี้:

  int x;
  int y;
=>int z;

แต่น่าเสียดายที่หากไฟล์ของคุณมีความยาวตัวชี้=>นั้นก็จะย้ายไปที่ด้านล่างและจะแสดงบรรทัดปัจจุบันที่ด้านล่างของบัฟเฟอร์

มันจะดีกว่าถ้าตัวชี้=>อยู่ตรงกลางของบัฟเฟอร์ (ตรงกลางแนวตั้ง) เพื่อที่ฉันจะได้เห็นว่าเกิดอะไรขึ้นหลังบรรทัดปัจจุบันก่อนที่ฉันจะพูดnextอีกครั้งเหมือนที่นี่:

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

เป็นไปได้ไหม ฉันจะตั้งที่ใดที่หนึ่งได้ไหม

คำตอบ:


4

ไม่มีกลไกในตัวที่จะรักษาเส้นกึ่งกลางไว้ แต่คำแนะนำนี้จะเป็นการหลอกลวงสำหรับฉัน:

(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)))))

ใช้งานไม่ได้สำหรับฉัน เมื่อฉันพูดว่า 'ถัดไป' ใน gdb emacs จะให้error in process filter: Symbol's value as variable is void: gud-overlay-arrow-position
dehmann

1
fyi ใช้ได้กับฉันใน GNU Emacs 24.3.1 (x86_64-unknown-linux-gnu, GTK + เวอร์ชั่น 2.18.9) ขอบคุณ!
simpleuser

ดูเหมือนว่า gdb-source-window สามารถเป็นโมฆะ ซึ่งทำให้เกิดข้อผิดพลาด emacs 26.2 9 ปีต่อมา
MMM
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.