System Loader Logging Facility
The system loader provides optional logging
and checking under the debug kernel. These optional facilities may be activated
selectively by setting bits in the _LdrDebugFlags flags double-word
as follows:
Note: 
The flags described are those implemented in OS/2 Warp V3.0. Slightly different,
similar messages are generated for earlier releases of OS/2.
0x00000001
 This will cause the Loader to
break into the debugger using an INT 3 instruction if any of the
following error conditions are detected:
 0x00000002
 This
will generate log entries when LDRGetPage exits with a non-zero return
code. LDRGetPage is called to demand load a page within a object
of a load module. The message logged is of the following form:
      ldrGP bad cr2=nnnnnnnn rc=mmmmmmmm
cr2= is the page fault address and rc= is the LDRGetPage
return code.
 0x00000004
 This
generates log entries when LDRGetPage is called to demand load a
page within a object of a load module. The message logged is of the form:
      ldrGP cr2=nnnnnnnn hMTE=hhhh bno=oo
            name=pppppppppppppppp
cr2=
 is the page fault address,
hMTE=
bno= is page number
with in the module
name= is
the module's full name taken from the SMTE.
0x00000018 This
switch causes log information to be generated when DLL modules are loaded
and initialised. The following messages are logged:
      ldrDLM entry - slot ssss ptda pppppppp
      ldrDLM name  - slot ssss name nnnnnnnn
      ldrDLM free  - slot ssss
      ldrDLM exit  - slot ssss
      tk SD has-init slot=ssss
      tk SD no-init slot=ssss
      tk SD pre-inc slot=ssss cnest=nnnn
      tk IN pre-dec slot=ssss cnest=nnnn
      tk LIn slot=ssss cnest=nnnn
slot
 is the thread
slot in which the DLL is being processed,
ptdais the address of the PTDA
for this slot
name
 cnest Nesting
counter for TKLibiStartDispatch
ldrDLM
entry marks entry to w_loadmodule, the
DosLoadModule worker routine.
ldrDLM
name marks the successful request for the DLL
initialisation mutex semaphore (ptda_DLMsem (PTDA +0x4ac (H/R:
+0x4a8))).
ldrDLM free marks
the release of the mutex semaphore. Exit marks the exiting of w_loadmodule.
ldrDLM exit marks
the exit from w_loadmodule.
tk SD marks
events in TKLibiStartDispatch.
tk IN
and tk LIn Mark events in TKLiniInitNextDLL
0x00000080 This
switch requests import initialisation be recorded. Messages of the following
format are generated:
      lpi, Recording init hMTE=hhhh, flags1=ffffffff, name=nnnnnnnnn
      lpi, Skipping init hMTE=hhhh, flags1=ffffffff, name=nnnnnnnnn
      lpi, Processing imports slot=ssss, module=nnnnnnnnn
      lrm, Recording init hMTE=hhhh, flags1=ffffffff, name=nnnnnnnn
      lrm, Skipping init hMTE=hhhh, flags1=ffffffff, name=nnnnnnnnn
hMTE
 flags1
 name
 is
the full module name taken from the SMTE.
moduleis the full module name taken from the SMTE.
lpi, Recording init Logs
the processing of system DLL imports from the system DLL names table in
EXE file loading.
lpi, Skipping init Logs
system DLL names not imported in EXE file loading.
lpi,
Processing imports Logs the processing of DLL
initialisation as the result of imports being present in an EXE module.
lrm, Recording init Logs
imported DLL initialisation being recorded.
lrm,
Skipping init Logs imported DLLs skipping initialisation.
0x00000100 Logs
when the loader cannot load an object at the compiler/linker designated
base address. The message logged appears as:
      Cannot load nnnnnnnn at the requested base address
where nnnnnnnn is the module name.
 0x00000800
Logs the processing of the DLL import tree.
The following messages appear:
      lpi, Processing imports slot=ssss, module=nnnnnnnnn
      ldr walking tree hMTE=hhhh, name=nnnnnnnn
      ldr walking tree going down
      ldr walking tree going up
lpi, Processing imports
 marks the initiation
of the process for slot ssss and module nnnnnnnn.
ldr walking tree hMTE=hhhh, name=nnnnnnnn marks
the processing of an imported DLL, whose handle is hhhh and
name is nnnnnnnn
ldr walking tree
going up marks a backward progression through
the import tree.
ldr walking tree going downmarks a forward progression through the import
tree.
[Back: Virtual Memory Management System Heap Validation] 
[Next: Example Loader Log]