Log in

View Full Version : SI 4.05 + W2k: 'p ret' troubles


KurtzHz
March 30th, 2002, 08:46
Hi y'all!
Maybe someone can help me. I'm struggling through my first softice tutorial. I set a breakpoint on GetDlgItemTextA and SI pops up into USER32.dll. When I try to 'p ret' out, the SI window closes and the program continues execution. I then have to press ctrl-d TWICE to pop-up the SI window. It feels like a bug but i'm probably doing something wrong. All I found in the manual is:
If you are stepping and the statement or instruction is a function call, control is not returned until the fuction call is complete.
Any ideas?

PS: When my modem is connected, 100s of messages starting with WinAcNt are logged to SI's command window, each one making an annoying beep on my pc speaker. Can these be turned off?
example:
WinAcNtPutChar putting 'x' e9 in typeahead at 0xff49f404

ty

KurtzHz
March 30th, 2002, 20:40
Upgraded to Driverstudio 2.5 and the 'p ret' stepping now works fine. I still get these damn "WinAcNt..." messages tho.

foxthree
March 30th, 2002, 21:43
Hi there:

Firstly, I too had the same problem as the GetDlgItemTextA. I thought it was the programmer who did some "tricks" with SEH and left it at that. Thanks for the update that it was a SICE bug

Okey as for the second one, it is your modem driver/app writing debug logs (remember SICE the kernel debugger can catch and display all outputdebugstring, dbgprint and other messages) Programmers use such apis to print strings during driver run time so that they can monitor the driver functioning. Actually, at final *release* build, they're supposed to recompile the driver code removing the DbgPrint messages, but I guess they were too lazy

So, I guess you'll have to live with it.... (hey, you can patch those calls, oh well here i am rambling again )

Signed,
-- FoxThree

KurtzHz
March 31st, 2002, 02:58
Thanks foxthree, I was getting the same impression from combing through MSKB articles, that my modem drivers are compiled with debug information.
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q314743 tells how to enable and disable verbose debug tracing in drivers and subsystems. It states:
Quote:
To enable debug tracing, locate your component ID either from the ntddk.h file or from the debugger. To do this, use the following code:
x NT!Kd_*_Mask
Then, set the value to the maximum for verbose output (0xffffffff). Currently, only a few classes of drivers (described in the "More Information" section of this article) use this new function.


Would it be possible to set this type of variable in SoftICE? Where can i find the Kd_xxxxxx_Masks the page is talking about? Below is a sample of what I get in SI when I am connected OR check the Serial Port status in Computer Management:
Quote:
WinAcNtDispatchIoControl IOCTL_SERIAL_SET_DTR
RShellNt_SetDTR old MCR 0x3, new MCR 0x3
WinAcNtDispatchIoControl done with status 0x00 information 0x00

WinAcNtDispatchIoControl IOCTL_SERIAL_SET_LINE_CONTROL wrd8 par0 stp0
WinAcNtDispatchIoControl IOCTL_SERIAL_SET_LINE_CONTROL wrd3 par0 stp0
WinAcNtDispatchIoControl done with status 0x00 information 0x00

WinAcNtDispatchIoControl IOCTL_SERIAL_SET_CHARS eof0 err0 brk0 evt0 xon11 xof13
WinAcNtSynchSetChars Eof 0, Error 0 Break 0 Event 0 Xon 11 Xoff 13
WinAcNtDispatchIoControl done with status 0x00 information 0x00


I'm assuming that my winacpci.sys is the culprit here. There should be a way to set debugging off by typing the SoftICE equvalent of ed WINACPCI!WinacpciDebugMask 0x00000000, right? The above link also mentions a Global Mask, Kd_Win2000_Mask, that filters debug output. I'm not clear whether this is a WinXP-only feature or not, maybe someone who has ntddk.h could help? phew!

Kurtz

KurtzHz
April 2nd, 2002, 19:20
Replaced winacpci.sys with the original winacpci on the W2k CD and DbgPrint messages have disappeared. The solution was so simple, yet i spent days trying to solve it by installing Kernel Debugger extensions in SoftICE and playing with passing "DebugLevel" parameters to winacpci. Oh well, live and learn i guess