source: dev/trunk/abdev/BasicCompiler_Common/DebugSection.h@ 265

Last change on this file since 265 was 265, checked in by dai_9181, 17 years ago
File size: 1.8 KB
Line 
1#pragma once
2
3#include <jenga/include/smoothie/Source.h>
4
5#include <Compiler.h>
6
7class CDebugSection{
8public:
9 char szNowFilePath[MAX_PATH];
10
11 char *buffer;
12 int length;
13
14
15 ////////////////////////////////////
16 // デバッグ用の固有情報
17
18 //イメージベース
19 DWORD dwImageBase;
20
21 //リライタブルセクションのRVA
22 DWORD dwRVA_RWSection;
23
24 //コードセクションのRAVとサイズ
25 DWORD dwRVA_CodeSection;
26 int SizeOf_CodeSection;
27
28 // オブジェクトモジュール
29 ObjectModule objectModule;
30
31 //インクルード情報
32 INCLUDEFILEINFO _IncludeFileInfo;
33
34 //ソースコード
35 BasicSource source;
36
37 //コードと行番号の関係
38 SourceLines _oldSourceLines;
39
40 //グローバル実行領域のサイズ
41 int GlobalOpBufferSize;
42
43 const UserProc *pSub_DebugSys_EndProc;
44
45 //ネイティブコードバッファ
46 char *OpBuffer;
47
48 //シングルステップ用コードバッファ
49 char *SingleStepCodeBuffer;
50
51 //ブレークポイント用コードバッファ
52 char *BreakStepCodeBuffer;
53
54
55 ////////////////////////////////////
56
57
58 CDebugSection()
59 : buffer( NULL )
60 , length( 0 )
61 , dwImageBase( 0 )
62 , dwRVA_RWSection( 0 )
63 , dwRVA_CodeSection( 0 )
64 , SizeOf_CodeSection( 0 )
65 , GlobalOpBufferSize( 0 )
66 , pSub_DebugSys_EndProc( NULL )
67 , OpBuffer( NULL )
68 , SingleStepCodeBuffer( NULL )
69 , BreakStepCodeBuffer( NULL )
70 {
71 szNowFilePath[0]=0;
72 }
73 ~CDebugSection();
74
75 void make(void);
76private:
77 void UpdateBreakPoint(void);
78 char *MakeSingleStepCode(void);
79 BOOL __load(void);
80public:
81 BOOL load(HMODULE hModule);
82
83 void choice(void);
84
85 void DeleteDebugInfo(void);
86};
87
88class CDBDebugSection{
89public:
90 CDebugSection **ppobj_ds;
91 int num;
92
93 CDebugSection *pobj_now;
94
95 CDBDebugSection();
96 ~CDBDebugSection();
97
98 BOOL add(HMODULE hModule);
99 void del(HMODULE hModule);
100
101 void choice(int index);
102
103};
104
105extern CDBDebugSection *pobj_DBDebugSection;
Note: See TracBrowser for help on using the repository browser.