July 2012 Archives

valgrind and throw exception

在C++的代码段中,使用了throw来抛出异常,这是一种非常不好的方法。

log4cpp 1.1.0 patch

改进特征:
1,可扩展的队列接口;
2,可根据时间分卷的Appender;
另外,log4cpp 1.1rc1修复了以前可变参数的问题(会产生coredump)
[cnangel@localhost SOURCES]$md5sum log4cpp-1.1rc1.tar.gz
d79d8b20d429aa799ead24254ba68d5a  log4cpp-1.1rc1.tar.gz
patch补丁:
0001-update-for-cnangel.patch

在Fedora17 i386平台(gcc4.7),使用rpm打包发现一个问题,so文件不包含__atomic_fetch_add_4的符号定义,类似
src/foo/.libs/libfoo.so: undefined reference to `__atomic_fetch_add_4'
提示缺失的符号定义,但是实际上我们已经做了链接,是什么情况导致这个现象呢?通过调试发现在configure之前,rpmbuild做了以下事情:
+ CFLAGS='-O2 -g -march=i386 -mtune=i686'
+ export CFLAGS
+ CXXFLAGS='-O2 -g -march=i386 -mtune=i686'
+ export CXXFLAGS
+ FFLAGS='-O2 -g -march=i386 -mtune=i686'
+ export FFLAGS
定义了build的一系列环境变量,而这个是导致缺失符号定义的最终祸首,具体说是C++标准有变化,C++0x11旧的标准和新标准存在着不一致导致,详情可见http://redmine.openrtm.org/issues/2453,解决办法也很简单,在spec文件的%build段,修改
%configure

%configure CFLAGS="-g -O2" CXXFLAGS="-g -O2"
即可。

openssh and X11 forwarding

一般客户端通过ssh获得可视化的窗口,可以在ssh命令后面加上选项-X或-Y,但是并不是所有的主机都支持可视化,需要在主机上修改/etc/ssh/sshd_config文件:
X11Forwarding yes
若不想影响到所有的用户,也可以对某个用户设置,修改$HOME/.ssh/config文件
Host remotehost
ForwardX11 yes
但在CentOS6.2系统中,会提示:
debug1: Requesting X11 forwarding with authentication spoofing.
debug1: Remote: No xauth program; cannot forward with spoofing.
说明没有X的认证库,需要安装:
yum install xorg-x11-xauth
即可。



因为特殊需求测试,需要将系统时间改到以前某个时间,但是笔者又不想修改当前的系统,于是用virtualbox弄了一个虚拟操作系统,但是仍然无法修改时间,时间与物理机器仍然同步,修改虚拟机器硬件时间,结果直接修改了物理机器的硬件时间,郁闷了。

通过ntpdate修正了物理机器,Google一下,这个是安装了增强包导致的,只需要在物理机器上运行:
VBoxManage setextradata <vmname> "VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled" "1"
即可,记得要先关闭虚拟机哟!

有一位强悍的哥们还直接关闭时间同步的通信通道,详情可见:
http://www.ideaexcursion.com/2008/08/19/synchronize-a-virtualized-domain-controller-with-external-time-servers/

Monthly Archives

Pages

Powered by Movable Type 7.3.1

About this Archive

This page is an archive of entries from July 2012 listed from newest to oldest.

June 2012 is the previous archive.

August 2012 is the next archive.

Find recent content on the main index or look in the archives to find all content.