07 2015 档案

摘要:本文通过研究STL源码来剖析C++中标准模板块库std::string运行机理,重点研究了其中的引用计数和Copy-On-Write技术。平台:x86_64-redhat-linuxgcc version 4.4.6 20110731 (Red Hat 4.4.6-3) (GCC)1. 问题提出最近... 阅读全文
posted @ 2015-07-31 16:41 枪侠 阅读(369) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.csdn.net/wangeen/article/details/14230171attach是GDB一种重要的debug模式,在MPI程序debug中发挥重要的作用。具体的执行步骤如下:1) 首先在程序开始的地方添加如下代码, 注意这是个死循环,之所以用死循环就是让他一... 阅读全文
posted @ 2015-07-30 15:22 枪侠 阅读(566) 评论(0) 推荐(0) 编辑
摘要:转自:http://www.spongeliu.com/linux/howgdbwork/还是面某M的时候,面试官问我:“用过gdb么?” 答:“用过,调了两年bug了”。“那好,给我解释下gdb是怎么工作的?或者说跟内核什么地方有关系?”。是阿,gdb凭什么可以调试一个程序?凭什么能够接管一个程... 阅读全文
posted @ 2015-07-30 15:18 枪侠 阅读(991) 评论(0) 推荐(1) 编辑
摘要:转:http://blog.chinaunix.net/uid-13982689-id-34282.html先下载gdb_stl_utils.tar.gz, extract it, and run make. This will compile and install the necessary f... 阅读全文
posted @ 2015-07-30 14:00 枪侠 阅读(5610) 评论(0) 推荐(0) 编辑
摘要:转:http://blog.csdn.net/haoel/article/details/2883查看运行时数据——————— 在你调试程序时,当程序被停住时,你可以使用print命令(简写命令为p),或是同义命令inspect来查看当前程序的运行数据。print命令的格式是: print p... 阅读全文
posted @ 2015-07-30 13:56 枪侠 阅读(302) 评论(0) 推荐(0) 编辑
摘要:前面几篇谈GDB调试程序的帖子,都对反汇编语焉不详。这里详细讨论一下disassemble/disass命令反汇编一个函数disass func_name反汇编一段内存地址, 第1个参数是起始地址,第2个是终止地址disassemble 0×0 0×10先看看文档 Debugging with GD... 阅读全文
posted @ 2015-07-28 16:30 枪侠 阅读(12923) 评论(0) 推荐(1) 编辑
摘要:PS:组合关系:实心,一个类A属于另一个类,或多个类,但是类A不能单独存在去使用,A一般是一种抽象的东西聚合关系:空心,一个类A可以单独存在使用不论组合聚合,A的方法都会被直接调用。看懂UML类图和时序图这里不会将UML的各种元素都提到,我只想讲讲类图中各个类之间的关系; 能看懂类图中各个类之间的线... 阅读全文
posted @ 2015-07-13 10:38 枪侠 阅读(465) 评论(0) 推荐(0) 编辑
摘要:条件语句可以根据一个变量的值来控制make执行或者忽略Makefile的特定部分。条件语句可以是两个不同变量、或者变量和常量值的比较。要注意的是:条件语句只能用于控制make实际执行的makefile文件部分,它不能控制规则的shell命令执行过程。Makefile中使用条件控制可以做到处理的灵活性... 阅读全文
posted @ 2015-07-10 17:00 枪侠 阅读(487) 评论(0) 推荐(0) 编辑
摘要:1、在Makefile中只能在target中调用Shell脚本,其他地方是不能输出的。比如如下代码就是没有任何输出:VAR="Hello"echo "$(VAR)"all: .....以上代码任何时候都不会输出,没有在target内,如果上述代码改为如下:VAR="Hello"all: e... 阅读全文
posted @ 2015-07-09 17:58 枪侠 阅读(6532) 评论(0) 推荐(0) 编辑
摘要:第一种方法:#%*,#即截取变量前的字符(左向右截取),%表示截取后面字符(右向左截取),*匹配符var=foodforthought.jpg${varible##*string} 从左向右截取最后一个string后的字符串运行:echo ${var##*fo}结果:rthought.jpg${va... 阅读全文
posted @ 2015-07-09 17:55 枪侠 阅读(1419) 评论(0) 推荐(0) 编辑
摘要:内容目录:find 文件查找grep 文本搜索xargs 命令行参数转换sort 排序uniq 消除重复行用tr进行转换cut 按列切分文本paste 按列拼接文本wc 统计行和字符的工具sed 文本替换利器awk 数据流处理工具迭代文件中的行、单词和字符本文将介绍Linux下使用Shell处理文本... 阅读全文
posted @ 2015-07-09 17:46 枪侠 阅读(194) 评论(0) 推荐(0) 编辑
摘要:可读写的缓冲1. 使用vector作为内部实现2. 定义前插区,可读区,后插区,用动态整数下标标记位置,其中下标满足 0<= readIndex <= writeIndex <= size()3. 定义初始化时前插的大小,和后插的大小,比如 readIndex = writeIndex = 8, s... 阅读全文
posted @ 2015-07-07 11:28 枪侠 阅读(192) 评论(0) 推荐(0) 编辑
摘要:就普通的操作而已分配栈空间仅仅是一个指针操作, 在汇编中的操作如下,这样就分配了6个字节的空间1sub esp, 0x06利用内存池来申请堆空间在性能上才有可能在性能赶上栈。 而且申请堆的空间很可能在cache上。对内存分配需要根据你的申请空间大小,内存碎片情况等的影响,性能上比栈差一些。栈如何获得... 阅读全文
posted @ 2015-07-06 17:47 枪侠 阅读(425) 评论(0) 推荐(0) 编辑
摘要:from: http://blog.csdn.net/david_xtd/article/details/8012627问题:有很多方式可以执行脚本,1)。source test.bsh2)。. test.bsh3)。chmod a+x test.bsh;./test.bsh4)。sh test.b... 阅读全文
posted @ 2015-07-06 11:28 枪侠 阅读(797) 评论(0) 推荐(0) 编辑