在 .gdbinit 中设置默认汇编语法为intel。(因为ATT语法看不懂。。)
GDB的反汇编窗口在intel语法下默认是没有高亮的,如图。
我想给关键字和函数实现高亮,请问如何实现呢
我寻思着,汇编里push
这种指令算是函数(也算关键字),rax
这种寄存器算是关键字,
就只剩下数字了。
(defgroup asm-mode nil
"Major mode for Intel asm."
:group 'languages)
(defconst asm-mode--font-lock-keywords
`(
;; operations
(,(regexp-opt '("and" "mov")
'symbols)
. 'font-lock-keywords)
;; registers
(,(regexp-opt '("rax" "rcx")
'symbols)
. 'font-lock-keywords)))
;;;###autoload
(define-derived-mode asm-mode prog-mode "Intel/ASM"
"Major mode for editing Intel asm files."
(setq-local tab-width 4)
(setq-local indent-tabs-mode nil)
(setq-local font-lock-defaults (list asm-mode--font-lock-keywords)))
;;;###autoload
(add-to-list 'auto-mode-alist
(cons (rx (or ".asm" ".s") eos) #'asm-mode))
没测试过,可以照着Emacs
自带的asm-mode.el
修改得到。