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