小编nrz*_*nrz的帖子

在本地运行多个网站Apache PHP Ubuntu

我试图运行多个虚拟主机(?),例如:http:/ localhost将指向一个项目,http:/ newsite指向另一个项目,http:/ myfavourite指向另一个项目不同的文档根目录.

(由于超链接发布限制,每个http://都是http:/ here)

我没有成功查看在/ etc/apache2中编辑apache文件的位置.我在寻找一个vhosts文件吗?

任何建议都很棒,谢谢.

apache ubuntu virtualhost

7
推荐指数
2
解决办法
7068
查看次数

如何让cgdb显示汇编代码?

我找不到cgdb反汇编二进制文件的方法,并在代码窗口中显示当前指令的汇编代码.这是可能的,我应该使用什么命令?我正在使用Mac OS X并从自制软件库获取cgdb.

macos assembly gdb disassembly cgdb

7
推荐指数
2
解决办法
2498
查看次数

使用asdf:defsystem和quickproject定义包的正确方法

我是一个Lisp初学者试图理解如何正确使用Lisp包系统,同时学习LTK用于GUI编程,使用SBCL 1.0.55.0.debian和Limp 0.3.4(如果重要的话,还有Debian Wheezy).我使用aptitude包管理器安装了ASDF(包cl-asdf&cl-common-lisp-controller),然后我使用Quicklisp网站上的说明安装了Quicklisp(http://www.quicklisp.org/beta/index.html) (不是来自Debian存储库)然后我(ql:quickload 'ltk)在SBCL控制台中安装了LTK .

hello-1.lisp(直接来自LTK教程):

(defun hello-1()
    (with-ltk ()
              (let ((b (make-instance ’button
                                      :master nil
                                      :text "Press Me"
                                      :command (lambda ()
                                                       (format t "Hello World!~&")))))
                   (pack b))))
Run Code Online (Sandbox Code Playgroud)

如果我在一个新的SBCL Lisp的图像编译这个直上,我得到的消息WITH-LTKPACK未定义功能,'BUTTON是不确定的变量.

所以,我发现我需要加载'ltk,然后再使用in-package.我能够运行它,我首先要使用(ql:quickload 'ltk)(in-package :ltk)在SBCL控制台.但是,我仍然是一个'BUTTON未定义变量的错误消息.

* (ql:quickload 'ltk)
To load "ltk":
  Load 1 ASDF system:
    ltk
; Loading "ltk"

(LTK)
* (in-package :ltk)

#<PACKAGE "LTK">
* (compile-file "/home/user/code/lisp/hello-1.lisp")

; caught …
Run Code Online (Sandbox Code Playgroud)

lisp sbcl common-lisp asdf quicklisp

7
推荐指数
1
解决办法
3473
查看次数

MATLAB撤消命令

我目前正在MATLAB上开发一个基本的图像处理应用程序.我必须对以前的状态功能实现撤消.我搜索网有uiundo但它只是undos GUI动作.是否有一个简单的撤消命令.谢谢.

matlab undo

7
推荐指数
2
解决办法
2万
查看次数

是否可以在Common Lisp中为Intel x86-64编写Linux内核模式调试器,以及使用哪个Common Lisp实现[s]?

我有兴趣在Common Lisp中为x86-64开发某种ring0内核模式调试器,它将作为Linux内核模块加载,而且我更喜欢Common Lisp to C in general programming,我想知道不同的Common Lisp实现会如何适合这种编程任务.

调试器将使用一些外部反汇编库,例如通过某些FFI的udis86.在我看来,最简单的方法是在C中编写内核模块,因为它们需要包含C函数和(Linux内核模块编程指南),因此kernel-land模块代码将使用CFFI从C调用Common Lisp代码.我们的想法是为64位Linux创建一个ring0调试器,其灵感来自于Rasta Ring 0调试器的概念,该调试器仅适用于32位Linux并且需要PS/2键盘.我认为最具挑战性的部分是具有硬件和软件断点以及低级视频,键盘或USB输入设备处理的实际调试器代码.内联汇编对此有很大帮助,在我看来,在SBCL中内联汇编可以通过使用VOP(SBCL内部:VOP)(SBCL内部:添加VOP)来实现,而这个IRC日志提到了ACL(Allegro Common Lisp) ,CCL(Clozure Common Lisp)和CormanCL都有LAP(Lisp汇编程序).ACL和CormanCL都是专有的,因此被丢弃,但CCL(Clozure Common Lisp)可能是一种选择.构建独立可执行文件的能力也是一项要求; 我目前正在使用的SBCL有它,但由于它们是完整的Lisp图像,它们的大小非常大.int init_module(void)void cleanup_module(void)

我的问题是:在Common Lisp中为Intel x86-64创建ring0内核模式调试器是否可行,在C和/或汇编中实现低级代码,如果是,则为64位的Common Lisp实现Linux最适合这种努力,如果有多个合适的Common Lisp实现,有什么优缺点?如果它比Common Lisp提供了一些好处,那么S​​cheme也可以是一种可能的选择.我很清楚绝大多数内核模块都是用C语言编写的,我知道C和x86组件足够好,能够在C和/或汇编中编写所需的低级代码.这不是尝试将Linux内核移植到Lisp中(参见:https://stackoverflow.com/questions/1848029/why-not-port-linux-kernel-to-common-lisp),但是计划写入Common Lisp是一个Linux内核模块,可用作ring0调试器.

c lisp assembly common-lisp linux-kernel

7
推荐指数
1
解决办法
1449
查看次数

学习SSE/SSE2和asm优化

我熟悉C/C++和汇编的x86/x64的语言,但现在我需要学习的图形优化(SSE/SSE2和一般ASM优化),我可以使用哪些资源/书籍/链接,了解这些主题?我一直在网上搜索没有太多运气

graphics x86 assembly sse x86-64

7
推荐指数
1
解决办法
896
查看次数

什么是pushl/popl%esp的汇编级表示?

C++

ATT大会

我试图理解以下两条指令的行为:

pushl %esp
Run Code Online (Sandbox Code Playgroud)

和:

popl %esp
Run Code Online (Sandbox Code Playgroud)

请注意,它们将计算出的值存储回来%esp.

我正在独立地考虑这些指令,而不是按顺序.我知道存储的值%esp总是递增/递减之前的值,但是我怎么能用汇编语言表示行为呢?这是我到目前为止所提出的:

推送:

movl %esp, %edx     1. save value of %esp
subl  $4, %esp      2. decrement stack pointer
movl %edx, (%esp)   3. store old value of %esp on top of stack
Run Code Online (Sandbox Code Playgroud)

对于pop:

movl (%esp), %esp   You wouldn’t need the increment portion. 
Run Code Online (Sandbox Code Playgroud)

它是否正确?如果没有,我哪里错了?谢谢.

x86 assembly stack att

7
推荐指数
1
解决办法
9187
查看次数

如何阅读NASM程序集.lst列表文件

我写了一个NASM程序并使用它创建了一个列表文件nasm -f elf -l rs.lst rs.asm.该程序完美地工作,接收键输入值,并输出值是控制键还是可打印键,以及它是数字,小写还是大写字母.

我需要帮助理解我在.lst文件中读到的内容.左边的数字是地址吗?说明?他们代表记忆吗?这是.lst.

     1                                  segment .data
        //Removed my student ID info                            
     8                                      ;Program Output Strings
     9                                  
    10 00000023 5072657373204B6579-         askForKey: db 'Press Key and Enter: ', 10   ; ;10 is the newline value
    11 0000002C 20616E6420456E7465-
    12 00000035 723A200A           
    13                                      askLen: equ $-askForKey
    14                                  
    15 00000039 436F6E74726F6C204B-         controlKey: db 'Control Key ', 10
    16 00000042 6579200A           
    17                                      controlLen: equ $-controlKey
    18                                      
    19 00000046 5072696E7461626C65-         printableKey: db 'Printable Key ', 10   
    20 0000004F …
Run Code Online (Sandbox Code Playgroud)

x86 assembly nasm listings

7
推荐指数
1
解决办法
8513
查看次数

海湾合作委员会不使用公司

GCC编译器

$ gcc --version
gcc (GCC) 4.8.2
...
Run Code Online (Sandbox Code Playgroud)

不生成inc汇编指令,它实际上可能有用,就像在这个C程序中:

int main(int argc, char **argv)
{
    int sum = 0;
    int i;
    for(i = 0; i < 1000000000L; i++)                     <---- that "i++"
        sum += i;
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

相反,它会生成一条add指令:

0000000000000000 <main>:
   0:   31 d2                   xor    %edx,%edx
   2:   31 c0                   xor    %eax,%eax
   4:   0f 1f 40 00             nopl   0x0(%rax)
   8:   01 d0                   add    %edx,%eax
   a:   83 c2 01                add    $0x1,%edx         <---- HERE
   d:   81 fa 00 ca 9a …
Run Code Online (Sandbox Code Playgroud)

optimization assembly gcc x86-64 gcc4.8

7
推荐指数
1
解决办法
437
查看次数

CLOS make-instance非常慢,导致SBCL中的堆耗尽

我正在使用Common Lisp(64位Debian GNU/Linux中的SBCL 1.1.5)编写一个多体系结构汇编程序/反汇编程序,目前汇编程序为x86-64的子集生成正确的代码.为了组装x86-64汇编代码,我使用一个哈希表,其中汇编指令助记符(字符串)如"jc-rel8"和,"stosb"是返回一个或多个编码函数列表的键,如下所示:

(defparameter *emit-function-hash-table-x64* (make-hash-table :test 'equalp))
(setf (gethash "jc-rel8" *emit-function-hash-table-x64*) (list #'jc-rel8-x86))
(setf (gethash "stosb"   *emit-function-hash-table-x64*) (list #'stosb-x86))

编码函数就像这些(有些更复杂):

(defun jc-rel8-x86 (arg1 &rest args)
  (jcc-x64 #x72 arg1))

(defun stosb-x86 (&rest args)
  (list #xaa))

现在我试图通过使用转换为Common Lisp CLOS语法的NASM(NASM 2.11.06)指令编码数据(文件insns.dat)来合并完整的x86-64指令集.这意味着代替用于发射的二进制码(如上面的函数)与自定义的情况下正则函数x86-asm-instruction类(到目前为止一个非常基本的类,某些20个时隙:initarg,:reader,:initform等等),其中emit将用于带有参数的方法用于发出给定指令(助记符)和参数的二进制代码.转换后的指令数据看起来像这样(但它超过40'000行,正好是7193 make-instance和7193 setf).


;; first mnemonic + operand combination instances (:is-variant t).
;; there are 4928 such instances for x86-64 generated …

lisp performance sbcl common-lisp clos

7
推荐指数
1
解决办法
829
查看次数