江边闲话集

Hello, Memory Leak

已经有3年没有认认真真写过C/C++程序。即使是写,也是写些小程序。 因为项目的需要,与C/C++再续前缘。令人崩溃的是,我写的程序居然出现内存泄漏,直接吐血。以前,也有一次出现过内存泄漏问题,记得当时写的是一个monitor工具,一直运行在机器上,有意思的是每次执行泄漏4个字节。原因后来找到了,都是CString惹的祸啊。 这次的情况和上次不一样,没那么简单,一直用到其他库,二是因为自己对这门语言开始生疏了,造成了很大的问题。今天一口气将其解决掉,经验分享如下。 如何知道内存泄漏? 我是用VS.NET 2003开发的,该工具挺好的,当我调试时然后关闭应用程序,在output窗口就会显示,例如, Detected memory leaks! Dumping objects -> {10381} normal block at 0x01C76F40, 4 bytes long. Data: <  t > EC 9C 74 00 {9443} normal block at 0x01C37D68, 4 bytes long. Data: <  t > EC 9C 74 00 Object dump complete. 说实话,上面提示只能告诉你内存泄漏存在,而且泄漏多少,但是没有告诉你在哪里泄漏。还好,一个开源的小工具能够帮助我们定位到具体位置。这个工具就是Visual Leak Detector , 至于如何使用,网上文章特多,在这里我还是简要说明一下。 将include文件放在系统的include下,如果使用VS,那就放在VS的include下。 将lib文件放系统的lib下,如果使用VS,就放在VS的lib下。 在需要的源文件引用一下就可以了,例如#include<vld.h> […]

继续阅读...

基础还是真重要的

一些知识太久不用,发现自己都快遗忘了。上周和某位同学一起聊天,谈到了一些最基本的知识,因为自己的生疏,或者不懂,搞得自己有些尴尬。为了改变这一现状,还是先熟悉一下例我远去的基础知识吧。 今年来自己状态也不是特别好,总被这样那样的事情分心,所以也没有时间去整理一下。事实上,与其说这样的理由,还不如说自己因为一些事情导致自己心都懒惰了,所以这些知识才离我远去,突然想起刚毕业那会和一年前那种干劲,真的很怀恋。 话不多说,是时候捡起来了。马上行动,先写一个计划吧。

继续阅读...

给NetBean For Ruby安装Fast Debugger

心血来潮,发现自己的Netbean IDE for ruby已经很老了,于是想更新一下。 用就用最新的,到这里下载了一个最新的NB 6.5 beta版本: http://bits.netbeans.org/download/trunk/nightly/latest/ 下载2分钟,安装1分钟,导入工程1分钟。然后点击调试按钮0.1s,系统居然提示我安装fast debugger 0.3版本。直接在IDE上安装了,等了N久就是安装不上。 接着在命令行飞快输入: gem install ruby-debug-ide -v ‘0.3.2’ –include-dependencies 等了半天,居然出现如下结果: INFO: `gem install -y` is now default and will be removed INFO: use –ignore-dependencies to install only the gems you list Bulk updating Gem source index for: http://gems.rubyforge.org/ 于是在美国的服务器上试了一把,结果是没问题。看来是我们这边网络有问题呀。设置好socket代理,嘿,我也不知道怎么在gem下设置socket代理,只知道设置http代理。无果,只能下载gem文件安装了。 Google了一把, ruby-debug-ide居然在Debug Commons里面。链接是:http://rubyforge.org/frs/?group_id=3085 因为ruby-debug-ide依赖ruby-debug-base,所以不得不找它。后来发现在ruby-debug这里,链接是http://rubyforge.org/frs/?group_id=1900 注意,如果你在windows安装,ruby-debug-base必须安装windows版本的。 一切搞定。要不是公司网络问题,我还不知道ruby-debug-ide的包究竟在哪里。 接下来想研究一下它是如何给ruby设置hook的。

继续阅读...

7Zip的格式

我一直使用7Zip,今天下载了7Zip的代码,才知道7Zip的格式。所以将之Copy到这里。 7z Format description (2.30 Beta 25)———————————– This file contains description of 7z archive format. 7z archive can contain files compressed with any method.See “Methods.txt” for description for defined compressing methods. Format structure Overview————————- Some fields can be optional. Archive structure~~~~~~~~~~~~~~~~~  SignatureHeader[PackedStreams][PackedStreamsForHeaders][  Header   or   {    Packed Header    HeaderInfo  }] Header structure~~~~~~~~~~~~~~~~  {  ArchiveProperties  […]

继续阅读...

Nginx+Mongrel+Rails配置摘要

Nginx+mongrel+Rails配置的方案很多,在这里只摘抄Nginx的配置文件,然后解释一下   user www www;#用户名和组都为www,前者为用户名,后者为用户组。如果主进程以root来运行,                            #nginx使用setuid()/setgid() 。如果没有指定组,nginix使用和用户名相同的组名。   worker_processes  10;  #worker 进程数     error_log  logs/error.log debug;   #错误日志文件,debug为级别 ,                                                    #有debug , info , notice ,warn ,error ,crit   pid        /var/run/nginx.pid;  #nginx的进程位置   events {       use epoll;     worker_connections  51200;   //worker连接数  }   http {      include       conf/mime.types;      default_type  application/octet-stream;     #charset  utf-8;  sendfile        on;   […]

继续阅读...