摘要:近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuning Guidelines.pdf1 系统级IO监控iostat iostat -xdm 1 # 个人习惯%util 代表磁盘繁忙程度。100% 表示磁盘繁忙, 0%表示磁盘空闲。但是注意,磁盘繁忙不代表磁盘(带宽)利用率高argrq-sz 提交给驱动层的IO请求大小,一般不小于4K,不大于max(readahead_kb, max_sectors_kb) 可用于判断当前的IO模式,一般情况下,尤其是磁. 阅读全文
posted @ 2013-08-14 23:52 lovegq 阅读 (50760) 评论 (6) 编辑
摘要:Antlr的LL(*)文法不支持左递归,虽然Antlrworks提供了一些自动消除左递归的功能,但是也不是很好用。另外,很多文法文件都包含了(大量的)左递归,比如C99标准里的Grammarpostfix-expression: primary-expression postfix-expression [ expression ] postfix-expression ( argument-expression-listopt ) postfix-expression . identifier postfix-expression –> identifier postfix-expressio... 阅读全文
posted @ 2012-01-17 14:51 lovegq 阅读 (2718) 评论 (4) 编辑
摘要:背景: 在做XXX编译器检证时经常需要区分是代码端错误,还是编译器端错误,因此对代码进行调试是必不可少的。但是狗日的甲方并没有提供对应的调试器XXXDB,而用GDB调试XXX生成的可执行程序很不稳定,经常出现异常,干脆自己动手,写mini调试器,顺便学习一下开发一个调试器到底需要哪些知识。 目标: GDB一共有十几万行代码,95%的功能都用不上。三个最基本的功能:“单步”、“断点”、“查看变量”即可满足日常工作中的大部分需求。并且基于学习、分享的初衷,我尽量把代码控制在千行左右,足够简单,足够傻瓜,最关键的是,老夫没那么时间啊。 预备知识: 先简单解释下调试器的基本原理。 假设调试器... 阅读全文
posted @ 2012-01-16 17:21 lovegq 阅读 (3095) 评论 (5) 编辑
摘要:正巧老夫最近在做C99语法分析的工作,看了<华丽的递归...>的帖子,里面用几个简单的双向递归模拟循环,突然有点儿心得,贴出来分享一下,有错误的地方还请各位看官指正。 先看看3种不同的BNF的产生式,由这三个产生式可以回答二个问题 1 什么样的递归可以用不带栈的循环表示 ? 2 怎么用递归表示循环 ? 1 2 3A : Aa A : aA A : aAb | a | a | c ... 阅读全文
posted @ 2011-12-05 15:38 lovegq 阅读 (2112) 评论 (3) 编辑
摘要:近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuning Guidelines.pdf1 系统级IO监控iostat iostat -xdm 1 # 个人习惯%util 代表磁盘繁忙程度。100% 表示磁盘繁忙, 0%表示磁盘空闲。但是注意,磁盘繁忙不代表磁盘(带宽)利用率高argrq-sz 提交给驱动层的IO请求大小,一般不小于4K,不大于max(readahead_kb, max_sectors_kb) 可用于判断当前的IO模式,一般情况下,尤其是磁. 阅读全文
posted @ 2013-08-14 23:52 lovegq 阅读 (50760) 评论 (6) 编辑
摘要:以 RHEL6u3 为例1 Systemtap 安装 yum install systemtap 跟systemtap有关的有6,7个,全装上,别偷懒 就用yum安装,别傻傻的去下rpm包,吃力不讨好2 kernel debuginfo包安装这一点RHEL6 跟 RHEL5不同, redhat没有提供 kernel debuginfo 包的ftp下载(也可能是我没有找到),估计可能是要收钱了,网上大部分都是centos或者其他源码编译的(rpm -qi xxx.rpm 的Vendor字段)用 http://rpm.pbone.net/ 搜 rpm -ivh kernel-debuginfo-2 阅读全文
posted @ 2013-08-14 21:29 lovegq 阅读 (558) 评论 (0) 编辑
摘要:1 获取系统内核信息1 uname -r # 获取内核版本信息2.6.18-274.el5 # rhel5u7对应的内核版本1 uname -m # 获取机器信息i686 # 32位2 下载对应的kernel-debuginfo* 包2.6.18-274.el5, i686 需要下载 a) kernel-debuginfo-2.6.18-274.el5.i686.rpm b)kernel-debuginfo-common-2.6.18-274.el5.i686.rpm如果是 64位 在需要下载 a) kernel-debuginfo-2.6.18-2... 阅读全文
posted @ 2013-02-09 13:58 lovegq 阅读 (270) 评论 (0) 编辑
摘要:新街口的 1.云中小雅,也就是商贸55层的旋转餐厅,环境很好,价格也不高,中餐38一人,西餐48一人起。相比较56层可是超便宜哦,而且两小时可以看一圈南京风景,在风和日丽的下午去特别有情调。 2.现在的五星电器四楼,零点西餐厅。感觉有点味道,就是不知道现在还有没有了。那的比萨套餐28,牛排套餐38,有时还有优惠活动。 3.东方楼下的纳百纳pizza自助,唯一中午下午价格一样的自助餐,所以下午去很划算。 4.中央斜对面的大象米线城,米线好吃又便宜。两个人在里面吃10块的酸菜鱼,加两份1块钱的米线就够了。 5.大象米线城旁边,百姓人家韩国烤肉馆。吃烧烤贵一点,不吃烧烤的话单点一份石锅拌饭也能吃饱, 阅读全文
posted @ 2012-04-17 16:25 lovegq 阅读 (143) 评论 (0) 编辑
摘要:Antlr的LL(*)文法不支持左递归,虽然Antlrworks提供了一些自动消除左递归的功能,但是也不是很好用。另外,很多文法文件都包含了(大量的)左递归,比如C99标准里的Grammarpostfix-expression: primary-expression postfix-expression [ expression ] postfix-expression ( argument-expression-listopt ) postfix-expression . identifier postfix-expression –> identifier postfix-expressio... 阅读全文
posted @ 2012-01-17 14:51 lovegq 阅读 (2718) 评论 (4) 编辑
摘要:背景: 在做XXX编译器检证时经常需要区分是代码端错误,还是编译器端错误,因此对代码进行调试是必不可少的。但是狗日的甲方并没有提供对应的调试器XXXDB,而用GDB调试XXX生成的可执行程序很不稳定,经常出现异常,干脆自己动手,写mini调试器,顺便学习一下开发一个调试器到底需要哪些知识。 目标: GDB一共有十几万行代码,95%的功能都用不上。三个最基本的功能:“单步”、“断点”、“查看变量”即可满足日常工作中的大部分需求。并且基于学习、分享的初衷,我尽量把代码控制在千行左右,足够简单,足够傻瓜,最关键的是,老夫没那么时间啊。 预备知识: 先简单解释下调试器的基本原理。 假设调试器... 阅读全文
posted @ 2012-01-16 17:21 lovegq 阅读 (3095) 评论 (5) 编辑
摘要:正巧老夫最近在做C99语法分析的工作,看了<华丽的递归...>的帖子,里面用几个简单的双向递归模拟循环,突然有点儿心得,贴出来分享一下,有错误的地方还请各位看官指正。 先看看3种不同的BNF的产生式,由这三个产生式可以回答二个问题 1 什么样的递归可以用不带栈的循环表示 ? 2 怎么用递归表示循环 ? 1 2 3A : Aa A : aA A : aAb | a | a | c ... 阅读全文
posted @ 2011-12-05 15:38 lovegq 阅读 (2112) 评论 (3) 编辑
摘要:/*============================================================================Name : CDeclaration.gAuthor : luqiVersion : 0.1Copyright : Your copyright noticeDescription : C99 - Declaration - have not tested yet <C99.pdf 6.7>===================================================================== 阅读全文
posted @ 2011-11-30 18:38 lovegq 阅读 (280) 评论 (0) 编辑
摘要:/*============================================================================Name : CExpression.gAuthor : luqiVersion : 0.1Copyright : Your copyright noticeDescription : C99 - Expression - have tested <C99.pdf 6.5> mock type_name and initializer_list rule====================================== 阅读全文
posted @ 2011-11-30 18:37 lovegq 阅读 (217) 评论 (0) 编辑
摘要:/*============================================================================Name : CTokens.gAuthor : luqiVersion : 0.1Copyright : Your copyright noticeDescription : C99 - Lexer - have tested <C99.pdf 6.4>============================================================================*/grammar CT 阅读全文
posted @ 2011-11-30 18:36 lovegq 阅读 (265) 评论 (0) 编辑