View / intercept all calls to emacs lisp functions

I would like to see a log of all emacs lisp function calls made during an emacs session.

I want to know exactly what the interpreter does. How to "intercept" the REPL interpreter, if that makes sense?

With strace, I can connect to the emacs process and see all system calls. But I need information on a higher level, about which the lisp functions actually respond.

Aside, the motivation for this is to debug the problem in my emacs session, where the emacs process continues to listen on a socket that is forever unavailable:

recvfrom(4, 0xbd4754, 4096, 0, 0, 0)    = -1 EAGAIN (Resource temporarily unavailable)



# netstat -p |grep 14854
unix  3      [ ]         STREAM     CONNECTED     14854    3040/emacs         
+4
source share
3 answers

M-x profile-start RET RET ... M-x profile-report RET. , , .

, , . recvfrom EAGAIN .

+3

Elisp node

18.2.12

, edebug .

WRT , trace-function trace.el.

_

+1

, . , , C. , , ?

. (Emacs , .)

.

:

M-x find-library RET trace RET

;; M-x trace-function FUNCTION &optional BUFFER
;; M-x untrace-function FUNCTION
;; M-x untrace-all

Emacs Lisp Profiler (ELP):

M-x find-library RET elp RET

;; M-x elp-instrument-package
;; M-x elp-instrument-list
;; M-x elp-instrument-function
;; M-x elp-reset-*
;; M-x elp-results
;; M-x elp-restore-all
+1
source

All Articles