ID Number: Q69348
2.20 2.30 2.35 3.00 3.10 3.11 3.12 3.50
OS/2
Summary:
Debugging a large application with CodeView under OS/2 version 1.3 may
result in a Trap B system error. Trap B is a "segment not present"
exception resulting from changes made to this version of the operating
system.
More Information:
In OS/2 version 1.3, the code for DosPTrace() is swappable; it isn't
swappable in earlier versions. DosPTrace() is part of the OS/2 API
that allows a parent process to control the execution of a child
process, and to access the child process's memory directly to insert
breakpoints or change data.
Because CodeView relies heavily on DosPTrace(), problems arise if this
code is swapped from memory. The majority of problems occur when
execution reaches a breakpoint while the DosPTrace() code is not
present; control should then jump to code that is not currently in
RAM.
Because large programs (or heavily loaded systems) tend to result in
more swapping, this problem appears more readily when debugging large
applications.
To workaround this problem, turn off swapping while debugging.
Increasing or freeing up available memory may also be helpful. To
disable swapping, modify the MEMMAN switch in CONFIG.SYS as follows:
MEMMAN=NOSWAP
To increase available memory, either install more memory in the
computer or terminate all other unnecessary processes before debugging
(to remove them from memory).
This problem is the result of a design change with OS/2 1.3 and is not
a problem with CodeView. This change is being reconsidered for future
versions of OS/2. New information will be posted here as it becomes
available.
Additional reference words: gp fault protection violation 1.30