![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机底层相关
李生龙
这个作者很懒,什么都没留下…
展开
-
go实现lua解析器
https://www.jianshu.com/nb/4157501 https://www.jianshu.com/p/3ed643138bdd转载 2018-04-24 16:56:42 · 1408 阅读 · 0 评论 -
编译原理之词法分析、语法分析、语义分析
词法分析(Lexical analysis或Scanning)和词法分析程序(Lexical analyzer或Scanner) 词法分析阶段是编译过程的第一个阶段。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用lex等工具自动生成。语法分析(Syntax ana...转载 2018-03-28 20:02:15 · 2802 阅读 · 0 评论 -
词法分析器的实现
开篇编译,简单的说,就是把源程序转换为可执行程序。从hello world 说程序运行机制 里面简单的说明了程序运行的过程,以及一个程序是如何一步步变成可执行文件的。在这个过程中,编译器做了很多重要的工作。对底层该兴趣的我,自然的,也就迫切想搞清楚编译的内部实现,也就是编译的原理。这篇文章主要说的是编译器前端,词法分析器的原理,最后会给出一个词法分析器的简单实现。 介绍 编译简单的说,就是把源程序...转载 2018-03-28 19:59:32 · 590 阅读 · 0 评论 -
词法分析器实现
点击打开链接词法分析器实现一、写在前面 编译原理是软件工程的一项基础的课程,是研究软件是什么,为什么可以运行,以及怎么运行的学科,编译系统的改进将会直接对其上层的应用程序的执行效率,执行原理产生深刻的影响。编译原理的目的是将源语言翻译成目标语言。与翻译的区别就是,编译将高级语言编译成低级语言。至于达到什么样的低级语言,在不同的系统中是不同的,对于不同的机器都要用相应的指令系统,编译的目的就是将编...转载 2018-03-28 18:06:13 · 10862 阅读 · 2 评论 -
Linux下利用backtrace追踪函数调用堆栈以及定位段错误
一般察看函数运行时堆栈的方法是使用GDB(bt命令)之类的外部调试器,但是,有些时候为了分析程序的BUG,(主要针对长时间运行程序的分析),在程序出错时打印出函数的调用堆栈是非常有用的。在glibc头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。int backtrace(void **buffer,int size) 该函数用于获取当前线程的调用堆栈,转载 2015-08-21 14:44:51 · 551 阅读 · 0 评论 -
占用cpu高的调试方法
linux进程高cpu问题分析 1.用top命令查看哪个进程占用CPU高gateway网关进程14094占用CPU高达891%,这个数值是进程内各个线程占用CPU的累加值。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14094 root 15 0 315m转载 2015-08-21 10:23:24 · 1969 阅读 · 0 评论 -
arch Linux 内核编译
Arch Linux 内核编译主要参考文章:http://wiki.archlinux.org/index.php/Kernel_Compilation_From_Sourcehttp://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html大体过程如下:1. 获取最新的内核源码( linux内核首页地址:http:转载 2012-12-26 14:12:26 · 2787 阅读 · 0 评论 -
程序的工作过程 eip寄存器
今天我们来学习下eip寄存器。。它可存储着我们cpu要读取指令的地址,没有了它,cpu就无法读取下面的指令(通俗点讲cpu就无法执行。每次相应汇编指令执行完相应的eip值就会增加。因为80386 cpu的寻址范围是4GB。所以它的寻址模式是平坦模式的。这里我描述下cpu通过读取eip寄存器执行的大致过程。。此时我们假设一个程序开始执行了。首先PE loader装载我们的pe文件,读原创 2012-07-24 18:40:21 · 1298 阅读 · 0 评论 -
va_start ,va_arg和va_end的可变参数应用
stdarg.h中三个宏va_start ,va_arg和va_end的应用#include #include const int N=5;using namespace std; void Stdarg(int a1,...){ va_list argp; int i; int ary[N]; va_sta转载 2013-01-31 16:41:25 · 541 阅读 · 0 评论 -
模糊测试漏洞挖掘
原文http://seckungfu.com/blog/2012/11/20/lou-dong-wa-jue-shou-ji-zhi-monajian-jie/相关网站 http://www.twisc.nctu.edu.tw/http://140.113.87.234:8000/lanmona是著名的corelan team出品的immunity debugger插件,漏转载 2013-01-15 18:54:16 · 3189 阅读 · 0 评论 -
Linux下使用objdump+vim+xxd进行反汇编并修改指令
原文地址http://blog.163.com/lixiangqiu_9202/blog/static/535750372012727102618226/|字号 订阅前段时间花了一个星期时间马马虎虎算是对汇编入了门吧(好吧,其它我还是什么都不懂),最近又开始对汇编有点兴趣了,于是想试下反汇编的感觉并尝试自己修改下指令据说对一个程序反汇编后再修改的方法转载 2012-12-07 15:37:42 · 2286 阅读 · 0 评论