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