-
g+ + 的-O1优化的问题 - [c++]
2012-05-18
昨天编译代码时发现一个奇怪的问题;某一段代码带-g 参数编译后,运行结果错误,带-O3编译时,运行结果正确了;后经debug发现是如下一段代码导致:
//b.cpp
if(getName() == "name")
{
xxxx
}
而getName的定义在另外一个文件里:
//a.cpp
#define NAME ... -
有关linux 下C/C++ 开发的一些工具 - [c++]
2012-05-11
readelf:显示elf 类型可执行文件相关信息
objdump:显示目标文件信息
size:显示文件代码段,数据段,BSS段等大小
file:显示文件类型;
ldd:列出依赖的链接库
nm:列出目标文件的符号表 -
Gossip 协议--分布式系统状态同步协议 - [分布式算法]
2012-02-01
Gossip 是一种被用在分布式的非强一致性系统中用来同步各节点状态的方法。它是一个最终一致性算法。
Gossip被设计成低 CPU开销和低网络带宽占用。因此非常适合大型的 P2P 网络。Gossip周期地随机地选择一个节点并发起一轮 Gossip会话.
两个节点(A、B)之间... -
使用g++做编译连接时:
1. 查找需要连接的符号名是从前向后找,根据-L 制定的路径顺序查找;
2. 不同目录下的同名的库,只取第一个(从前向后),后面同名库被忽略;
3. 查找依赖关系时,只找其后面的库里定义的符号名,不找前面的库;
示例1:libx.a 在 /lib1 ... -
一个奇怪的coredump - [c++]
2011-09-06
如下一段简单的程序为何会coredump呢,先记录下来,以后再查!
有明白人也请指点一下。
#include
#include
#include
#define MAX 17
using namespace std;
bool cmpt(int&nb... -
单元测试用例设计:
1. 验证返回值;
2. 验证对类成员变量的影响;
3. 验证边界条件;
问题:
1. ... -
1. 程序程序的首要原则:不要优化。—— Michael A. Jackson
2. 程序优化的第二原则——只为专家准备:还是不要优化。 —— Michael A. Jackson.
3.... -
优秀项目经理的七个习惯 - [项目管理]
2010-03-21
(1)确定项目目标,坚持不懈地向团队传达并达成目标
(2)崇拜质量,质量监控。BVT
(3)每天都和项目成员聊上两句,跟踪遇到的问题,
从中发现风险存在的蛛丝马迹。
观察细节,适时机的鼓励和表扬。
(4)敢于说不,慎于说不。需求变更?设计变更?
(5)帮助项目成员解决困难,而不是帮他干活。
&nbs... -
vector<int>().swap(v); 和clear() 的差异 - [STL]
2010-02-11
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int
main(int argc, char *argv[])
{
vector<int> v;
cout<<"begin..."<<endl;
... -
二维vector的reserve操作引起coredump - [c++]
2010-02-10
#include <iostream>
#include <vector>
using namespace std;
int
main(int argc, char *argv[])
{
... -
linux 内存初探 - [linux 内存]
2010-02-02
VIRT= RES+SWAP
RES != CODE +DATA
普通读取文件不会让进程的内存有变化;只是操作系统的cache可能会有变化;
但是读取mmap则不一样了:
mmap打开之后,VIRT会增加mmap file的大小;
但RES不会变化;DATA和CODE也不会变化;真正开始读mmap内的数据后,RES会开始增长,但是VIRT不会变了;
... -
linux进程间通信之使用信号传递附加信息 - [c++]
2009-01-23
=========signalRecv.cpp==========
#include <iostream>
#include <signal.h>
using namespace std;
#define SIZE 10
char g_res[SIZE];
int g_signum=-200;
int g_error=-200;
int g_code... -
使用STL中容器的erase()函数一个易犯的错误 - [c++]
2008-08-27
使用STL中容器的erase()函数一个易犯的错误 问题由来:你能看出以下程序的一个致命性错误吗?/******************************************************************** 函数功能:首先打印1~12,然后要求用户输入一个1到12 间的整数i, * 去除1~12中是i倍数的数,最后打印结果。**************...
-
一个让Linux系统立即宕机的shell - [linux shell]
2008-08-27
这是一个典型的通过不停的fork子进程,使得系统资源耗尽让系统宕机的方法:
(这个简单的shell不是我自己写的,引自其他文章)
:() { :|:& }; :
:函数名叫做冒号
()表示定义一个函数
{};表示定义的函数体
:|:& 递归调用该函数并在后台运行
最后一个冒号表示调用该函数... -
unix系统下date命令的使用差别 - [linux shell]
2008-08-27
linux:
date -d "-1 day" "+%Y%m%d"
date -d "-1 hour" "+%H"
date +[%Y-%m-%d\\ %H:%M:%S]
freeBSD:
/bin/date -v -10M "+%Y%m%d%H%M" -
利用python检查C++的so动态库文件是否编译完全 - [c++]
2008-08-27
经常linux/unix下的动态链接库so文件编译能通过,但是运行时会报链接错,说缺少xxx。可以利用python简单检查缺少哪些东西;
利用python检查C++的so动态库文件是否编译完全:
python
import dl
dl.open("动态库路径名");例如:
dl.open("./bid_b2bkw.so");
&... -
apache module 调试方法 - [c++]
2008-08-27
apache调试:
gdb /usr/local/apache2/bin/httpd
b ap_process_request
run -X -d /usr/local/apache2 -f /apapche/conf/file/path/httpd.conf
在需要的地方设置断点:
b filename:lineno thread # if condition
-
【转】一段mmap示例代码 - [c++]
2008-02-03
/*-------------map_normalfile1.c-----------*/ #include #include #include #include
typedef struct{ char name[4]; int age; }people;
main(int argc, char** argv) // map a normal file as shared mem:
{
in... -
src.rpm包的安装方法
2008-01-24
今天需要给xml包升级,下载了一个src.rpm的包。遂查了一下如何应用该类型的包:
补充一下src.rpm包的安装方法(假定使用root账户):
第一种方法 -- 将src.rpm包转换成rpm包再进行安装
代码:1. rpmbuild --rebuild filename.src.rpm #生成rpm包 2. cd /usr/src/redhat/RPMS/i386 #在该目录找到生成的rpm包 3. rpm -Uvh filen... -
ip地址和十进制数的转化 - [c++]
2007-12-29
这几天单位一个同事测试,需要不停的将十进制数转化为ip地址,做法就是用Windows附件里的“计算器”工具,把十进制数输入,转化为2进制数,在四位四位的改写成人可读的四段ip地址;看她不厌其烦的重复着这么复杂的劳动;而且又是在测试我写的程序,真是于心不忍。遂写了个简单的ip地址和十进制数的转化工具。
源码: intToIP程序源代码 -
动态连接库的创建与应用 - [c++]
2007-12-19
1. 编写正确的.h头文件,以便用户可以引用。
2. 编译时需要带 -share 选项
3. 编译的动态连接库名字要符合如下规则:libxxx.so.[version]
4. 修改配置文件--/etc/ld.so.conf,加入生成的so文件的路径
5. 拷贝动态链接库到系统共享目录下,或在系统共享目录下为该动态链接库建立个连接(硬连接或符号连接均可,常用符号连接). 或者 将动态链接库所在目录名追加到动态链接库配置文件/etc/ld.so.conf中.... -
女朋友经典语录
2007-09-28
某日遇到问题郁闷中,女朋友安慰说:“别郁闷了也没用”! 还解释说得益于英语里的从句语法。我晕! -
一个不错的blog
2007-09-20
一个不错的blog,主要是关于前端开发的:
http://www.lewislv.org
-
关于通马桶的问题
2007-09-08
马桶每天都要清!
c++缓冲区溢出;
freebsd和linux编译环境的差别
笔记本呢丢了,郁闷!










