• Lua调用C函数的实现

    本文出自:【InTheWorld的博客】

            看Lua有一段时间了,说实话进展挺慢的。归根到底是因为“动机不纯”,我确实不是抱着学Lua的心态去看资料的。本来看Lua就是听说Lua的实现比较简单,可以借Lua理解解释性语言的一些细节实现。当然Lua也确实不简单的,闭包什么的概念以前都没听说过。没用过Lua却去硬啃Lua语言实现,我也是蛮拼的!
        我主要的参考资料是云风大神的《Lua源码赏析》和高手翻译的《LUA中文教程》。这里我想记录一下函数调用的过程。按照函数调用这条线串联一下各各知识点。首先要从字节码开始了。Lua虚拟机的指令集中有两条用于函数调用的字节码。

    OP_CALL,/*  A B C   R(A), ... ,R(A+C-2) := R(A)(R(A+1), ...
    【查看更多】
  • 调试器原理之ptrace调用

    本文出自:【InTheWorld的博客】 (欢迎留言、交流) 

          其实很早以前就对调试器技术感兴趣了。以前玩板子的时候用了JTAG,当时我觉得这东西好神奇。前面我下载了一份GDB源码,可惜弄了几天都没有看出门道。昨天瞄了一眼《开源应用程序架构》,不出意外的看到了GDB。里面说在Linux下面调试器的功能主要都是靠ptrace调用实现的。我突然觉得有戏,感觉找到了点希望(不得不说,网上真心没找到GDB实现方面的资料,顶多是使用教程)。然后我就和ptrace干上了。后来就查到了一份名为《Linux源码分析-PTRACE》的文档,大致看了一遍后解决了我的不少疑问。下面是我摘抄的总结和自己的一点理解。

    调试进程的控制

    1) 终止进程运行
           在使用调试器调试
    【查看更多】