Converted to the new debugging interface (done with the help of the
script written by Patrik Stridvall).
Some changes to the initialisation sequence for 32-bit processes.
diff --git a/loader/task.c b/loader/task.c
index 97f2ab5..9c089ee 100644
--- a/loader/task.c
+++ b/loader/task.c
@@ -33,7 +33,7 @@
#include "winsock.h"
#include "thread.h"
#include "syslevel.h"
-#include "debug.h"
+#include "debugtools.h"
#include "dosexe.h"
#include "dde_proc.h"
#include "server.h"
@@ -250,7 +250,7 @@
if (pModule->flags & NE_FFLAGS_WIN32)
{
- ERR( task, "Called for Win32 task!\n" );
+ ERR_(task)("Called for Win32 task!\n" );
ExitProcess( 1 );
}
else if (pModule->dos_image)
@@ -283,14 +283,14 @@
ECX_reg(&context) = pModule->heap_size;
EDI_reg(&context) = context.SegDs;
- TRACE(task, "Starting main program: cs:ip=%04lx:%04x ds=%04lx ss:sp=%04x:%04x\n",
+ TRACE_(task)("Starting main program: cs:ip=%04lx:%04x ds=%04lx ss:sp=%04x:%04x\n",
CS_reg(&context), IP_reg(&context), DS_reg(&context),
SELECTOROF(pTask->thdb->cur_stack),
OFFSETOF(pTask->thdb->cur_stack) );
Callbacks->CallRegisterShortProc( &context, 0 );
/* This should never return */
- ERR( task, "Main program returned! (should never happen)\n" );
+ ERR_(task)("Main program returned! (should never happen)\n" );
ExitProcess( 1 );
}
}
@@ -446,7 +446,7 @@
pTask->thdb->teb.htask16 = pTask->thdb->process->task = hTask;
- TRACE(task, "module='%s' cmdline='%s' task=%04x\n",
+ TRACE_(task)("module='%s' cmdline='%s' task=%04x\n",
name, cmd_line, hTask );
return TRUE;
@@ -471,7 +471,7 @@
TASK_LinkTask( hTask );
SYSLEVEL_LeaveWin16Lock();
- TRACE(task, "linked task %04x\n", hTask );
+ TRACE_(task)("linked task %04x\n", hTask );
/* If requested, add entry point breakpoint */
@@ -492,12 +492,6 @@
else
EVENT_WakeUp();
}
- else
- {
- /* To start a 32-bit task, we spawn its initial thread. */
-
- SYSDEPS_SpawnThread( pTask->thdb );
- }
}
@@ -556,7 +550,7 @@
return;
}
- TRACE(task, "Killing task %04x\n", hTask );
+ TRACE_(task)("Killing task %04x\n", hTask );
/* Delete active sockets */
@@ -584,7 +578,7 @@
if (nTaskCount <= 1)
{
- TRACE(task, "this is the last task, exiting\n" );
+ TRACE_(task)("this is the last task, exiting\n" );
USER_ExitWindows();
}
@@ -651,13 +645,13 @@
{
if ( !THREAD_IsWin16( THREAD_Current() ) )
{
- FIXME(task, "called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
+ FIXME_(task)("called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
return;
}
assert(hCurrentTask == GetCurrentTask());
- TRACE(task, "Killing current task %04x\n", hCurrentTask );
+ TRACE_(task)("Killing current task %04x\n", hCurrentTask );
TASK_KillTask( 0 );
@@ -665,7 +659,7 @@
/* We should never return from this Yield() */
- ERR(task,"Return of the living dead %04x!!!\n", hCurrentTask);
+ ERR_(task)("Return of the living dead %04x!!!\n", hCurrentTask);
exit(1);
}
@@ -718,7 +712,7 @@
to global variables (most notably the task list) are protected. */
assert(hCurrentTask == GetCurrentTask());
- TRACE(task, "entered with hTask %04x (pid %d)\n", hCurrentTask, getpid());
+ TRACE_(task)("entered with hTask %04x (pid %d)\n", hCurrentTask, getpid());
#ifdef CONFIG_IPC
/* FIXME: What about the Win16Lock ??? */
@@ -758,7 +752,7 @@
{
pNewTask = (TDB *)GlobalLock16( hTask );
- TRACE(task, "\ttask = %04x, events = %i\n", hTask, pNewTask->nEvents);
+ TRACE_(task)("\ttask = %04x, events = %i\n", hTask, pNewTask->nEvents);
if (pNewTask->nEvents) break;
hTask = pNewTask->hNext;
@@ -789,11 +783,11 @@
SYSLEVEL_ReleaseWin16Lock();
SYSLEVEL_RestoreWin16Lock();
- TRACE(task, "returning to the current task(%04x)\n", hTask );
+ TRACE_(task)("returning to the current task(%04x)\n", hTask );
return FALSE; /* Nothing to do */
}
pNewTask = (TDB *)GlobalLock16( hTask );
- TRACE(task, "Switching to task %04x (%.8s)\n",
+ TRACE_(task)("Switching to task %04x (%.8s)\n",
hTask, pNewTask->module_name );
/* Make the task the last in the linked list (round-robin scheduling) */
@@ -848,7 +842,7 @@
{
if ( !THREAD_IsWin16( THREAD_Current() ) )
{
- FIXME(task, "called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
+ FIXME_(task)("called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
return;
}
@@ -955,7 +949,7 @@
if ( !THREAD_IsWin16( THREAD_Current() ) )
{
- FIXME(task, "called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
+ FIXME_(task)("called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
return TRUE;
}
@@ -985,7 +979,7 @@
if ( !THREAD_IsWin16( pTask->thdb ) )
{
- FIXME( task, "called for Win32 thread (%04x)!\n", pTask->thdb->teb_sel );
+ FIXME_(task)("called for Win32 thread (%04x)!\n", pTask->thdb->teb_sel );
return;
}
@@ -1049,7 +1043,7 @@
if ( !THREAD_IsWin16( THREAD_Current() ) )
{
- FIXME(task, "called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
+ FIXME_(task)("called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
return;
}
@@ -1068,16 +1062,16 @@
if ( !THREAD_IsWin16( THREAD_Current() ) )
{
- FIXME(task, "called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
+ FIXME_(task)("called for Win32 thread (%04x)!\n", THREAD_Current()->teb_sel);
return;
}
- TRACE(task, "%04x: DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
+ TRACE_(task)("%04x: DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
pCurTask->hYieldTo = hTask;
OldYield16();
- TRACE(task, "%04x: back from DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
+ TRACE_(task)("%04x: back from DirectedYield(%04x)\n", pCurTask->hSelf, hTask );
}
/***********************************************************************
@@ -1099,7 +1093,7 @@
{
if ( !someTask ) return 0;
- FIXME( task, "(%04x): stub\n", someTask );
+ FIXME_(task)("(%04x): stub\n", someTask );
return 0;
}
@@ -1112,7 +1106,7 @@
SEGPTR thunkaddr;
if (!func) {
- ERR(task, "Ouch ! MakeProcInstance called with func == NULL !\n");
+ ERR_(task)("Ouch ! MakeProcInstance called with func == NULL !\n");
return (FARPROC16)0; /* Windows seems to do the same */
}
if (!hInstance) hInstance = CURRENT_DS;
@@ -1121,12 +1115,12 @@
thunk = PTR_SEG_TO_LIN( thunkaddr );
lfunc = PTR_SEG_TO_LIN( func );
- TRACE(task, "(%08lx,%04x): got thunk %08lx\n",
+ TRACE_(task)("(%08lx,%04x): got thunk %08lx\n",
(DWORD)func, hInstance, (DWORD)thunkaddr );
if (((lfunc[0]==0x8c) && (lfunc[1]==0xd8)) ||
((lfunc[0]==0x1e) && (lfunc[1]==0x58))
) {
- FIXME(task,"thunk would be useless for %p, overwriting with nop;nop;\n", func );
+ FIXME_(task)("thunk would be useless for %p, overwriting with nop;nop;\n", func );
lfunc[0]=0x90; /* nop */
lfunc[1]=0x90; /* nop */
}
@@ -1145,7 +1139,7 @@
*/
void WINAPI FreeProcInstance16( FARPROC16 func )
{
- TRACE(task, "(%08lx)\n", (DWORD)func );
+ TRACE_(task)("(%08lx)\n", (DWORD)func );
TASK_FreeThunk( GetCurrentTask(), (SEGPTR)func );
}
@@ -1322,7 +1316,7 @@
Callout.InitThreadInput16( 0, THREAD_IsWin16(thdb)? 4 : 5 );
if (!thdb->teb.queue)
- FIXME( task, "(): should initialize thread-local queue, expect failure!\n" );
+ FIXME_(task)("(): should initialize thread-local queue, expect failure!\n" );
return (HANDLE)thdb->teb.queue;
}
@@ -1339,7 +1333,7 @@
if (!(pTask = (TDB *)GlobalLock16( GetCurrentTask() ))) return;
if (!(pData = (INSTANCEDATA *)GlobalLock16( seg ))) return;
- TRACE(task, "old=%04x:%04x new=%04x:%04x\n",
+ TRACE_(task)("old=%04x:%04x new=%04x:%04x\n",
SELECTOROF( pTask->thdb->cur_stack ),
OFFSETOF( pTask->thdb->cur_stack ), seg, ptr );
@@ -1386,10 +1380,10 @@
return;
if (!pData->old_ss_sp)
{
- WARN( task, "No previous SwitchStackTo\n" );
+ WARN_(task)("No previous SwitchStackTo\n" );
return;
}
- TRACE(task, "restoring stack %04x:%04x\n",
+ TRACE_(task)("restoring stack %04x:%04x\n",
SELECTOROF(pData->old_ss_sp), OFFSETOF(pData->old_ss_sp) );
oldFrame = THREAD_STACK16( pTask->thdb );
@@ -1605,7 +1599,7 @@
WORD WINAPI SetSigHandler16( FARPROC16 newhandler, FARPROC16* oldhandler,
UINT16 *oldmode, UINT16 newmode, UINT16 flag )
{
- FIXME(task,"(%p,%p,%p,%d,%d), unimplemented.\n",
+ FIXME_(task)("(%p,%p,%p,%d,%d), unimplemented.\n",
newhandler,oldhandler,oldmode,newmode,flag );
if (flag != 1) return 0;
@@ -1724,7 +1718,7 @@
TDB *pTask;
INSTANCEDATA *pInstData;
- TRACE(toolhelp, "(%p): task=%04x\n", lpte, lpte->hNext );
+ TRACE_(toolhelp)("(%p): task=%04x\n", lpte, lpte->hNext );
if (!lpte->hNext) return FALSE;
pTask = (TDB *)GlobalLock16( lpte->hNext );
if (!pTask || pTask->magic != TDB_MAGIC) return FALSE;