- 博客(36)
- 收藏
- 关注
转载 GDB常用命令使用说明
GDB(GNU Debugger)是在Unix以及类Unix系统下的调试工具。功能极其强大,几乎涵盖了你所需要的全部功能。 GDB主要帮忙你完成下面四个方面的功能: 1.启动你的程序,可以按照你的定制要求随心所欲的运行程序。 2.可让被调试的程序在你所指定的调置的断点处停住。 3.当程序被停住时,可以检查此时你的程序中所发生的事,以及内存状态等。 4.动态的改变你程序的执行环境。 gdb使用总旨:...
2018-04-19 19:58:26
216
转载 CentOS下安装gperftools优化nginx
一、下载软件包http://mirror.yongbok.net/nongnu/libunwind/libunwind-1.1.tar.gz #下载libunwindhttps://gperftools.googlecode.com/files/gperftools-2.0.tar.gz #下载gperftools上传软件包到服务器的/usr/local/src目录下面二、安装g...
2018-02-20 20:52:12
1296
转载 gdb attach 进程调试
gdb调试正在运行的进程:GDB可以对正在执行的程序进行调度,它允许开发人员中断程序 并查看其状态,之后还能让这个程序正常地继续执行(gdb) attach xxxxx --- xxxxx为利用ps命令获得的子进程process id(gdb) stop --- 这点很重要,你需要先暂停那个子进程,然后设置一些断点和一些Watch(gdb) break 37 -- 在res
2017-12-09 22:07:27
3857
转载 shell中的${},##和%%的使用
假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个/及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个/ 及其左边的字符串:my.file.txt${file#*.}:删掉第一个. 及其左边的字符串:file
2017-11-13 13:09:16
442
转载 ubuntu 安装和卸载mysql
1. 删除mysqla. sudo apt-get autoremove --purge mysql-server-5.0b. sudo apt-get remove mysql-serverc. sudo apt-get autoremove mysql-serverd. sudo apt-get remove mysql-common (非常重要)上面的其实有一些是多余的
2017-10-09 12:17:04
184
转载 c++11 实现信号量
简单来说,就是信号量太容易出错了(too error prone),通过组合互斥锁(mutex)和条件变量(condition variable)可以达到相同的效果,且更加安全。实现如下:class Semaphore {public: Semaphore(long count = 0) : count_(count) { } void Signal() { b
2017-07-25 16:38:21
2532
2
原创 自用 importance 最近
一、http://wilburding.github.io/blog/2013/04/07/c-plus-plus-11-atomic-and-memory-model/二、https://segmentfault.com/a/1190000003004734三、https://my.oschina.net/xlplbo/blog/343242
2016-12-21 10:35:45
294
原创 valgrind 自用
/grid/common/pkgs/valgrind/latest/bin/valgrind--leak-check=full --log-file=valgrind_%p.log--undef-value-errors=yes --track-origins=yes--show-reachable=yes --trace-children=yes /vobs/spectre_dev/
2016-09-15 13:41:11
302
转载 Perl 中的正则表达式
原文出自: http://263.aka.org.cn/Lectures/002/Lecture-2.1.2/perl-reg.html 感谢AKA及作者。 9 Perl 中的正则表达式正则表达式的三种形式 正则表达式中的常用模式 正则表达式的 8 大原则 正则表达式是 Perl 语言的一大特色,也是 Perl
2016-02-16 11:29:33
335
转载 C++使用STL:慎重选择删除元素的方法
关于要删除容器中元素要选用什么样的方法(因为不同的容器所支持或删除的方法效率不同),总结如下:假设容器:Containerc;1)要删除容器中中有特定值的所有对象:如果容器是vector、string或deque,则使用erase-remove习惯用法:c.erase(remove(c.begin(),c.end(),1963),c.end());
2016-02-04 17:10:23
506
转载 正则表达式
9.1 正则表达式的三种形式首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:匹配:m/;/ (还可以简写为 /;/ ,略去 m)替换:s/;/;/转化:tr/;/;/这三种形式一般都和 =~ 或 !~ 搭配使用(其中 "=~" 表示相匹配,在整条语句中读作 does,"!~" 表示不匹配,在整条语句中读作 doesn't),并在左侧有待
2016-02-01 16:15:16
276
转载 callgrind 使用
一. Valgrind安装说明:先从http://valgrind.org/上将安装包down下来(使用3.2.0及以上版本),然后进行安装:./configure make make install (as "root" if needed) 二. 使用valgrind进行性能瓶颈定位:1.先将服务器运行
2016-01-18 14:50:16
2432
转载 git 自用
105 14:42 git checkout -t -b warning cme/master 107 14:42 git add ast 110 14:42 git commit -m "remove warning of cst" 112 14:43 git rebase 114 15:52 git diff ast/synthes
2015-12-29 15:35:28
444
转载 stl 总结
关于vector:a. erase()函数,只能删除内容,不能改变容量大小;erase成员函数,它删除了itVect迭代器指向的元素,并且返回要被删除的itVect之后的迭代器,迭代器相当于一个智能指针。b. clear()函数,只能清空内容,不能改变容量大小c. vector容器删除不自动释放内存,那么它存在内存泄露???不是的,vector在析构函数的时候,对内存进行了释放
2015-12-17 14:56:18
298
转载 templ 自用
template class NameComparator{public: inline bool operator()(const T* s1, const T* s2) const { return s1->getName() getName(); }};class IdComparator{public: i
2015-11-18 17:05:25
449
转载 map 使用
std::map mOptions;string OptionManager::GetStringVal(const char* option){ if(mOptions.count(option) > 0) { return mOptions.at(option).GetValue(); } else {
2015-10-10 10:36:19
339
转载 valgrind工具之massif
今天小试了一把valgrind的massif工具。Massif在valgrind中的介绍是这样的:MassifMassif is a heap profiler. It performs detailed heap profiling by taking regular snapshots of a program's heap. It produces a graph s
2015-09-23 14:54:58
1928
原创 单列模式例子
AstPara* AstPara::getInstance(){ if (_mapPara == NULL) _mapPara = new AstPara(); return _mapPara;}class 内包含AstPara* _mapPara;静态成员变量,构造函数设为privateprivate: AstPara();
2015-08-26 16:13:23
333
转载 shared_ptr 例子
template class ITERATOR_CLASS GeneralIterator{public: explicit GeneralIterator(IteratorBase* iter): _iter(iter) {} GeneralIterator(const GeneralIterator& other) { this->_iter = other._
2015-08-25 15:14:25
545
转载 虚函数问题
inline, static, constructor三种函数都不能带有virtual关键字。inline是编译时展开,必须有实体;static属于class自己的,也必须有实体;virtual函数基于vtable(内存空间),constructor函数如果是virtual的,调用时也需要根据vtable寻找,但是constructor是virtual的情况下是找不到的,因
2015-07-28 15:39:42
431
转载 gdb 多线程
gdb 调试跟踪多进程程序gdb只能跟踪一个进程(默认是跟踪父进程),而不能同时跟踪多个进程,可以设置gdb跟踪父进程还是子进程, 命令如下:set follow-fork-mode parent 跟踪父进程, 默认set follow-fork-mode child 跟踪子进程
2015-07-27 19:17:01
521
转载 vim正则表达式
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节。一、使用正则表达式的命令使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。:
2015-07-20 14:06:18
329
原创 优先级队列的实现
#include#include#include#include#include using namespace std;template void HeapAdjust (vector &array, int s, int m){ int temp,j; temp = array[s]; for (j=
2015-06-11 18:04:31
396
转载 linux 后台运行,终止
http://www.cnblogs.com/kaituorensheng/p/3980334.htmlhttp://blog.youkuaiyun.com/calm__down/article/details/6334382http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/
2015-06-01 10:14:47
301
原创 repo 自用
$ repo init -ussh://xizhimen:29418/primace/manifests.git -b -g -p -m $ repo sync
2015-05-21 14:10:48
320
转载 git使用命令 git checkout -b a 与 git branch a区别
创建分支: $ git branch mybranch切换分支: $ git checkout mybranch创建并切换分支: $ git checkout -b mybranch更新master主线上的东西到该分支上:$git rebase master切换到master分支:$git checkout master更新mybranch分支上的东西到master
2015-05-14 15:36:14
1016
转载 虚函数和抽象类
在基类中的某成员函数被声明为虚函数后,在之后的派生类中科以重新来定义它。但定义时,其函数原型,包括返回类型、函数名、参数个数、参数类型的顺序,都必须和基类中的原型完全相同。其实在上述修改后的示例代码里,只要在基类中显式声明了虚函数,那么在之后的派生类中就需要用virtual来显式声明了,可以略去,因为系统会根据其是否和基类中虚函数原型完全相同来判断是不是虚函数。因此,上述派生类中的虚函数如果不显式
2015-02-27 18:23:28
1153
转载 Eclipse下编写C++程序——CDT环境搭建
很多从事C++开发的人员都选择VS作为开发平台,其实用Eclipse开发C++也是可以的。下面就讲解如何使用Eclipse的CDT搭建标准的C/C++开发环境。1、简要介绍: 我们知道程序由源代码到最后生成可运行程序需要经过以下步骤:编辑->编译->连接。Eclipse就是编辑器,为了能编译C/C++源代码我们还需要一个编译器,这里我们选择minGW。 对于Ec
2015-02-27 11:06:15
413
转载 内联函数不宜使用情况介绍
C++语言中的各种应用是一个非常高深的内容,其中的语法、特性、标准类库都是我们值得深入研究的内容。C++内联函数就是其中一个比较重要的内容。我们在这里总结了一下C++内联函数不宜使用的环境。内联能提高函数的执行效率,为什么不把所有的函数都定义成C++内联函数?如果所有的函数都是内联函数,还用得着“内联”这个关键字吗?内联是以代码膨胀(复制)为代价,仅仅省去了函数调用的开销,从而提高函数的执
2015-02-25 19:20:59
4234
转载 Valgrind简单用法
Valgrind的主要作者Julian Seward刚获得了今年的Google-O'Reilly开源大奖之一──Best Tool Maker。让我们一起来看一下他的作品。Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,它包含一个内核──一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务──调试,分析,或测试等。Valgrind可以检测内存泄漏和内存违例,
2015-02-13 09:37:27
290
转载 C++类中的static数据成员,static成员函数
C++类中谈到static,我们可以在类中定义static成员,static成员函数!C++primer里面讲过:static成员它不像普通的数据成员,static数据成员独立于该类的任意对象而存在,每个static数据成员是与类关联的对象,并不与该类的对象相关联!这句话可能比较拗口,其实可以这么理解:每个static数据成员可以看成是类的一个对象,而不与该类定义的对象有任何关系!下面我们就来具体
2015-02-11 18:12:33
272
转载 C++中引用(&)的用法和应用实例
对于习惯使用C进行开发的朋友们,在看到c++中出现的&符号,可能会犯迷糊,因为在C语言中这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法。在 c++学习提高篇(3)---隐式指针的文章中我详细介绍了在隐式指针&的用法,其实这两个概念是统一的。引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活
2015-02-09 16:35:40
283
转载 Vim命令总结
高级一些的编辑器,都会包含宏功能,vim当然不能缺少了,在vim中使用宏是非常方便的::qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,
2014-11-25 10:48:20
341
转载 namespace
namespace中文意思是命名空间或者叫名字空间,传统的C++只有一个全局的namespace,但是由于现在的程序的规模越来越大,程序的分工越来越细,全局作用域变得越来越拥挤,每个人都可能使用相同的名字来实现不同的库,于是程序员在合并程序的时候就会可能出现名字的冲突。namespace引入了复杂性,解决了这个问题。namespace允许像类,对象,函数聚集在一个名字下。本质上讲namespace
2014-11-19 16:45:04
357
转载 vi / vim 删除以及其它命令
删除一行:dd 删除一个单词/光标之后的单词剩余部分:dw 删除当前字符:x 光标之后的该行部分:d$ 文本删除dd 删除一行d$ 删除以当前字符开始的一行字符 ndd 删除以当前行开始的n行dw 删除以当前字符开始的一个字ndw 删除以当前字符开始的n个字 D
2014-10-08 16:06:59
456
转载 vim显示行号、语法高亮、自动缩进的设置
在UBUNTU中vim的配置文件存放在/etc/vim目录中,配置文件名为vimrc 在Fedora中vim的配置文件存放在/etc目录中,配置文件名为vimrc在Red Hat Linux 中vim的配置文件存放在/etc目录中,配置文件名为vimrcset nocompatible "去掉有关vi一致性模式,避免以前版本的bug和局限
2014-09-30 15:14:20
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人