⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wguidrwc.gml

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 GML
📖 第 1 页 / 共 3 页
字号:
.point Source Info
The source line on which the error occurred. This only appears if
the program running contains debugging information.
.endpoint
.np
There are four buttons on the exception dialog that you can use to
proceed.
.begnote
.note Act
.ix 'Act'
When the act button is pressed, &drwc.'s action is determined by the
option currently selected in the action to take section of the dialog.
The following describes the action taken for each option.
.begpoint $break
.*
.point Terminate Task
When the Terminate Task radio button is selected choosing Act causes
the faulting task to be terminated immediately.
.*
.point Restart Instruction
When the Restart Instruction radio button is selected choosing Act
causes the faulting task to restart execution starting with the
instruction pointed to by its CS:EIP. This option is primarily used to
restart a task after you have changed its register values using the
Task Status dialog.
.*
.point Chain to Next Handler
A handler is a piece of code, a program, or a routine that gets called
when an exception occurs. The system can have several exception
handlers. When the Chain to Next Handler radio button is selected
choosing Act passes the exception on to the next handler in the
sequence, or chain.
.endpoint
.note Act and Log
.ix 'Act and Log'
Choosing the Act and Log button first creates a log file entry
recording information about this fault then takes the same action that
would result from choosing the Act button.
.note Registers
.ix 'Registers'
Select the Registers button to open the Task Status dialog. This
dialog gives you additional information on the state of the program
when it crashed. From this window you can change the registers and
flags, view segment mappings, and do a stack trace. Refer to the
section entitled :HDREF refid='drwcex'. for further information.
.note Options
.ix 'Options'
Select the Options button to choose the information you want to
write to the log file. This opens the Log File Options dialog
explained in the section entitled :HDREF refid='drwccu'..
.endnote
.*
.beglevel
.*
.section *refid=drwcex Examining the Task Status
.*
.np
.ix '&drwc' 'Task Status'
.ix 'Task Status'
The Task Status dialog appears when you choose the Registers button on
the exception dialog.
.keep 24
.figure *depth='3.88' *scale=64 *file='DRW6' The Task Status dialog provides additional information on the program state when the exception occurred.
.np
This dialog displays information in four sections:
.begbull $compact
.bull
Source Information
.bull
Registers
.bull
Flags
.bull
Instructions Around Fault
.endbull
.np
The Source Information section indicates the source file where the
error occurred and the line of that source file. In order to get
source information, your program must have debugging information.
N/A appears in the Source Information section if the program does
not contain debugging information or the exception occurred on an
assembly instruction that does not correspond to a source file.
.np
The Registers and Flags sections display information in the CPU at the
time of the exception.
.np
The Instructions Around Fault section displays the assembly
instructions surrounding the instruction that was being executed
when the fault occurred. An asterisk marks the instruction to
which the CS:EIP is currently pointing.
.np
When the Show Symbols box is checked, &drwc tries to replace addresses
in the assembly code with symbolic names. &drwc can only replace
addresses if the faulting module contained debugging information.
If this box is not checked, addresses are left as numeric values.
.*
.beglevel
.*
.section &drwc.: Changing the Registers
.*
.np
.ix 'Registers' 'changing'
In the Task Status dialog you can set up testing and debugging
situations by changing the register and flag values. To change a
register value simply enter a new value in the edit field that
contains the current register value. To change the state of a flag
register just check or uncheck the check box associated with that
flag. A flag has a value of 1 when its check box is checked.
.np
The register and flag values will not take effect until you
choose OK on the Task Status dialog.
.*
.section &drwc.: Applying Registers
.*
.ix '&drwc' 'applying registers'
.ix 'Registers' 'applying in &drwc'
.np
Choosing Apply Registers updates the information in the Task Status
dialog based on values of registers and flags to which you have made
changes.
.*
.section &drwc.: Segment Mapping
.*
.ix 'segment mapping'
.ix '&drwc' 'segment mapping'
.np
Choosing Segment Map from the Task Status dialog opens a Segment Map
dialog box which indicates the selectors to which your map segments
were mapped. There is one entry for every segment in the program.
.keep 19
.figure *depth='2.96' *scale=100 *file='DRW7' The Segment Map dialog lists the selectors to which the segments were mapped.
.np
This dialog allows you to view the data contained in each of your
program's segments. To view this memory, double click on the desired
segment. This opens a Memory Display window for the selected segment.
.keep 8
.figure *depth='0.84' *scale=63 *file='DRW8' The Memory Display window displays the memory stored in the selected segment.
.np
The Memory Display window displays all of the data stored in the
selected segment. This information appears in hexadecimal form. This
allows you to see if the data in memory is what you believe it should
be.
.np
There are a number of functions you can perform in the Memory
Display window. Following is a description of these functions.
.*
.beglevel
.*
.section &drwc.: Saving Window Information
.*
.ix '&drwc' 'save'
.ix 'Memory Display window' 'saving'
.np
The Save items in the File menu of the Memory Display window allow you
to save the current window information to a text file. Choosing Save
from the File menu in the Memory Display window saves the data in the
window into the current working directory. A message box appears
indicating the path to which &drwc saved the file.
.np
Choosing Save As from the File menu allows you to specify the file to
which you want to save the information currently in the window. This
opens a Save As dialog box where you select the desired file. Click on
OK when completed. A message box appears indicating the path to which
&drwc saved the file.
.*
.section &drwc.: Changing the Display
.*
.ix 'Display' 'changing in &drwc'
.np
There are five ways to display the information on the Memory Display
window. You can display the information as:
.begbull $compact
.bull
Bytes
.bull
Words
.bull
DWords
.bull
16 Bit Code
.bull
32 Bit Code
.endbull
.np
To change the form of the displayed data, select an item from the
Display menu. When displaying data in bytes, the data appears in the
window as it physically appears in memory. When the data is displayed
as words, the bytes in memory are interpreted for you so that the
values displayed are those that would be obtained by treating the
memory as an array of words. For example, if memory containing the
values:
.np
12 34 56 78 9A BC DE FF
.np
was shown as words, the memory window would display:
.np
3412 7856 BC9A FFDE
.np
A similar interpretation is performed when the data is displayed as
DWords. If the above memory was shown as DWords, the memory window
would display:
.np
78563412 FFDEBC9A
.np
This rearrangement of bytes does not affect the textual interpretation
of the data shown on the right hand side of the window.
.np
Selecting 16 or 32 Bit Code from the Display menu presents the data in
a disassembled form. Sometimes presenting the data in disassembled
form is not accurate. This is because when &drwc disassembles the data
it begins at the first byte of the memory block and disassembles it
linearly. If a byte in this block, such as a padding byte, throws off
the sequence, the disassembly will be meaningless.
.*
.section &drwc.: Setting the Offset
.*
.ix '&drwc' 'set offset'
.ix 'Offset' 'setting in &drwc'
.np
On the Memory Display window you can set the offset. This means that
you can reposition the data so that the specified line appears at the
top of the window. The offset you enter appears on the first line. It
will not necessarily be the first piece of information because
rounding often occurs to avoid breaking a line.
.begstep
.step Choose Set Offset
from the menu bar on the Memory Display window.
.result
This opens a Goto Offset dialog box.
.keep 15
.figure *depth='2.26' *scale=100 *file='DRW9' In the Goto Offset dialog, enter the offset you want to appears at the top of the Memory Display window.
.step Enter the desired offset
that you want to position at the top of the Memory Display window.
You can enter the offset in decimal or hexadecimal form. However, you
must prefix hexadecimal values with 0x.
.step Click on OK.
.result
This closes the dialog and positions the data as requested.
.endstep
.*
.section &drwc.: The Handle Information Dialog Box
.*
.ix 'Handle Information Dialog'
.ix '&drwc' 'Handle Information Dialog'
.np
A Handle Information dialog box attached to the Memory Display window
provides the following information:
.begbull $compact
.bull
Block Address
.bull
Block Handle
.bull
Block Size
.bull
Lock Count
.bull
Page Lock Count
.endbull
.keep 8
.figure *depth='1.05' *scale=83 *file='DRW10' The Handle Information dialog box displays information about the memory object displayed in the Memory Display Window.
.np
This box stays with the window when the Auto Position Info item under
the File menu is checked. Deactivate this function by selecting the
item again from the File menu.
.np
If the Handle Information dialog is not visible, reveal it by choosing
Show Info from the File menu in the Memory Display window. Close this
dialog by double clicking on the system menu box in its upper left
hand corner.
.*
.endlevel
.*
.section Performing a Stack Trace
.*
.ix 'Stack Trace'
.ix '&drwc' 'performing a stack trace'
.np
A program is made up of a series of functions. A function executes
when it is called by the operating system or another function. When
completed it returns to the point in the code from which it was called.
.np
Whenever a function is called, a stack frame is pushed onto the stack.
When the function returns, the stack frame is popped from the stack.
The stack frame contains information about the point from which the
function was called and to which it will return. The collection of

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -