Intel® System Debugger User Guide
Launch Intel(R) Debug Extensions for WinDbg*
WinDbg* must have access to kernel symbols for the connection to succeed; therefore, you must set the symbol file path beforehand.
Launch WinDbg* without using the batch script and set the symbol file path by selecting File > Symbol File Path and adding
srv*C:\Symbols*http://msdl.microsoft.com/download/symbols to the path or by setting the_NT_symbol_path global environment variable with a corresponding value. Save the workspace by selecting File > Save Workspace and close WinDbg*.You need to do this only once before the first use.
Connect the host system to the target one with the Intel(R) In-Target Probe (Intel(R) ITP) or the Intel(R) Direct Connect Interface (Intel(R) DCI).
Power on the probe and the target system.
To launch Intel(R) Debug Extensions for WinDbg* with OpenIPC choose any of the following options:
Click the desktop icon or open the Start Menu and search for Intel(R) Debug Extensions for WinDbg* <year> NDA <version>.
Run
windbg_iajtag_console.bat located at<install_dir>\system_debugger\<version> as follows:windbg_iajtag_console.bat to launch the default Python*.windbg_iajtag_console.bat -r to launch IPython*.
Launch
isd_shell.bat located in the root installation directory and runwindbg_dci to invoke WinDbg*.Launch WinDbg* from the Intel(R) System Debugger Eclipse* IDE:
Launch the Intel(R) System Debugger.
Connect to the target using the Target Connection Assistant.
From the main menu, select Tools > Intel(R) System Debugger NDA > Launch WinDbg* Over Intel(R) Direct Connect Interface (Intel(R) DCI).
You can change launch parameters such as WinDbg* path and startup arguments. In Eclipse*, go to Window > Preferences > WinDbg/* over Intel(R) DCI.
At this point, two Python* objects are available for debugging:
itp - Intel(R) ITP interfaceitpkd - wrapper over WinDbg* and kernel debug console
Execute windbg() to halt the target and run a WinDbg* session. After that, WinDbg* starts connecting to the target.
If Microsoft Hyper-V is active on the debug target, the windbg() command results in one of the following states:
If the target is halted, the WinDbg* UI is launched into the currently halted context. If Microsoft* Hyper-V is active, WinDbg* will likely start within its context.
If the target is not halted, the WinDbg* over Intel(R) DCI implementation breaks into NTOSKRNL (NT OS).
(Optional) Specify the logical core to search for NT symbol. By default (for Windows* Software Development Kit (SDK) version 18500 or higher), WinDbg* uses Guess startup argument to search for NT symbol. This argument makes windbg to search in all available threads (logical cores).
You can change the default behavior as follows:
To force WinDbg* to use NtBaseAddr startup argument, execute the following command before launching
windbg() :force_NTBaseAddr()
It will search for NT symbol in core 0.
To select a particular logical core for the search, execute the following command:
select_logical_core_NTBaseAddr(<logical_core>)
It forces WinDbg* to use NtBaseAddr startup argument only search in the specified core. This is useful if you want to search in one particular core only. For example, when Microsoft* Hyper-V is running, and one of the cores is running NTOSKRNL.
To unselect this startup argument and use the default parameters, execute the following command:
select_logical_core_NTBaseAddr(-1)
Afterwards, you can halt the target any time by running the