[comp.windows.misc] Microsoft Windows

pcb@usl.usl.edu (P.C. Bahrs) (08/18/88)

Given the following code fragments:

#define INITIAL_SIZE 4000
#define NEWSIZE 8000
GLOBALHANDLE *hData [10];
float FAR *lpfDATA [10];


if (NULL == (hData [X] = GlobalAlloc (GHND, (DWORD) INITIAL_SIZE)))
   return FALSE;
....
if (NULL == (hTemp = GlobalRealloc (hData [X], (DWORD) NEW_SIZE, GHND)))
    return FALSE;
....
if (NULL != GlobalFree ((GLOBALHANDLE) hData [X]))
   return FALSE;
....
if ((NULL == (lpfDATA[X] = (float FAR *) GlobalLock ((GLOBALHANDLE) hData [X])))
   return FALSE;
...
GlobalUnlock ((GLOBALHANDLE) hData [X]);
...

The system works great if code segments are all MOVEABLE, but if the
code segments are marked as MOVEABLE DISCARDABLE and some data has been
loaded into the system AND HeapWalk is run to allocate all of memory...
the infamouse DEV AUX error appears!  This error does not appear if the
data is not loaded (i.e. the User Interface seems robust).  Does anyone
have any comments?

Also, is there a way to bypass or trap the DEV AUX error? (which causes
the user to warm boot!)

Reply on News or :   pcb@usl.usl.edu  csnet

bturner@hpcvlx.HP.COM (Bill Turner) (08/23/88)

"Cannot Write to Device AUX" is generated when a fatal exit occurs and you
have the debugging kernel of Windows installed (at least, I haven't seen
it with the non-debugging kernel...).  It means that debugging information
is being dumped to COM1: but there is nothing there to receive it.

As far as I know, there's no way to get around it (check if you have the
debugging kernel installed somehow...).  If you're doing development, then
I strongly suggest connecting a terminal to COM1, 'cause you're gonna need
it for debugging!

--Bill Turner