我正在玩弄gcc -S了解内存和堆栈的工作原理.在这些戏剧中,我发现了一些我不清楚的事情.你能帮我理解一下原因吗?
当调用函数的参数设置为一个名为一个它使用mov来esp代替push.没有使用的优势是什么push?
与其堆栈相关的函数将参数指向它们ebp + (N + offset)(其中N是为返回地址保留的大小).我希望看到esp - offset哪个更容易理解.ebp到处都是基本点的原因是什么?我知道这些是平等的,但无论如何?
这个魔术在一开始是main什么?为什么esp必须以这种方式初始化?
and esp,0xfffffff0
Run Code Online (Sandbox Code Playgroud)谢谢,
我知道w3m与Emacs的集成,但我很难让它在我的W7/x64上运行:这里有一个w3m二进制的永久分段错误.
我想知道是否有另一种方法可以在Emacs中显示远程HTML,可能是通过Readability/GetPocket等服务完成的初步过滤?我不需要在那里导航所以清除内容将是完美的.
谢谢,
我有两个框架; 第二帧始终用于显示*编译*缓冲区.我想使(compilation-goto-error)导航到另一帧错误的行.我已经实现了一个函数来执行此操作:
(defun my-compile-goto-error-other-frame ()
(interactive)
;;; just for simplification; in the read life there should be
;;; a search of a frame by name
(other-frame 1)
;;; I rely on the behavior when 'compile-goto-error' uses an another
;;; window in a frame to show a source code
(switch-to-buffer "*compilation*")
(compile-goto-error)
(recenter-top-bottom)
(delete-other-windows))
Run Code Online (Sandbox Code Playgroud)
我相信这个实现是丑陋的(但在大多数情况下它是有效的).
如何摆脱创建新的可见缓冲区并杀死未使用的缓冲区的顺序?有时会出现闪烁.可能有办法无形地执行这些步骤并仅显示结果?
如何看待(my-compile-display-error-other-frame)的正确实现?
类似于以下?
(defun my-compile-display-error-other-frame ()
(my-compile-goto-error-other-frame)
(other-frame 1))
Run Code Online (Sandbox Code Playgroud)
谢谢.
更新:
@lawlist,抱歉不清楚.此代码中没有底层函数.标准的'compile-goto-error'和我希望实现我自己的一个将在另一个框架中打开代码.我相信我的实施并不好; 我想它可能看起来像:
(defun ... ()
;;; Make Emacs …Run Code Online (Sandbox Code Playgroud) 这个问题让我抓狂。我有一个本地 SOCKSv5 代理,它是系统上所有应用程序的网关。我想穿上url-retrieve-synchronously袜子。通过以下设置:
(setq socks-noproxy '("127.0.0.1"))
(setq socks-server '("Default server" "127.0.0.1" 8010 5))
(setq url-gateway-method 'socks)
Run Code Online (Sandbox Code Playgroud)
通过纯 HTTP 进行检索工作正常:
(url-retrieve-synchronously "http://gnu.org")
#<buffer *http www.gnu.org:80*>
Run Code Online (Sandbox Code Playgroud)
但它不适用于HTTPS:
(url-retrieve-synchronously "https://gnu.org")
Run Code Online (Sandbox Code Playgroud)
它会导致:
Debugger entered--Lisp error: (file-error "make client process failed" "connection timed out" :name "gnu.org" :buffer #<buffer *url-http-temp*> :host "gnu.org" :service 443 :nowait nil)
make-network-process(:name "gnu.org" :buffer #<buffer *url-http-temp*> :host "gnu.org" :service 443 :nowait nil)
open-network-stream("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443)
open-gnutls-stream("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443)
network-stream-open-tls("gnu.org" #<buffer *url-http-temp*> "gnu.org" 443 …Run Code Online (Sandbox Code Playgroud)