Skip to content

Commit c22ecd7

Browse files
committed
add dwim version of eval expression function
1 parent 9854235 commit c22ecd7

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

gdb-mi.el

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2190,6 +2190,7 @@ it from the list."
21902190
(define-key map (kbd "<f6>") #'gdb-stop)
21912191
(define-key map (kbd "<f8>") #'gdb-watcher-add)
21922192
(define-key map (kbd "<C-f8>") #'gdb-eval-expression)
2193+
(define-key map (kbd "<S-f8>") #'gdb-eval-expression-dwim)
21932194
(define-key map (kbd "<f9>") #'gdb-toggle-breakpoint)
21942195
(define-key map (kbd "<f10>") #'gdb-next)
21952196
(define-key map (kbd "<M-f10>") #'gdb-next-instruction)
@@ -2383,12 +2384,22 @@ If ARG is non-nil, you may modify the watcher expression before creation."
23832384
(interactive)
23842385
(gdb-create-watcher-from-switch t))
23852386

2387+
(defun gdb-eval-expression-dwim ()
2388+
"Evaluate a region if it is active, otherwise evaluate symbol at point."
2389+
(interactive)
2390+
(if (use-region-p)
2391+
(gdb--eval-expression (buffer-substring-no-properties (region-beginning) (region-end)))
2392+
(gdb--eval-expression (thing-at-point 'symbol))))
2393+
23862394
(defun gdb-eval-expression ()
23872395
"Evaluate expression once and print result."
23882396
(interactive)
2397+
(gdb--eval-expression (gdb--read-line "Expression to evaluate: ")))
2398+
2399+
(defun gdb--eval-expression (expression)
2400+
"Evaluate given expression and print result."
23892401
(gdb--with-valid-session
23902402
(let* ((frame (or (gdb--session-selected-frame session) (user-error "No frame is selected")))
2391-
(expression (gdb--read-line "Expression to evaluate: "))
23922403
result)
23932404
(when expression
23942405
(setq result (gdb--get-data (concat "-data-evaluate-expression " (gdb--escape-argument expression))

0 commit comments

Comments
 (0)