原创 Mysql自動超時重連導致的中文亂碼問題

Mysql自動超時重連導致的中文亂碼問題      今天有客戶反應從自選股服務器獲取的自定義板塊中文名稱亂碼,之前一直都是正常的。看到亂碼兩字,頭腦中首先冒出來的就是查看mysql數據庫中的編碼集,輸入SHOW VARIABLES

原创 C++進程間通信之SendMessage和PostMessage

C++進程間通信之SendMessage和PostMessage1,使用介紹2,需要注意的地方3,WM_COPYDATA的原理      SendMessage和PostMessage在Win32編程中是很常見的,主要是用來發送消

原创 TeamTalk客戶端源碼分析五

TeamTalk客戶端源碼分析五一,socket封裝1,StreamingSocket2,ProxySocket二,HttpRequest三,HttpResponse四,HttpClient五,具體功能業務舉例      在上一章

原创 (Windbg調試三)C++ delete指針後依然可以訪問的問題

C++ delete指針後依然可以訪問的問題一,第一個dump分析二,第二個DUMP分析三,VC6.0和VS2015下delete指針驗證四,結論      這兩天在定位一個BUG:我們的程序運行過程中,點擊停止運行,程序偶現無響

原创 (Windbg調試二)Windows下c++程序崩潰問題定位

Windows下c++程序崩潰問題定位一,WinDbg調試二,地址偏移計算驗證三,通過map文件定位程序崩潰代碼行數      Windows下c++程序崩潰問題定位主要依賴於代碼編譯過程中生成的調試信息文件,比如.map和.pd

原创 (Windbg調試四)C++死鎖問題定位與分析

C++死鎖問題定位與分析一,測試代碼二,等待鏈三,死鎖的定位和分析      C++程序異常一般有兩種表現形式:程序崩潰和程序無響應。程序崩潰主要是由指針,數組越界等原因引起,這種情況可以直接通過在程序中加入Dump捕捉邏輯,分析

原创 淺談C++跨模塊釋放內存

淺談C++跨模塊釋放內存一, MT改MD二, DLL提供釋放接口三, 使用進程堆申請內存      在開發主程序和動態庫時,首要原則就是:避免跨模塊申請和釋放內存。這一點,我們在很多開源庫或者平常項目中也都碰到過,對於動態庫中的堆

原创 程序的編譯與鏈接

程序的編譯與鏈接一,預處理二, 編譯1,詞法分析2,語法分析3,語義分析4,中間語言的生成5,目標代碼生成和優化三,鏈接      在日常的應用程序開發過程中,我們很少需要關注軟件的編譯和連接過程,特別是對於常用的集成開發環境vi

原创 在C++使用信號和槽(sigslot庫介紹)

在C++中使用信號和槽(sigslot庫介紹)一,使用場景二,sigslot庫簡介1,參數類型2,信號連接與槽3,信號與槽的斷開4,信號的觸發5,信號的線程安全6,槽的線程安全三,樣例演示 一,使用場景      在編碼過程中,我

原创 const char * 和 std::string.c_str()引起的坑

const char *和std::string.c_str引起的坑一,發現問題二,解決方法 今天早上有同事說調用封裝好的編碼轉換函數,有時候能轉換成功,有時候轉換會失敗,一聽現象我就猜測是用法導致的問題,定位下來果然是用法使用有

原创 VC6.0中std::string析構函數崩潰問題分析

VC6.0中std::string析構函數崩潰問題分析一,問題描述二,std::string源碼分析(VC6.0)三,問題分析與解決 一,問題描述      今天程序停止運行時出現了崩潰,分析dump文件查看堆棧如下:     

原创 套接字描述符的就緒條件

套接字描述符的就緒條件一,套接字可讀二,套接字可寫三,套接字異常四,代碼演示      在使用select,poll,epoll等I/O複用模型時,我們一直在說當某個套接字描述符準備好讀,或準備好寫,或者在描述符上發生一個待處理的

原创 (TeamTalk服務端源碼分析二)Login_server源碼分析

Login_server源碼分析      Login_server是Teamtalk客戶端最先通信的後臺服務程序,客戶端發送請求到login_server獲取到負載最小的msg_server的地址,端口等信息,然後再連接到相應的

原创 (TeamTalk服務端源碼分析三)route_server源碼分析

route_server源碼分析      Route_Server是路由服務器,當存在多個MsgServer時,用戶可能登陸在不同的MsgServer上(由Login_Server進行負載均衡),那麼對於連接在不同的Msg_Se

原创 (Windbg調試八)崩潰捕捉的dump沒有提供堆棧的問題

崩潰捕捉的dump沒有提供堆棧的問題 前兩天客戶現場出現了崩潰,但是程序捕捉生成的dump文件大小爲0kb,沒有辦法只能通過任務管理器創建轉儲文件進行分析。 輸入!analyze -v命令輸出如下: 通過此堆棧信息看不出任何崩潰的