摘要: autoconf生成的编译选项默认是"-g -O2"。这个"-g"选项将我迷惑了,以为生成了GDB调试所需的信息,所以也就没有管后面的"-O2“选项。实际上在用GDB进行调试的时候,单步跟踪代码,GDB显示的代码非常混乱。要么某些代码行未显示,要么中间插入了很多看起来像库函数的代码。甚至有时检查变量值都不对,但是根据此变量生成的后续结果却是正确的。查看GCC文档,发现-g与-O选项虽然允许同时使用,但是会产生"surprise”的结果。为了方便开发阶段的调试工作,需要给autoconf添加一个调试选项来控制其生成的编译选项。这可以通过 阅读全文
posted @ 2013-07-27 15:43 离小木 阅读(774) 评论(0) 推荐(0) 编辑
摘要: 一直使用CentOS作为服务器系统,平时装完系统以后都是建立publickey认证机制,然后关闭密码认证。原本是一件轻车熟路毫无压力的事情,不想前日新装一台机器按照正常配置以后居然使用publickey方式认证不成功,但是使用密码认证是可以的。 具体现象表现为使用SecureCRT登陆时,出现如下出 阅读全文
posted @ 2013-07-27 15:14 离小木 阅读(7548) 评论(0) 推荐(0) 编辑
摘要: 场景机器A上的一个模块连接机器B上的MySQL,在实验室网络环境下正常;同样A、B两台机器,网络环境切换为与外界隔离的一个小型局域网环境,A上的模块与B上MySQL建立连接非常慢。环境SuSE 11 x64,MySQL 5.1分析A上的模块启动以后长时间无响应,不能提供服务,由于模块代码编写不具备充分的调试信息,不知道程序阻塞在什么地方。于是,使用gdb进行调试,中断程序以后,执行bt查看调用栈,程序调用mysql_real_connect与MySQL建立连接,在mysql_real_connect中调用read接收MySQL服务器返回的数据,程序就卡在read调用上。在A上用telnet连接 阅读全文
posted @ 2013-07-27 14:59 离小木 阅读(1289) 评论(0) 推荐(0) 编辑
摘要: 场景 在Hudson中新建一个Job用于构建Web工程,在Job的构建脚本的最后会启动Jetty,观察发现Jetty启动之后一小段时间,进程就终止了。 环境 CentOS 6,Hudson 3.0.1,Jetty 8,Oracle JDK 1.6 分析 刚开始在Job中启动Jetty的方式是在Ant 阅读全文
posted @ 2013-07-27 14:56 离小木 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 环境 CentOS 6 x86_64, Oracle 11g R2 方案 Oracle在$ORACLE_HOME/bin目录下提供了dbstart和dbshut两个脚本来启动和停止Oracle。dbstart脚本将启动指定的数据库实例和Listener。 首先,修改/etc/oratab,把要自动启 阅读全文
posted @ 2013-07-27 14:46 离小木 阅读(613) 评论(0) 推荐(0) 编辑