objdump изнутри emacs
Предполагая, что моя рабочая папка имеет ~/X/
и двоичные файлы после компиляции находятся в ~/X/bin/
Я обычно сначала получаю objdump так:
objdump -D ~/X/bin/bin1 > bin1.list
затем emacs bin1.list&
Как можно назначить функцию в .emacs
открыть временный буфер в Emacs и выполнить objdump -D
в двоичном в нем напрямую?
1 ответ
Решение
Конечно, по умолчанию команда M-! (shell-command
) выводит вывод оболочки в буфер вывода по умолчанию.
M-! objdump -D /bin/ls
Если вы хотите изменить имя выходного буфера, вы можете вызвать shell-command
через некоторое элисп:
(shell-command "objdump -D /bin/ls" "ls.dump")
или же
Cx Cw (write-file
) - записать выходной буфер оболочки в файл
Редактировать:
Пример, который захватывает файл в точке, если он доступен, или предлагает пользователю
(defun my-objdump-file (&optional file)
(interactive)
(unless file
(setq file (expand-file-name (or (thing-at-point 'filename)
(read-file-name "File: ")))))
(when file
(shell-command (concat "objdump -D "
file)
"*Objdump Output*")))