Microsoft KB Archive/121543

= Setting up for remote debugging =

Article ID: 121543

Article Last Modified on 11/1/2006

-

APPLIES TO


 * Microsoft Windows NT Advanced Server 3.1
 * Microsoft Windows NT Server 3.5
 * Microsoft Windows NT Server 3.51
 * Microsoft Windows NT Workstation 3.1
 * Microsoft Windows NT Workstation 3.5
 * Microsoft Windows NT Workstation 3.51
 * Microsoft Windows NT Advanced Server 3.1

-



This article was previously published under Q121543



SUMMARY
This article outlines how to set up for remote debugging.



MORE INFORMATION
To set up to remotely debug another computer, do the following:  Remove the System, Hidden, & ReadOnly attributes of the BOOT.INI file and append the following strings to the boot line:

/BAUDRATE=9600 /DEBUGPORT=COM#

For example:

[operating systems]

multi(0)...partition(1)\NT="WinNT/S Ver:3.5" /DEBUGPORT=COM1

/BAUDRATE=9600

  Run Terminal against the above Com Port with the debug modem attached and enter the modem commands which set the following: Function                             USRobotics -    Set back to Factory Defaults:         AT&F Disable Transmit Data Flow Control:  AT&H0 Disable Receive Data Flow Control:   AT&I0 Disable Data Compression:            AT&K0 Disable Error Control:               AT&M0 Auto Answer On:                      ATS0=1 Disable Reset Modem on loss of DTR:  AT&D0 Write to NVRAM:                      AT&W  Determine the base build of the remote computer (using WinMSD, WinVer),

511, 528, 807

and copy the corresponding debug files from the base build:

\Support\Debug\\*.* files to a

\ directory and the corresponding Kernel & Hal *.DBG

files from

\Support\Debug\\Symbols\EXE and

\Support\Debug\\Symbols\DLL respectively.

For example:

XCOPY E:\Support\Debug\i386\*.* C:\WinNT\Debug

XCOPY E:\Support\Debug\i386\Symbols\EXE\NTKRNLMP.DBG ...

... C:\WinNT\Debug\Symbols\EXE /s /e

XCOPY E:\Support\Debug\i386\Symbols\EXE\NTOSKRNL.DBG ...

... C:\WinNT\Debug\Symbols\EXE /s /e

XCOPY E:\Support\Debug\i386\Symbols\DLL\HAL*.* ...

... C:\WinNT\Debug\Symbols\DLL /s /e

where drive E: is the CD-ROM drive.

NOTE: Using different (debugger 807 <-> target 528) kernel debuggers may prevent debuggers from "Sync"-ing.</li> Determine the Service Pack (SP) version (using WinMSD, WinVer),

SP1, SP2, SP2b

and copy the SP Symbols tree to the <localSymbols> directory. For more information on the SP Symbols tree, contact Microsoft Product Support Services (Enterprise Technical Support).</li></ul>

For example:

XCOPY <Source SP Symbols path> C:\WinNT\Debug\Symbols /s /e


 * Determine what Hotfixes, if any, have been installed,

Prb18756, Bug18756

and copy the Hotfix Symbols tree to <localSymbols\ \. For more information on the Hotfix Symbols tree, contact Microsoft Product Support Services (Enterprise Technical Support).

For example:

XCOPY http://hotfix

<ul> Determine if you are using the Microsoft or third-party MP Kernel. If it is Microsoft's MP Kernel, then from <localSymbols>\EXE, copy NTKRNLMP.DBG to NTOSKRNL.DBG. If it is a third-party MP Kernel, obtain a copy of the symbols and copy it into your <localSymbols>\EXE\NTOSKRNL.DBG.</li> Determine if you are using the Microsoft Windows NT HAL or a third-party HAL. If it is a Microsoft Windows NT HAL, but not the standard ISA/EISA HAL, then from <localSymbols>\DLL, copy the appropriate HAL*.DBG to HAL.DBG. If it is a third-party HAL, obtain a copy of the symbols and copy it into your <localSymbols>\DLL\HAL.DBG.</li> Connect the modem to the remote debug target computer using the port from above and reboot the target computer.</li>  Go to the <localDebug> directory and run the following REMDBG.BAT file:

<pre class="fixed_text">     REM Modem String to Disable Flow Control and Compression ECHO "UsRobotics Modem string = AT&H0&I0&K0&M0"

REM Environment Variables:

REM Specify which com port to use. (Default = com1) set _NT_DEBUG_PORT=com1

REM Specify symbol image path. (Default = x: * NO trailing        backslash *) set _NT_SYMBOL_PATH=%2\Symbols

REM Specify second symbol image path to be searched after the above. set _NT_ALT_SYMBOL_PATH=%3\Symbols

REM Specify the baud rate used by debugging serial port. (Default = 19200) set _NT_DEBUG_BAUD_RATE=9600

REM If specified, output will be APPENDed to this file. set _NT_DEBUG_LOG_FILE_APPEND=DEBUG.LOG

REM If specified, output will be written to this file from offset 0. REM set _NT_DEBUG_LOG_FILE_OPEN=U:\WinNT\DEBUG\DEBUG.LOG

REM set _NT_DEBUG_CACHE_SIZE=x

remote /s "%1kd -m %4 %5 %6 %7 %8 %9" debug

REM Usage: *kd [-?] [-v] [-m] [-r] [-n] [-b] [-x] [[-l     SymbolFile] [KrnlName]      REM     where:      REM             -v      Verbose mode      REM             -?      Display this help      REM             -n      No Lazy symbol loading      REM             -m      Use modem controls      REM             -b      Break into kernel      REM                    -c          Resync on Connect

REM Control Keys:

REM. <Ctrl-C> Break into kernel REM      <Ctrl-B><Enter> Quit debugger REM. <Ctrl-R><Enter> Resynchronize target and host REM. <Ctrl-V><Enter> Toggle Verbose mode REM. <Ctrl-D><Enter> Display debugger debugging information

through the following command:

[u:\winnt\debug] remdbg <kd> <localSymbols> <baseBuildpath> <addOptions> ^       ^             ^              ^   Kernel Debugger to use ---+        |             |              | Example: i386 | MIPS | Alpha   |             |              | |            |              |   localSymbols without Symbols name -+             |              | Example: c:\winnt\debug                      |              | |             |   baseBuild (UNC) without Symbols name +              | Example: <Symbols server>\528\i386                          | |  Additional Debug Options ---+ Example: -b (Break In on Connect) -c (Resync on Connect) </li></ul>

Contact Microsoft Product Support Services (Enterprise Technical Support) for more information on the <Symbols server>.

Example
remdbg i386 u:\winnt\debug <Symbols server>\528\i386 -b

"UsRobotics Modem string = AT&H0&I0&K0&M0"

<pre class="fixed_text">************************************** To Connect: Remote /C MARCM.PORT debug
 * REMOTE   ************
 * SERVER   ************

Microsoft(R) Windows NT Kernel Debugger

Version 1.00

(C) 1991 Microsoft Corp.

Symbol search path is: u:\winnt\debug\Symbols;.;

KD: ntoskrnl.exe image based at 80100000

KD: Preloading kernel symbols from u:\winnt\debug\Symbols\exe\ntoskrnl.DBG.

KD: waiting to connect...

KD: No carrier detect - in terminal mode

>From here, paste in the above Modem String and wait for the modem to return OK. Then enter the ATDT<Phone number> of the remote target computer as below: AT&H0&I0&K0&M0

AT&H0&I0&K0&M0

OK

ATDT9,<Phone number>

ATDT9,<Phone number>

CONNECT 9600

KD: Carrier detect - returning to debugger

^R \\ Resync's the debuggers

KD: Kernel Debugger connection established. (Initial Breakpoint requested)

NT!_KeUpdateSystemTime+0x109:

8015e109 cc int 3

kd>

<div class="references_section">

For information on how to enable remote debugging in Windows XP Service Pack 2, visit the following Microsoft Web site:

http://msdn.microsoft.com/security/productinfo/xpsp2/default.aspx?pull=/library/en-us/dnwxp/html/xpsp2remotedebug.asp

Additional query words: 3.10 3.50 3.51

Keywords: kbinfo KB121543

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.