• 使用 strace 查找 Emacs 启动阻塞的原因

    刚好最近在学习使用 strace 工具,因此决定使用 strace 来看看 Emacs 到底卡在哪里。

    之前就觉得我的 Emacs 启动好慢,查看启动日志会发现启动到一般的时候会有一个比较长时间的卡顿。 之前一直没有理会它,今天花了点时间探索了一下,发现罪魁祸首居然是 exec-path-from-shell 这个包。

    现将探索的过程记录如下: 由于使用了 spacemacs 的配置,配置上比较复杂,不太想通过实验缩减配置的方式来摸索出问题的地方。刚好最近在学习使用 strace 工具,因此决定使用 strace 来看看 Emacs 到底卡在哪里。

    strace emacs --fg-daemon

    输出的内容特别多,这里只截取卡顿前的部分内容

    readlinkat(AT_FDCWD, "/home", 0x7ffd1d3abb50, 1024) = -1 EINVAL (无效的参数)readlinkat(AT_FDCWD, "/home/lujun9972", 0x7ffd1d3abf00, 1024) = -1 EINVAL (无效的参数)readlinkat(AT_FDCWD, "/home/lujun9972/.emacs.d", 0x7ffd1d3ac2b0, 1024) = -1 EINVAL (无效的参数)readlinkat(AT_FDCWD, "/home/lujun9972/.emacs.d/elpa", 0x7ffd1d3ac660, 1024) = -1 EINVAL (无效的参数)readlinkat(AT_FDCWD, "/home/lujun9972/.emacs.d/elpa/exec-path-from-shell-20180323.1904", 0x7ffd1d3aca10, 1024) = -1 EINVAL (无效的参数)readlinkat(AT_FDCWD, "/home/lujun9972/.emacs.d/elpa/exec-path-from-shell-20180323.1904/exec-path-from-shell.elc", 0x7ffd1d3acdc0, 1024) = -1 EINVAL (无效的参数)lseek(7, -2655, SEEK_CUR) = 1441read(7, "\n(defvar exec-path-from-shell-de"..., 4096) = 4096lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537brk(0x7507000) = 0x7507000lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537lseek(7, 5537, SEEK_SET) = 5537read(7, "230\\205\26\0\t\22\\307\\310\t!\vC\\\"\\211\24\\2"..., 4096) = 2430lseek(7, 7967, SEEK_SET) = 7967lseek(7, 7967, SEEK_SET) = 7967lseek(7, 7967, SEEK_SET) = 7967lseek(7, 7967, SEEK_SET) = 7967read(7, "", 4096) = 0close(7) = 0getpid() = 10818faccessat(AT_FDCWD, "/home/lujun9972/bin/printf" alt="cbaelc(使用 strace 查找 Emacs 启动阻塞的原因)" title="cbaelc(使用 strace 查找 Emacs 启动阻塞的原因)">
    篮球百科

    cbaelc(使用 strace 查找 Emacs 启动阻塞的原因)

    刚好最近在学习使用 strace 工具,因此决定使用 strace 来看看 Emacs 到底卡在哪里。...

    小翠 858 0 2022-12-02

  • 返回顶部小火箭