| /* |
| * File dbgmain.c - main wrapper for internal debugger test bed. |
| * |
| * Copyright (C) 1997, Eric Youngdale. |
| */ |
| #include <signal.h> |
| #include <X11/Xlib.h> |
| #include "config.h" |
| #include "ldt.h" |
| #include "windows.h" |
| #include "toolhelp.h" |
| #include "debugger.h" |
| #include "win.h" |
| |
| ldt_copy_entry ldt_copy[LDT_SIZE]; |
| unsigned char ldt_flags_copy[LDT_SIZE]; |
| |
| Display * display; |
| |
| int |
| XUngrabServer( Display * d ) |
| { |
| return(0); |
| } |
| |
| int |
| XFlush(Display * d ) |
| { |
| return(0); |
| } |
| |
| HTASK16 GetCurrentTask(void) |
| { |
| exit(0); |
| } |
| |
| HMODULE16 GetExePtr(HANDLE16 h) |
| { |
| exit(0); |
| } |
| |
| int PROFILE_GetWineIniString( const char *section, const char *key_name, |
| const char *def, char *buffer, int len ) |
| { |
| exit(0); |
| } |
| |
| |
| void CLASS_DumpClass( struct tagCLASS *class ) |
| { |
| exit(0); |
| } |
| |
| void MODULE_DumpModule( HMODULE16 hmodule ) |
| { |
| exit(0); |
| } |
| |
| void QUEUE_DumpQueue( HQUEUE16 hQueue ) |
| { |
| exit(0); |
| } |
| |
| void WIN_DumpWindow( HWND hwnd ) |
| { |
| exit(0); |
| } |
| |
| |
| void CLASS_WalkClasses(void) |
| { |
| exit(0); |
| } |
| |
| void MODULE_WalkModules(void) |
| { |
| exit(0); |
| } |
| |
| void QUEUE_WalkQueues(void) |
| { |
| exit(0); |
| } |
| |
| void WIN_WalkWindows( HWND hwnd, int indent ) |
| { |
| exit(0); |
| } |
| |
| NE_MODULE *NE_GetPtr( HMODULE16 hModule ) |
| { |
| exit(0); |
| } |
| |
| FARPROC16 NE_GetEntryPoint( HMODULE16 hModule, WORD ordinal ) |
| { |
| exit(0); |
| } |
| |
| void LDT_Print( int start, int length ) |
| { |
| exit(0); |
| } |
| |
| LPVOID GlobalLock16(HGLOBAL16 h) |
| { |
| exit(0); |
| } |
| |
| BOOL16 ModuleFirst16(MODULEENTRY *lpModule) |
| { |
| return 0; |
| } |
| |
| BOOL16 ModuleNext16(MODULEENTRY *lpModule) |
| { |
| return 0; |
| } |
| |
| BOOL16 IsBadReadPtr16(SEGPTR s,UINT16 o) |
| { |
| exit(0); |
| } |
| |
| BOOL IsBadReadPtr(LPCVOID s,UINT o) |
| { |
| exit(0); |
| } |
| |
| struct qwert |
| { |
| unsigned flag1:1; |
| unsigned flag3:3; |
| signed remain:11; |
| unsigned whatsup:17; |
| } vvv; |
| |
| int xyzzy(const char * qwe, int ijk) |
| { |
| return strlen(qwe) + ijk; |
| } |
| |
| unsigned int * xxx; |
| unsigned int * yyy; |
| |
| int xxx3[10]; |
| |
| char vdv[100]; |
| |
| struct deferred_debug_info |
| { |
| struct deferred_debug_info * next; |
| char * load_addr; |
| char * module_name; |
| char * dbg_info; |
| int dbg_size; |
| PIMAGE_DEBUG_DIRECTORY dbgdir; |
| struct pe_data * pe; |
| PIMAGE_SECTION_HEADER sectp; |
| int nsect; |
| short int dbg_index; |
| char loaded; |
| }; |
| |
| struct CodeViewDebug |
| { |
| char cv_nbtype[8]; |
| unsigned int cv_timestamp; |
| char cv_unknown[4]; |
| char cv_name[1]; |
| }; |
| |
| test_pdbstuff(void) |
| { |
| struct deferred_debug_info deefer; |
| IMAGE_DEBUG_DIRECTORY dinfo; |
| struct CodeViewDebug cdebug; |
| IMAGE_SECTION_HEADER sects[10]; |
| |
| memset(&deefer, 0, sizeof(deefer)); |
| memset(&dinfo, 0, sizeof(dinfo)); |
| memset(&cdebug, 0, sizeof(cdebug)); |
| memset(§s, 0, sizeof(sects)); |
| |
| deefer.dbg_info = (char *) &cdebug; |
| dinfo.TimeStamp = 812932395; |
| cdebug.cv_timestamp = 833392137 /* 841951397 */; |
| deefer.dbgdir = &dinfo; |
| deefer.sectp = sects; |
| deefer.nsect = 10; |
| |
| DEBUG_InitTypes(); |
| DEBUG_ProcessPDBFile(&deefer, "../dumpexe.pdb"); |
| } |
| |
| int |
| main(int argc, char * argv[]) |
| { |
| SIGCONTEXT reg; |
| |
| strcpy(vdv, "This is a test"); |
| memset(&vvv, 0xff, sizeof(vvv)); |
| vvv.whatsup = 0; |
| vvv.flag3 = 0; |
| vvv.remain = 0x401; |
| argv0 = argv[0]; |
| xxx = (unsigned int*) &vvv; |
| yyy = xxx + 5; |
| xxx3[5] = 7; |
| |
| test_pdbstuff(); |
| |
| memset(®, 0, sizeof(reg)); |
| wine_debug(SIGSEGV, ®); |
| return 0; |
| } |