The information in this article applies to:
- Microsoft Win32 Software Development Kit (SDK) version 3.51
SUMMARY
This article lists the bugs in the WinDbg debugger released with the Win32
SDK for Windows NT version 3.51 that were known at the time the product was
released.
MORE INFORMATION
- If you set a breakpoint in a function that is evaluated by EE, execution
stops at the breakpoint and incomplete results are returned. Generally,
the result is wrong and you are not notified of the problem.
- The z-order of windows is not correctly restored when a workspace is
reloaded. For example, the Registers window that was on top when you
exited is not when you restart.
- In cases where the application has source files that have identical
names but are located in different directories, Windbg may confuse one
with the other during source-level debugging. Therefore, putting
breakpoints in a line in one of the files may not work.
- If you use F10 to step over a function that contains a conditional
breakpoint and the condition is not met, the program runs to completion.
- When the system is under a heavy load, a hardcoded breakpoint hit may
be erroneously reported.
- WinDbg may hang if it is opened using the AeDebug registry entry and
closed while the debuggee is still active.
- When you use the toolbar to place a breakpoint on a source line that is
not an executable line, the breakpoint is correctly placed on the next
line that contains executable code. However, if this is done before the
module is loaded, you get an unresolved breakpoint when the module
is loaded.
- If you ise the Breakpoints dialog box to set a breakpoint on a source
line that is not an exectuable line and the system DLLs were loaded with
deferred symbols, the debugger will load them now and you will get a
message about an uninstantiated breakpoint. The breakpoint should have
been placed on the next line that contains executable code.
- WinDbg does not show a wait pointer while setting a breakpoint.
- When you use the scroll thumb in the Memory Window, there is a limit to
how far down the view can be changed. Once the thumb is dragged to the
bottom, nothing more can be viewed. However, you can move as far
beyond that point as you want by using the PAGE DOWN key.
- The PAGE UP and PAGE DOWN keys do not move the scroll thumb in the
Memory Window.
- Narrow window size prevents Memory Window reformatting.
- WinDbg won't set a breakpoint in generated code that is executed.
- If the Command window is scrolled away from the current input line, it
cannot be scrolled back. Scrolling always stops about one line too soon.
- WinDbg may display a popup window if there is no disk in the drive.
- The sxeld and sxdld commands are not supported.
- Pressing CTRL+SHIFT+HOME does not select text in the Command window.
- For functions that take a class member as an argument, WinDbg displays
CXX0019: Error: bad type cast evaluating member functions.
- WinDbg cannot evaluate functions using string constants.
- WinDbg shows the value of thread-local static local variables as 0.
- Pressing p when using remote WinDbg behaves as if you pressed g.
- A maximized source window doesn't show the path or dirty flag.
- WinDbg source window title text is sometimes clipped when the window
size is changed.
- A popup box is presented when WinDbg is run using an input script and
the debugee cannot be found.
- The WinDbg expression evaluator truncates long strings.
- The floating-point register displays do not line up in fixed columns.
- The Address field defaults to the next token from the last active menu
when you click Address on the View menu.
- Type information defined in a DLL is not available when the current
context is another DLL or the .exe file.
- Breakpoint message classes are not all-inclusive.
- You cannot set a breakpoint on a message for which no WM_xxx message
exists.
- You cannot set a single breakpoint on multiple messages.
- Message enumeration does not highlight messages belonging to the
selected class.
- Several break types listed when adding breakpoints are extraneous.
- Exception number processing should not allow bit 28 to be set.
- Length field in breakpoint dialog box does not accept expressions.
- All common file dialog boxes should use a single saved directory.
- Status bar should display toolbar button description.
- Toolbar is clipped if main window is too narrow.
- C++ EE doesn't handle default function arguments.
- Floating point registers cannot be displayed in HEX format.
- Changing radix in the Debug dialog box from the Options menu highlights
all the values as changed.
- Pressing CTRL+S does not pause dump command output.
- Locals window collapses expanded structure when scope changes.
- Hex values are displayed using different case for first level and lower
level values.
- The value of array members cannot be changed.
- The File Open dialog box does not save the previous file type.
- There is no help for Source/Asm mode.
- WinDbg does not always automatically scroll when selecting text with the
mouse on the Disassembly window while the mouse is below the Disassembly
window.
- The expression evaluator does not correctly deal with the possiblity of
a cast from a class to a primitive data type.
- The User DLLs dialog box shows single status item for multiple
possibilities.
- A full path is needed when selecting a DLL from the Debugger DLLs dialog
box, and there is no Browse button to choose the path.
- Continue to Cursor on the Run menu should be Continue to Caret, because
the execution stop point is indicated by the caret in the active window,
not the position of the mouse pointer.
- The symbol information output from the X command is not sorted in
alphabetical order.
- EE does not allow "context not allowed" to be an l-value.
- The LN command displays only public symbols, not line numbers.
- Focus changes momentarily when disassembly view overlaps source view and
View.Address is updated.
- Constants in Source Windows that have suffixes are improperly syntax
colored. The numeric part is colored, but the suffix is not.
- The return value type is not reported for ?<FuncName>.
- Function evaluation reports "Error: function requires implicit
conversion" for a function taking a structure, not a pointer to
a structure.
- ?<10-byte real> displays a leading blank.
- ?<10-byte real>,<format modifier> fails with modifiers Lf, Lg, LG, Le,
and LE.
- Options tool buttons are enabled when no watch item is selected.
- The Disassembly window does not scroll properly. The current line
sometimes does not appear in the window.
- Watch window shift-key selection is not consistent. Sometimes all
characters from the beginning of the expression to the caret position
are selected, but sometimes only two characters are selected.
- The User DLLs dialog box silently discards edits after picking a DLL and
changing the radio button from suppress to load.
- The DS register display is nine bits long for MIPS. It is currently
displayed with the minimum number of digits necessary for its value. It
should be displayed as a three-digit field padded with zeros.
- When you click Stop Debugging on the Run menu, all values in the watch
window (left and right panes) are cleared.
- While you step through a program, the information windows display
changes data in red. When a structure is expanded, the changed data
selection (red) is lost.
- The Command window does not scroll correctly. Unless the Command window
is positioned at the bottom, new messages are not always visible.
- "DW BP" currently uses DS as the default selector. It should use SS.
- Expanding character pointers in the Watch window shows only the first
character in the string.
- The Replace dialog box is missing a Find Previous Button.
- The Watch window does not preserve watchpoints between runs in a single
debugging session or between separate debugging sessions.
- The File Open dialog box does not default to the program directory of an
open workspace.
- ?<function name> does not display the function prototype.
- fr st fails with MIPS host and x86 target with windbgrm.
- In a stack trace, the function name displayed for a function without a
symbol is the return address of the next frame.
- The base expression of expanded structure is added using quick watch,
not the selected item.
- Breakpoints may not work correctly in multithreaded applications in
areas not protected by critical sections.
- Choosing Stop Debugging and Restart causes a memory leak (100K per
iteration).
- The Watch dialog does not set default watch expression to the selection
made in the source window.
- A Long expression (?arg00+arg01+...+arg31) causes the debuggee to run to
termination.
- ?<function returning near pointer> displays segment.
- When setting up for kernel debugging, the user must enter the target
processor architecture in the Kernel Debugging dialog box. If the wrong
value is selected, the target machine will crash the first time the
user tries to set a breakpoint, or change its context.
- Module load messages lock up WinDbg. While a module is loading, no
other input is allowed.
- WinDbg cannot debug ntvdm on the RISC platform.
- The Find dialog box can be reselected while the dialog box "The string
xxxx was not found" is still open.
- The Cancel button from the "Ask to save workspace if Modified" dialog
box causes WinDbg to exit, instead of return.
- You cannot move the caret in the Dissassembly Window by pressing the UP
ARROW and DOWN ARROW keys.
- You cannot set a breakpoint on the first line in the Dissassembly
window.
- WinDbg can close prematurely if a breakpoint is ambiguous.
- Data type "const WCHAR *const" displays only the first letter of the
string.
- A previously added exception is selected when you attempt to add a new
exception in the Exceptions dialog box.
- WinDbg is unable to evaluate an enum expression on PPC.
- WinDbg cannot find symbols for class names on PPC. Therefore WinDbg is
unable to set breakpoints on constructors or other member functions.
- When server debugging, WinDbg does not look in the symbol search path
set in the User DLLs dialog box. Instead, it looks in the current path.
- The Single Message list does not contain WM_ENTERMENULOOP or
WM_EXITMENULOOP.
- An Access Violation occurs if the LM command is used when debugging a
16-bit Windows-based application.
|