开发工具
Justlinux2010
新浪微博 justlinux2010
展开
-
gdb:不退出程序的情况下打印函数中的局部变量
参考资料:点击打开链接 借助于上面的参考资料,编写自己的脚本工具。参考资料中也是借鉴pstack这个工具,它是用一个脚本,脚本中通过调用gdb来打印当前运行的栈信息,而不用中断程序或手动gdb。更多的信息,还是去看参考资料吧,上面讲的比较详细。 我的脚本如下:#!/bin/shcommand="source key.gdb"readnever=""GDB=${GDB:-/us原创 2013-07-24 17:05:13 · 3542 阅读 · 0 评论 -
gdb:循环打印数组
今天为了精确查看集群中哈希表中每个机器占有的槽位数,所以需要在gdb中进行统计。哈希表是一个大的数组,如果直接使用gdb输出数量太大,而且没法统计。Google了一番,终于找到一种方法,分享一下,也便于日后查看。在gdb的脚本中循环遍历整个哈希表,并且加上判断条件来进行统计,然后输出结果。导入gdb脚本的方式很简单,gdb中输入“source 脚本名”。 我的脚本如下:set $i=32原创 2013-07-24 17:03:18 · 11229 阅读 · 0 评论 -
CentOS下利用sshpass不用手动输入密码远程执行命令
在测试的时候要同时操作多台机器,每次都要挨个去执行几乎相同的命令或者修改一些设置,这样很影响工作效率也很烦,所以就想写一个脚本,远程自动去做这些操作。远程执行命令很简单,但是不能在执行命令加上命令,还得手动输入,放在脚本里肯定不行。Google一番看到了这篇文章《ssh免输密码自动登录》,上面介绍了三种方法。我选择的是sshpass,简单方便,内网测试,也不用考虑安全的问题。不过CentOS发行版原创 2013-08-08 11:10:45 · 5589 阅读 · 0 评论 -
实战RPM包制作
在开发中经常会用到一些rpm包,但是一直没有自己手动制作过。今天在制作的时候意外地还解决了自己以前一直困惑的问题,就是怎么制作rpm debuginfo包,类似CentOS官网那样的debuginfo包。原来在制作rpm时如果没有特殊设置就会在RPMS目录下同时生成rpm包及对应的debuginfo包。 下面总结一下制作rpm包的流程以及遇到的一些问题的解决。 1、配置工作路径原创 2013-08-11 22:10:07 · 9459 阅读 · 0 评论 -
Linux中查看是否是固态硬盘(SSD)
最近在准备测试,需要看看哪些机器挂载的是ssd硬盘,Google了一圈看到了许多方法,但都云里雾里的,不知道怎么确定。ssd硬盘貌似使用的也是scsi接口,所以根据盘符的名称也是判断不出来的。最后群里eric大神告知lsscsi工具,试了一下,非常简单,显示的也很直接,分享一下。废话不多说,直接上图和结果,如下所示:[root@FWD_YF_009_110 ~]# lsscsi原创 2013-08-26 11:57:31 · 31943 阅读 · 1 评论 -
使用perf生成Flame Graph(火焰图)
具体的步骤参见这里: 《flame graph:图形化perf call stack数据的小工具》 使用SystemTap脚本制作火焰图,内存较少时,分配存储采样的数组可能失败,需要编写脚本,还要安装kernel的debuginfo包。使用perf的话,相对来说要简单一些。不过在有kernel的debuginfo包的时候,采样显示的信息要更丰富一些。 为了使用perf制作火焰图方便原创 2013-09-10 11:31:21 · 9029 阅读 · 1 评论 -
Redhat Enterprise 4.3中静态编译perf
注:编译中使用的perf源码和内核版本并不是标准版中的源码,是我们内部的一个版本。这篇文章主要是提供一些思路,在你的环境中编译遇到的问题可能和我这里的不同,源文件或者Makefile文件的内容也会不一致。如果有问题,欢迎交流。 perf是在kernel 2.6.31中才加入到内核树中,较早的发行版本中内核版本都比较老,都没有带perf。如果要使用perf,需要自己去编译。这里进行的是原创 2013-11-11 16:50:50 · 6455 阅读 · 0 评论