Mercurial > emacs
comparison lisp/progmodes/gdb-ui.el @ 94336:4d089dfae3b1
(gdb-invalidate-assembler): Compare numeric
value of addresses rather than (partial) string value.
(gdb-frame-handler): Change regexp according to above change.
author | Nick Roberts <nickrob@snap.net.nz> |
---|---|
date | Thu, 24 Apr 2008 22:26:38 +0000 |
parents | ca9efc5939fc |
children | bac78d3bb2ee |
comparison
equal
deleted
inserted
replaced
94335:a12da5df4d6a | 94336:4d089dfae3b1 |
---|---|
3536 (progn | 3536 (progn |
3537 (unless (and gdb-selected-frame | 3537 (unless (and gdb-selected-frame |
3538 (string-equal gdb-selected-frame gdb-previous-frame)) | 3538 (string-equal gdb-selected-frame gdb-previous-frame)) |
3539 (if (or (not (member 'gdb-invalidate-assembler | 3539 (if (or (not (member 'gdb-invalidate-assembler |
3540 gdb-pending-triggers)) | 3540 gdb-pending-triggers)) |
3541 (not (string-equal gdb-pc-address | 3541 (not (equal (string-to-number gdb-pc-address) |
3542 gdb-previous-frame-pc-address))) | 3542 (string-to-number |
3543 gdb-previous-frame-pc-address)))) | |
3543 (progn | 3544 (progn |
3544 ;; take previous disassemble command, if any, off the queue | 3545 ;; take previous disassemble command, if any, off the queue |
3545 (with-current-buffer gud-comint-buffer | 3546 (with-current-buffer gud-comint-buffer |
3546 (let ((queue gdb-input-queue)) | 3547 (let ((queue gdb-input-queue)) |
3547 (dolist (item queue) | 3548 (dolist (item queue) |
3548 (if (equal (cdr item) '(gdb-assembler-handler)) | 3549 (if (equal (cdr item) '(gdb-assembler-handler)) |
3549 (setq gdb-input-queue | 3550 (setq gdb-input-queue |
3550 (delete item gdb-input-queue)))))) | 3551 (delete item gdb-input-queue)))))) |
3551 (gdb-enqueue-input | 3552 (gdb-enqueue-input |
3552 (list | 3553 (list |
3553 (concat gdb-server-prefix "disassemble " | 3554 (concat gdb-server-prefix "disassemble " gdb-pc-address "\n") |
3554 (if (member gdb-pc-address '(nil "main")) nil "0x") | |
3555 gdb-pc-address "\n") | |
3556 'gdb-assembler-handler)) | 3555 'gdb-assembler-handler)) |
3557 (push 'gdb-invalidate-assembler gdb-pending-triggers) | 3556 (push 'gdb-invalidate-assembler gdb-pending-triggers) |
3558 (setq gdb-previous-frame-pc-address gdb-pc-address) | 3557 (setq gdb-previous-frame-pc-address gdb-pc-address) |
3559 (setq gdb-previous-frame gdb-selected-frame))))))) | 3558 (setq gdb-previous-frame gdb-selected-frame))))))) |
3560 | 3559 |
3577 (when (re-search-forward | 3576 (when (re-search-forward |
3578 "Stack level \\([0-9]+\\), frame at \\(0x[[:xdigit:]]+\\)" nil t) | 3577 "Stack level \\([0-9]+\\), frame at \\(0x[[:xdigit:]]+\\)" nil t) |
3579 (setq gdb-frame-number (match-string 1)) | 3578 (setq gdb-frame-number (match-string 1)) |
3580 (setq gdb-frame-address (match-string 2))) | 3579 (setq gdb-frame-address (match-string 2))) |
3581 (goto-char (point-min)) | 3580 (goto-char (point-min)) |
3582 (when (re-search-forward ".*=\\s-+0x0*\\(\\S-*\\)\\s-+in\\s-+\\(.*?\\)\ | 3581 (when (re-search-forward ".*=\\s-+\\(\\S-*\\)\\s-+in\\s-+\\(.*?\\)\ |
3583 \\(?: (\\(\\S-+?\\):[0-9]+?)\\)*; " | 3582 \\(?: (\\(\\S-+?\\):[0-9]+?)\\)*; " |
3584 nil t) | 3583 nil t) |
3585 (setq gdb-selected-frame (match-string 2)) | 3584 (setq gdb-selected-frame (match-string 2)) |
3586 (if (gdb-get-buffer 'gdb-locals-buffer) | 3585 (if (gdb-get-buffer 'gdb-locals-buffer) |
3587 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) | 3586 (with-current-buffer (gdb-get-buffer 'gdb-locals-buffer) |