У меня версия 4.2.6 из релиза Driver Studio 2.6. И операционная система Windows 2000 ( При использовании других осей многие команды могут не работать да и синтаксис команд может отличаться).
Ошибок у меня никаких не возникало и сообщения прекрасно отлавливаются..
1. выясняем handle окна, например, с помощью такой проги как The Customiser от Wanga
2. ставим брейкпоинт, например, таким образом:
bmsg 0x00e6
0x00e6 -это естественно хэндл окна.
Ну, и если интересно, вот синтаксис:
Цитата:
BMSG
Windows 3.1, Windows 9x, Windows NT/2000
Set a breakpoint on one or more Windows messages.
Syntax For Windows 3.1
BMSG window-handle [L] [begin-msg [end-msg]] [c=count]
For Windows 9x and Windows NT/2000
BMSG window-handle [L] [begin-msg [end-msg ]] [IF expression
[DO "command1;command2;..."]]
4
window-handle HWND value returned from CreateWindow or CreateWindowEX.
L Logs messages to the SoftICE Command window.
begin-msg Single Windows message or lower message number in a range of
Windows messages. If you do not specify a range with an end-msg,
only the begin-msg will cause a break.
Note: For both begin-msg and end-msg, the message numbers can be
speci?ed either in hexadecimal or by using the actual ASCII names of
the messages, for example, WM_QUIT.
end-msg Higher message number in a range of Windows messages.
c= Breakpoint trigger count.
IF expression Conditional expression: the expression must evaluate to TRUE (nonzero)
for the breakpoint to trigger.
DO command Breakpoint action: A series of SoftICE commands can execute when
the breakpoint triggers.
Note: You can combine breakpoint count functions (BPCOUNT, BPMISS, BPTOTAL,
BPLOG, and BPINDEX) with conditional expressions to monitor and control
breakpoints based on the number of times a particular breakpoint has or has not
triggered. See Chapter 6, “Using Breakpoints,” in the Using SoftICE manual.
Use
The BMSG command is used to set breakpoints on a window’s message handler that will
trigger when it receives messages that either match a speci?ed message type, or fall within an
indicated range of message types.
• If you do not specify a message range, the breakpoint applies to ALL Windows messages.
• If you specify the L parameter, SoftICE logs the messages into the Command window
instead of popping up when the message occurs.
When SoftICE does pop up on a BMSG breakpoint, the instruction pointer (CS:[E]IP) is set
to the ?rst instruction of the message handling procedure. Each time SoftICE breaks, the
current message displays in the following format:
hWnd=xxxx wParam=xxxx lParam=xxxxxxxx msg=xxxx message-name
Note: These are the parameters that are passed to the message procedure. All numbers are
hexadecimal. The message-name is the Windows de?ned name for the message.
To display valid Windows messages, enter the WMSG command with no parameters. To
obtain valid window handles, use the HWND command.
You can set multiple BMSG breakpoints on one window-handle, but the message ranges for
the breakpoints may not overlap.
Example This command sets a breakpoint on the message handler for the Window that has the handle
9BC. The breakpoint triggers and SoftICE pops up when the message handler receives
messages with a type within the range WM_MOUSEFIRST to WM_MOUSELAST,
inclusive. This range includes all of the Windows mouse messages.
:BMSG 9BC wm_mousefirst wm_mouselast
The next command places a breakpoint on the message handler for the Window with the
handle F4C. The L parameter causes SoftICE to log the breakpoint information to the
SoftICE Command window when the breakpoint is triggered, instead of popping up. The
message range on which the breakpoint triggers includes any message with a type value less
than or equal to WM_CREATE. You can view the output from this breakpoint being
triggered by popping into SoftICE and scrolling through the command buffer.
:BMSG f4c L 0 wm_create
|