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*")))
Другие вопросы по тегам