class CDebugSection{ public: char szNowFilePath[MAX_PATH]; char *buffer; int length; //////////////////////////////////// // デバッグ用の固有情報 //イメージベース DWORD dwImageBase; //リライタブルセクションのRVA DWORD dwRVA_RWSection; //コードセクションのRAVとサイズ DWORD dwRVA_CodeSection; int SizeOf_CodeSection; //インクルード情報 INCLUDEFILEINFO IncludeFileInfo; //ソースコード char *pBaseBuffer; char *basbuf; //コードと行番号の関係 int MaxLineInfoNum; LINEINFO *pLineInfo; // クラス情報 CDBClass *pobj_DBClass; //定数を取得 CONSTINFO **ppConstHash; //グローバル実行領域のサイズ int GlobalOpBufferSize; //プロシージャ UserProc **ppSubHash; int SubNum; UserProc *pSub_DebugSys_EndProc; //ネイティブコードバッファ char *OpBuffer; //シングルステップ用コードバッファ char *SingleStepCodeBuffer; //ブレークポイント用コードバッファ char *BreakStepCodeBuffer; //////////////////////////////////// CDebugSection(); ~CDebugSection(); void make(void); private: void UpdateBreakPoint(void); char *MakeSingleStepCode(void); BOOL __load(void); public: BOOL load(HMODULE hModule); void choice(void); void DeleteDebugInfo(void); }; class CDBDebugSection{ public: CDebugSection **ppobj_ds; int num; CDebugSection *pobj_now; CDBDebugSection(); ~CDBDebugSection(); BOOL add(HMODULE hModule); void del(HMODULE hModule); void choice(int index); }; extern CDBDebugSection *pobj_DBDebugSection;