原创 觀察者模式與Boost.Signals
1) 觀察者模式定義 略,各種設計模式的書上都有定義。 2) 觀察者模式一般實現 觀察者模式一般實現,都是“被觀察者”保存一個“觀察者”的列表,循環這個列表來通知“觀察者”。代碼,其中使用了boost的智能指針shared_ptr
原创 我看過的和想看的C++書籍
(紅色部分爲擁有的書。好想有個書架呀。) 一、純C++: 1、《C++ Primer 第三版》 精讀過很多遍,現在感覺全書拿一個例子來講的這種模式不是很爽。 2、《C++ Primer 第四版》 看過一遍,且有關模板的章節看的
原创 C++反射的一種實現方式
Reflector.h: #pragma once #include <list> class Reflector { public: virtual ~Reflector(); virtual const char* getCl
原创 如何使用多態性數組
1)錯誤的使用多態性數組 詳細請見《More Effective C++》條款3,此處只貼出示例代碼: #include <iostream>#include <string>using namespace std; class B{pu
原创 Solaris Performance and Tools 筆記(未完待續)
分析方法 1. Monitoring. Using a system to record statistics over time. This data may reveallong term patterns that may be
原创 將在mdb裏執行的結果保存到文件中
例如將在mdb裏執行的結果保存到1.txt中 方法1):使用mdb的日誌功能($>命令): >$>1.txt>::nm 方法2):使用!命令: >::nm!cat>1.txt
原创 Solaris10 GCC bus error 一例
Solaris10 GCC bus error 一例 環境: Solaris10 SPARC GCC 4.4.2 背景: 原先代碼使用CC編譯的,是32位程序。有-O2優化。 現在遷移到GCC下,並改爲6
原创 Linux下C++國際化
有關國際化 應用程序國際化的實質是提供一種機制,使其能根據環境變量或配置文件,來指導程序的行爲。當對新的“國家”進行支持時,不用修改代碼,只修改資源文件就可以實現。 例如,“把LANG設爲C,再用vi打開帶中文的文件,中文顯示亂碼”。就是
原创 使用MDB查看變量的值(2)
使用MDB查看變量的值(2) [email protected] 本節描述使用MDB查看core文件中STL變量的知識 一、目的 在《使用MDB查看變量的值(1)》中,我們 探討了查看變量值的一般方法,但是對於複雜的對象,一點一點的查看內
原创 Solaris下使用MDB查看全局變量的值
假設要查看全局變量m_FmSvcMsgQueue的值 1) 得到m_FmSvcMsgQueue mangle後的值: nm libfm.so|c++filt|grep m_FmSvcMsgQueue [8
原创 [Errno 6] No such device or address: '/dev/tty'
調用流程: CruiseControl-->Ant Project-->Python Pexpect-->ssh 發現有的時候會報[Errno 6] No such device or address: '/dev/tty'。至今沒找
原创 一種定位內存泄露的方法(Solaris)
問題: 客戶測試的鏡像環境出現一個3.8G的core文件,查看堆棧發現是new失敗了導致進程abort。因爲是32位應用程序,應該是所有的heap空間都被用光了,導致new失敗。 推測有幾種可能: 1) 內存泄露導致內存耗盡。 2) 有些
原创 關於在32位系統下使用VMware安裝64位系統的問題
最開始是在XP(32位)下安裝的Solaris10(32位)和SUSE11(64位),當時的CPU是閃龍2500+,VMware的版本是7.0.0-203739 後來換了WIN7(32位),VMware重
原创 什麼跨數據庫,都是浮雲
最近在看《Oracle 9i&10g編程藝術》,裏面介紹了Oracle數據庫和其他數據庫的不同。雖然對作者的一些開發觀點不認同,但是就Oracle數據庫本身來說,讓我全新的認識。 現在的感覺是,什麼跨數據庫,都是浮雲。只能做到SQL語法跨
原创 有關CentOS6的man報錯
1)對於找不到的命令,man會報錯: [jing@CentOS locale]$ man abc Cannot open the message catalog "man" for locale "zh_