虛擬繼承記憶體除錯(VC6 0)

2021-06-14 03:52:29 字數 1624 閱讀 8859

類繼承情況如下圖:

**如下:

class a

; int a;

};class b : public virtual a;};

class c : public virtual a;};

class d:public b,public c

;protected:

private:

int val;

};#include using namespace std;

int main()

記憶體布局圖如下:

單步調試圖如下:

圖一 剛剛main函式過後的記憶體棧

圖二 剛剛main函式過後的虛函式表

圖三 單層虛擬多繼承剛到aa時的記憶體棧圖

圖四 單層虛擬多繼承aa執行之後的記憶體棧圖

圖五 單層虛擬多繼承剛到bb時的記憶體棧圖

圖六  單層虛擬多繼承bb執行之後的記憶體棧圖

圖七 單層虛擬多繼承剛到cc時的記憶體棧圖

圖八  單層虛擬多繼承cc執行之後的記憶體棧圖

圖九 單層虛擬多繼承剛到dd時的記憶體棧圖

圖十  單層虛擬多繼承dd執行之後的記憶體棧圖

剛到main函式過後的時候虛函式表就存在了,所以就不用上傳了。

圖十一 虛函式表

vc6 0 除錯小結

現在都用vs2008了,vc6的速度還是很懷念,來個小結吧。斷點相關快捷鍵 1.f9在當前游標所在的行下斷點,如果當前行已經有斷點,則取消斷點.f5除錯狀態執行程式,程式執行到有斷點的地方會停下來.f10單步執行程式.ctrl f10執行到游標所在行.f11和f10的區別是,如果當前執行語句是函式呼...

VC 6 0遠端除錯

先明確下概念,遠端除錯嘛,自然是兩個機器之間除錯。程式執行在目標機器上,偵錯程式執行在本機。當然,目標機器上還是要有少許輔助程式才能跟本機的偵錯程式connect上,以便通訊。一般來說,只需要copy四個檔案到目標機器上就行了 msvcmon.exe dm.dll tln0t.dll和msdis11...

VC 6 0遠端除錯

vc開發環境之所以提供遠端除錯的能力,是因為有些情況下單機除錯會讓你崩潰掉。比如,除錯gui程式的wm paint訊息,因為要單步除錯,所以偵錯程式會對介面的重繪產生 heisenberg不確定性原理 當然還有些別的情況也適用,比如程式在測試環境執行的好好的,但是在客戶那行為總是異常,這時候如果可以...