[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/dape bd1c30d52e 1/5: Fix out of hexl region error
From: |
ELPA Syncer |
Subject: |
[elpa] externals/dape bd1c30d52e 1/5: Fix out of hexl region error |
Date: |
Sun, 29 Dec 2024 18:57:45 -0500 (EST) |
branch: externals/dape
commit bd1c30d52e44563b407d887f25fdfc6912b97df5
Author: Daniel Pettersson <daniel@dpettersson.net>
Commit: Daniel Pettersson <daniel@dpettersson.net>
Fix out of hexl region error
---
dape.el | 54 +++++++++++++++++++-----------------------------------
1 file changed, 19 insertions(+), 35 deletions(-)
diff --git a/dape.el b/dape.el
index 1cc54494e6..6f6e930436 100644
--- a/dape.el
+++ b/dape.el
@@ -2756,10 +2756,10 @@ Using BUFFER and STR."
((not data) (message "No bytes returned from adapter"))
(t
(setq dape--memory-address address
+ hexl-max-address dape-memory-page-size
buffer-undo-list nil)
- (let ((inhibit-read-only t)
+ (let ((address (dape--memory-address-number))
(temp-buffer (generate-new-buffer " *temp*" t))
- (address (dape--memory-address-number))
(buffer-empty-p (zerop (buffer-size))))
(with-current-buffer temp-buffer
(insert (base64-decode-string data))
@@ -2769,29 +2769,24 @@ Using BUFFER and STR."
(goto-char (point-min))
(while (re-search-forward "^[0-9a-f]+" nil t)
(let ((address
- (format "%08x" (+ address
- (string-to-number (match-string 0)
16)))))
+ (format "%08x" (+ address (string-to-number (match-string
0) 16)))))
(delete-region (match-beginning 0) (match-end 0))
;; `hexl' does not support address over 8 hex chars
(insert (append (substring address (- (length address) 8)))))))
(replace-buffer-contents temp-buffer)
- (when buffer-empty-p
- (goto-char (point-min)))
+ (when buffer-empty-p (hexl-goto-address 0))
(kill-buffer temp-buffer))
(set-buffer-modified-p nil)
(when write-capable-p
- (add-hook 'write-contents-functions #'dape--memory-write))
- (rename-buffer (format "*dape-memory @ %s*" address) t))))))
+ (add-hook 'write-contents-functions #'dape--memory-write)))))))
(defun dape--memory-write ()
"Write buffer contents to stopped connection."
(let ((conn (dape--live-connection 'last))
(buffer (current-buffer))
- (start (point-min))
- (end (point-max))
(address dape--memory-address))
(with-temp-buffer
- (insert-buffer-substring buffer start end)
+ (insert-buffer-substring buffer)
(dehexlify-buffer)
(dape--with-request-bind
(_body error)
@@ -2807,18 +2802,13 @@ Using BUFFER and STR."
;; Return `t' to signal buffer written
t)
-(defun dape--memory-print-current-point-info (&rest _ignored)
- "Print address at point."
- (let ((addr (+ (hexl-current-address) (dape--memory-address-number))))
- (format "Current memory address is %d/0x%08x" addr addr)))
-
(define-derived-mode dape-memory-mode hexl-mode "Memory"
"Mode for reading and writing memory."
:interactive nil
- ;; TODO Look for alternatives to hexl, which handles address offsets
- (add-hook 'eldoc-documentation-functions
- #'dape--memory-print-current-point-info nil t)
- (setq revert-buffer-function #'dape--memory-revert))
+ (setq revert-buffer-function #'dape--memory-revert
+ mode-line-buffer-identification
+ (append mode-line-buffer-identification '(" {" dape--memory-address
"}"))
+ eldoc-documentation-functions nil))
(define-key dape-memory-mode-map "\C-x]" #'dape-memory-next-page)
(define-key dape-memory-mode-map "\C-x[" #'dape-memory-previous-page)
@@ -2827,13 +2817,10 @@ Using BUFFER and STR."
"Move address `dape-memory-page-size' forward.
When BACKWARD is non nil move backward instead."
(interactive nil dape-memory-mode)
- (let ((op (if backward '- '+)))
- (dape-read-memory
- (format "0x%08x"
- (funcall op
- (dape--memory-address-number)
- dape-memory-page-size))
- t)))
+ (dape-read-memory (format "0x%08x"
+ (funcall (if backward '- '+)
(dape--memory-address-number)
+ dape-memory-page-size))
+ t))
(defun dape-memory-previous-page ()
"Move address `dape-memory-page-size' backward."
@@ -2844,8 +2831,7 @@ When BACKWARD is non nil move backward instead."
"Revert all `dape-memory-mode' buffers."
(dape--with-debounce dape--memory-debounce-timer dape-ui-debounce-time
(cl-loop for buffer in (buffer-list)
- when (eq (with-current-buffer buffer major-mode)
- 'dape-memory-mode)
+ when (eq (with-current-buffer buffer major-mode)
'dape-memory-mode)
do (with-current-buffer buffer (revert-buffer)))))
(defun dape-read-memory (address &optional reuse-buffer)
@@ -2854,15 +2840,14 @@ If REUSE-BUFFER is non nil reuse the current buffer to
display result
of memory read."
(interactive
(list (string-trim
- (read-string "Address: "
+ (read-string "Address: " nil nil
(when-let ((number (thing-at-point 'number)))
(format "0x%08x" number))))))
(let ((conn (dape--live-connection 'stopped)))
(unless (dape--capable-p conn :supportsReadMemoryRequest)
(user-error "Adapter not capable of reading memory"))
- (let ((buffer
- (or (and reuse-buffer (current-buffer))
- (generate-new-buffer (format "*dape-memory @ %s*" address)))))
+ (let ((buffer (if reuse-buffer (current-buffer)
+ (generate-new-buffer "*dape-memory*"))))
(with-current-buffer buffer
(unless (eq major-mode 'dape-memory-mode)
(dape-memory-mode)
@@ -2871,8 +2856,7 @@ of memory read."
"Write memory with `\\[save-buffer]'"))))
(setq dape--memory-address address)
(revert-buffer))
- (select-window
- (display-buffer buffer)))))
+ (select-window (display-buffer buffer)))))
;;; Breakpoints