溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【cocos2dx進階】調試篇(1)基礎介紹

發(fā)布時間:2020-07-07 07:10:06 來源:網絡 閱讀:874 作者:kingzeus 欄目:開發(fā)技術

  好多同學都要求干貨分享,嗯,那我就直接跳過大量的基礎介紹啥的,直接從重點講起,如果有不明白的,請自行google吧,盡可能的我也會給出相關的鏈接,畢竟這個系列不是從零開始的,所以,請見諒。


 從哪里開始,嗯,先從調試器入手吧。cocos2dx是一個跨平臺的游戲引擎,主要的開發(fā)工具支持win32/mac,于是對于調試器我們選擇的余地就大了許多,visual studio,xcode,也可以用eclipse 或者adt下直接用gdb。

【cocos2dx進階】調試篇(1)基礎介紹【cocos2dx進階】調試篇(1)基礎介紹【cocos2dx進階】調試篇(1)基礎介紹


就我個人而言,我還是喜歡visual studio,穩(wěn)定、高效、快速、友好,甚至于在放棄了window轉投mac之后,為了能使用vs來調試特意裝了一個windows的虛擬機。


下面的文章都是圍繞著visual studio展開的,當然運行在win32上。


對于C++程序員來說,內存管理絕對是最重要的一關,各種奇怪的問題都和內存有關。哪怕是多年的老手,一不留意,也會出各種問題。要少出內存問題,一個是寫出高質量的代碼,另外的就是能快速定位到問題的代碼。好,接下來就是干貨時間了,……


【cocos2dx進階】調試篇(1)基礎介紹首先,自然是好好學習下C++,特別是指針相關的內容,知道了為什么才能少犯錯。推薦的是Stephen Prata的《C++ Primer plus》,經典教材,你值得擁有。
提示:
1.《C++ Primer plus》百度百科
2.電子版本自行百度

其次,寫代碼的時候,盡量使用STL的代碼,不要輕易嘗試自己去實現常用的數據結構,一來是容易出錯,二來你寫的肯定沒有STL的效率高。站在巨人肩上才是最應該做的。如果你對C++足夠了解的話,推薦使用boost或者C11里面的智能指針,shared_ptr和weak_ptr能避免大量的內存問題(這個后面說起C11,再詳細說明)。


好了,寫了代碼以后,接下來就是調試了。內存出錯了,捉雞啊,怎么辦?找大牛還是死扛呢?這時候你就需要一些特別的工具了。


首先,自然是vld了。vld全稱Visual Leak Detector,目前最新版本2.3.0,官網地址http://vld.codeplex.com/

vld的好處就是簡單,幾乎不需要做任何修改,裝完了,只要添加一個頭文件,就可以用了。

  • 僅需要把頭文件編譯進工程即可,最好加在main.cpp里(就是有winmain函數的那個文件)

  • 另外,多個dll,需要每個都添加。比如libCocos2d,libCocosDenshion需要分別添加


在程序退出之后,就能看到內存泄露的信息了。

【cocos2dx進階】調試篇(1)基礎介紹

雙擊堆棧信息,可以很直接跳轉函數,方便無比。

好了,說了一堆好處,接下來就是有待改進的地方了:

  • 內存檢測需要在程序退出以后,檢查起來比較麻煩

  • 虛擬機下,使用不太正常。


高級模式其實和vld的原理一樣,可以再代碼接管內存分配器(重載new和delete),然后自己比對分配和釋放的過程。也可以在需要分配的首尾加上自定義的內存塊,這樣可以很方便的監(jiān)控內存越界的問題。


詳細的就不展開了,有興趣的同學可以自己找谷哥度娘。


補充下有關vld的內容:

  • 默認安裝以后,會自動添加相關的目錄,如果不是安裝的話,請手工添到vc的目錄中

  • 運行的時候如果有問題,請把vld根目錄下bin目錄中的幾個文件復制到應用程序目錄



預告下:

下期的調試主要說下常用的一些調試代碼,以及針對2dx調試的一些小改造


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI