Release 970120
[wine] / debugger / dbgmain.c
1 /*
2  * File dbgmain.c - main wrapper for internal debugger test bed.
3  *
4  * Copyright (C) 1997, Eric Youngdale.
5  */
6 #include <signal.h>
7
8 #include <ldt.h>
9 #include "windows.h"
10 #include "toolhelp.h"
11 #include "module.h"
12 #include "debugger.h"
13 #include "class.h"
14 #include <X11/Xlib.h>
15
16 #include "debugger.h"
17 #include "peexe.h"
18 #include "pe_image.h"
19
20 ldt_copy_entry ldt_copy[LDT_SIZE];
21 unsigned char ldt_flags_copy[LDT_SIZE];
22
23 Display * display;
24
25 int
26 XUngrabPointer( Display * d, Time t)
27 {
28   return(0);
29 }
30
31 int
32 XUngrabServer( Display * d )
33 {
34   return(0);
35 }
36
37 int
38 XFlush(Display * d )
39 {
40   return(0);
41 }
42
43 HTASK16    GetCurrentTask()
44 {
45   exit(0);
46 }
47
48 HMODULE16  GetExePtr(HANDLE16 h)
49 {
50   exit(0);
51 }
52
53 LPSTR MODULE_GetModuleName( HMODULE16 hModule )
54 {
55   exit(0);
56 }
57
58 int PROFILE_GetWineIniString( const char *section, const char *key_name,
59                                      const char *def, char *buffer, int len )
60 {
61   exit(0);
62 }
63
64
65 void CLASS_DumpClass( CLASS *class )
66 {
67   exit(0);
68 }
69
70 void MODULE_DumpModule( HMODULE16 hmodule )
71 {
72   exit(0);
73 }
74
75 void QUEUE_DumpQueue( HQUEUE16 hQueue )
76 {
77   exit(0);
78 }
79
80 void WIN_DumpWindow( HWND32 hwnd )
81 {
82   exit(0);
83 }
84
85
86 void CLASS_WalkClasses()
87 {
88   exit(0);
89 }
90
91 void MODULE_WalkModules()
92 {
93   exit(0);
94 }
95
96 void QUEUE_WalkQueues()
97 {
98   exit(0);
99 }
100
101 void WIN_WalkWindows( HWND32 hwnd, int indent )
102 {
103   exit(0);
104 }
105
106 NE_MODULE *MODULE_GetPtr( HMODULE16 hModule )
107 {
108   exit(0);
109 }
110
111 FARPROC16 MODULE_GetEntryPoint( HMODULE16 hModule, WORD ordinal )
112 {
113   exit(0);
114 }
115
116 void LDT_Print( int start, int length )
117 {
118   exit(0);
119 }
120
121 LPVOID     GlobalLock16(HGLOBAL16 h)
122 {
123   exit(0);
124 }
125
126 BOOL16 ModuleFirst(MODULEENTRY *lpModule)
127 {
128   return 0;
129 }
130
131 BOOL16 ModuleNext(MODULEENTRY *lpModule)
132 {
133   return 0;
134 }
135
136 BOOL16     IsBadReadPtr16(SEGPTR s,UINT16 o)
137 {
138   exit(0);
139 }
140
141 BOOL32     IsBadReadPtr32(LPCVOID s,UINT32 o)
142 {
143   exit(0);
144 }
145
146 struct qwert
147 {
148   unsigned flag1:1;
149   unsigned flag3:3;
150   signed remain:11;
151   unsigned whatsup:17;
152 } vvv;
153
154 int xyzzy(const char * qwe, int ijk)
155 {
156   return strlen(qwe) + ijk;
157 }
158
159 unsigned int * xxx;
160 unsigned int * yyy;
161
162 int xxx3[10];
163
164 char vdv[100];
165
166 struct deferred_debug_info
167 {
168         struct deferred_debug_info      * next;
169         char                            * load_addr;
170         char                            * module_name;
171         char                            * dbg_info;
172         int                               dbg_size;
173         struct PE_Debug_dir             * dbgdir;
174         struct pe_data                  * pe;
175         LPIMAGE_SECTION_HEADER            sectp;
176         int                               nsect;
177         short int                         dbg_index;                    
178         char                              loaded;
179 };
180
181 struct CodeViewDebug
182 {
183         char                cv_nbtype[8];
184         unsigned int        cv_timestamp;
185         char                cv_unknown[4];
186         char                cv_name[1];
187 };
188
189 test_pdbstuff()
190 {
191   struct deferred_debug_info deefer;
192   struct PE_Debug_dir   dinfo;
193   struct CodeViewDebug cdebug;
194   IMAGE_SECTION_HEADER  sects[10];
195
196   memset(&deefer, 0, sizeof(deefer));
197   memset(&dinfo, 0, sizeof(dinfo));
198   memset(&cdebug, 0, sizeof(cdebug));
199   memset(&sects, 0, sizeof(sects));
200
201   deefer.dbg_info = (char *) &cdebug;
202   dinfo.timestamp = 812932395;
203   cdebug.cv_timestamp = 833392137  /* 841951397 */;
204   deefer.dbgdir = &dinfo;
205   deefer.sectp = sects;
206   deefer.nsect = 10;
207
208   DEBUG_InitTypes();
209   DEBUG_ProcessPDBFile(&deefer, "../dumpexe.pdb");
210 }
211
212 int
213 main(int argc, char * argv[])
214 {
215   extern char * DEBUG_argv0;
216   SIGCONTEXT  reg;
217   
218   strcpy(vdv, "This is a test");
219   memset(&vvv, 0xff, sizeof(vvv));
220   vvv.whatsup = 0;
221   vvv.flag3 = 0;
222   vvv.remain = 0x401;
223   DEBUG_argv0 = argv[0];
224   xxx = (unsigned int*) &vvv;
225   yyy = xxx + 5;
226   xxx3[5] = 7;
227
228   test_pdbstuff();
229
230   memset(&reg, 0, sizeof(reg));
231   wine_debug(SIGSEGV, &reg);
232   return 0;
233 }