原创 Boost::asio範例分析 服務端

   main函數要求程序調用者傳遞3個參數:服務器IP地址,端口號和文檔根目錄.其中IP地址可以是IPv4或IPv6格式.接着創建server對象實例,將傳遞進來的IP地址,端口號,文檔根目錄作爲server對象的構造函數參數傳遞到

原创 boost::asio一個簡單的echo服務器

以前使用ACE實現Server框架,但是覺得太笨重,決定採用boost.asio來寫服務器程序: 1.服務器構建在linux上面;當然也可以在windows下運行 2.io部分採用非阻塞模式、業務邏輯部分採用同步線程池實現 3.封

原创 Gtest使用筆記

項目主頁:http://code.google.com/p/googletest/ 詳細教程:http://www.cnblogs.com/coderzh/archive/2009/04/06/1426755.html 幾點說明:

原创 Boost::asio範例分析 客戶端

  爲了方便描述,這裏只分析一下同步實現,異步實現方式和同步方式的流程是一致的,只是在函數調用的方式上有些區別.分析清楚了同步方式,在看異步實現,也很容易.   這個HTTP範例實現了客戶端向服務端請求文件內容的功能,客戶端給出一個文件名

原创 windbg調試命令5(ln、僞寄存器)

1.ln ln 命令顯示給定地址處的或者最近的符號。 ln表示list near,ln命令將儘可能地給出與特定地址相關的符號,如果沒有符號能夠精確地與這個地址匹配,那麼調試器將通過指針算法對靠近這地址的符號進行運逄, 並返回運算結果符號

原创 windbg調試命令2(!gle、g、p)

!gle 擴展顯示當前線程的最後一個錯誤碼。 這個太好記了,getlasterror取首字母: 0:002> !gle   LastErrorValue: (Win32) 0 (0) - <Unable to get error co

原创 gtest框架的介紹與應用

【摘要】在本文中,作者根據之前使用gtest框架進行測試的經驗,總結了一些使用方式和案例。 在這些案例中,我們可以瞭解到gtest框架的基本使用方法以及在我們日常測試中的應用,同時也能促進我們對於百度的btest的瞭解。在我們之後的測

原创 利用windbg分析dump文件

windbg是windows下一個分析調試的工具,功能非常強大。這裏主要記錄利用windbg來分析windows藍屏時所產生的內存轉儲文件*.dmp。 1,下載: http://www.microsoft.com/whdc/devtool

原创 使用gtest對類進行白盒測試

gtest是一個很好用的測試框架,可以很方便地對函數進行單元測試。主頁:http://code.google.com/p/googletest/一篇好文章,《玩轉Google開源C++單元測試框架Google Test系列》:http:/

原创 Boost::asio io_service 實現分析

io_service的作用 io_servie 實現了一個任務隊列,這裏的任務就是void(void)的函數。Io_servie最常用的兩個接口是post和run,post向任務隊列中投遞任務,run是執行隊列中的任務,直到全部執行完畢

原创 windbg調試命令4(用戶層.dump)

Windbg生成dump文件的方法: 程序崩潰(crash)的時候, 爲了以後能夠調試分析問題, 可以使用WinDBG要把當時程序內存空間數據都保存下來,生成的文件稱爲dump 文件。 步驟: 1) 打開WinDBG並將之Attach

原创 Visual Leak Detector (VLD)使用

Visual Leak Detector (VLD) 1.9h (Beta),點這裏開始下載! Visual C++內置內存泄露檢測工具,但是功能十分有限。VLD就相當強大,可以定位文件、行號,可以非常準確地找到內存泄漏的位置,而且

原创 windbg調試命令1(k、u、x)

k*命令顯示給定線程的調用堆棧,以及其他相關信息 ~0 k表示打印0號線程的調用堆棧,直接用k表示打印當前線程的調用堆棧 kd> ~0k   ChildEBP RetAddr    0007fddc 77d191be ntdll!KiF

原创 windbg調試命令3(sx、ld)

1.sx sx* 命令用來控制被調試的程序發生某個異常或特定事件時,調試器要採取的動作 sx 命令顯示當前進程的異常列表和所有非異常的事件列表,並且顯示調試器遇到每個異常和事件時的行爲。 sxr 命令將所有異常和事件過濾器的狀態重設爲默

原创 Redis分佈式鎖解析

一、分佈式鎖方案比較     二、關於Redis分佈式鎖基礎知識   三、Redis加解分佈鎖的正確姿勢   四、Redis分佈式加鎖的主要流程 產生隨機數,可用UUID,存儲起來,一般存儲在ThreadLocal中,以便解鎖用;