source: dev/trunk/ab5.0/abdev/BasicCompiler_Common/DebugSection.h@ 762

Last change on this file since 762 was 743, checked in by dai, 16 years ago

oldSourceLinesを排除。

File size: 1.8 KB
RevLine 
[182]1#pragma once
[4]2
[741]3class DebugSection{
[4]4public:
5 char szNowFilePath[MAX_PATH];
6
7 char *buffer;
8 int length;
9
10
11 ////////////////////////////////////
12 // デバッグ用の固有情報
13
14 //イメージベース
15 DWORD dwImageBase;
16
17 //リライタブルセクションのRVA
18 DWORD dwRVA_RWSection;
19
20 //コードセクションのRAVとサイズ
21 DWORD dwRVA_CodeSection;
22 int SizeOf_CodeSection;
23
[263]24 // オブジェクトモジュール
25 ObjectModule objectModule;
26
[636]27 // オブジェクトモジュールリストに類似したソースコードリスト
28 BasicSources _sourcesLinkRelationalObjectModule;
29
[4]30 //コードと行番号の関係
[265]31 SourceLines _oldSourceLines;
[4]32
33 //グローバル実行領域のサイズ
34 int GlobalOpBufferSize;
35
[206]36 const UserProc *pSub_DebugSys_EndProc;
[4]37
38 //ネイティブコードバッファ
39 char *OpBuffer;
40
41 //シングルステップ用コードバッファ
42 char *SingleStepCodeBuffer;
43
44 //ブレークポイント用コードバッファ
45 char *BreakStepCodeBuffer;
46
47
48 ////////////////////////////////////
49
50
[741]51 DebugSection()
[206]52 : buffer( NULL )
53 , length( 0 )
54 , dwImageBase( 0 )
55 , dwRVA_RWSection( 0 )
56 , dwRVA_CodeSection( 0 )
57 , SizeOf_CodeSection( 0 )
58 , GlobalOpBufferSize( 0 )
59 , pSub_DebugSys_EndProc( NULL )
60 , OpBuffer( NULL )
61 , SingleStepCodeBuffer( NULL )
62 , BreakStepCodeBuffer( NULL )
63 {
64 szNowFilePath[0]=0;
65 }
[741]66 ~DebugSection();
[4]67
[743]68 void make( const SourceLines &sourceLines );
[4]69private:
[743]70 void UpdateBreakPoint();
71 char *MakeSingleStepCode();
72 BOOL __load();
[4]73public:
74 BOOL load(HMODULE hModule);
75
[743]76 void choice();
[4]77
[743]78 void DeleteDebugInfo();
[4]79};
80
[741]81class DebugSectionCollection{
82 DebugSection *pCurrent;
[4]83public:
[741]84 std::vector<DebugSection *> debugSections;
[4]85
[741]86 DebugSectionCollection();
87 ~DebugSectionCollection();
[4]88
89 BOOL add(HMODULE hModule);
90 void del(HMODULE hModule);
91
92 void choice(int index);
93
[741]94 DebugSection &GetCurrent()
95 {
96 MyAssert( pCurrent != NULL );
97 return *pCurrent;
98 }
[4]99};
Note: See TracBrowser for help on using the repository browser.