-->
This article covers how to get started with Windows Debugging. If your goal is to use the debugger to analyze a crash dump, see Analyze crash dump files by using WinDbg.
To get started with Windows Debugging, complete the tasks that are described in this article.
1. Determine the host and the target
The debugger runs on the host system, and the code that you want to debug runs on the target system.
Host <--------------------------------------------------> Target
Because it is common to stop instruction execution on the processor during debugging, two computer systems are typically used. In some situations, you might be able to use a virtual machine as the second system. For example, you might be able to use a virtual PC that is running on the same PC as the code that you need to debug. However, if your code is communicating to low-level hardware, using a virtual PC may not be the best approach. For more information, see Setting up network debugging of a virtual machine - KDNET.
Since such a gadget side driver needs to interoperate with a host side Linux-USB device driver, this may help to debug both sides of a USB protocol stack. Say 'y' to link the driver statically, or 'm' to build a dynamically linked module called 'dummyhcd' and force all gadget drivers to also be dynamically linked.
Turn on USB debugging on your Android device: When ADB Mode is selected in DejaOffice as the method of sync, tap the 'Enable Debugging' pop up and ensure USB Debugging is checked the slider is set to On. For Older DejaOffice versions, USB Debugging can also be enabled through the Android Settings. Usually targeted at developers, the ADB (Android Debug Bridge) driver basically allows advanced users to connect any Android mobile phone to a computer and find workarounds for various application.
2. Determine the type: kernel-mode or user-mode
Next, you need to determine whether you will do kernel-mode or user-mode debugging.
Kernel mode is the processor-access mode in which the operating system and privileged programs run. Kernel-mode code has permission to access any part of the system, and it is not restricted like user-mode code. Kernel-mode code can gain access to any part of any other process running in either user mode or kernel mode. Much of the core OS functionality and many hardware device drivers run in kernel mode.
User mode is the mode that applications and subsystems on the computer run in. Processes that run in user mode do so within their own virtual address spaces. They are restricted from gaining direct access to many parts of the system, including system hardware, memory that was not allocated for their use, and other portions of the system that might compromise system integrity. Because processes that run in user mode are effectively isolated from the system and other user-mode processes, they cannot interfere with these resources.
If your goal is to debug a driver, determine if the driver is a kernel-mode driver or a user-mode driver. Windows Driver Model (WDM) drivers and Kernel-Mode Driver Framework (KMDF) are both kernel-mode drivers. As the name sugests, User-Mode Driver Framework (UMDF) drivers are user-mode drivers.
For some issues, it can be difficult to determine which mode the code executes in. In that case, you may need to pick one mode and look to see what information is available in that mode. Some issues require using the debugger in both user mode and kernel mode.
Depending on what mode you decide to debug in, you will need to configure and use the debuggers in different ways. Some debugging commands operate the same in both modes, and some commands operate differently in different modes.
For information about using the debugger in kernel mode, see the following articles:
- Debug drivers - step by step lab (Sysvad kernel-mode).
For information about using the debugger in user mode, see Getting started with WinDbg (user-mode).
3. Choose your debugger environment
WinDbg works well in most situations, but there are times when you may want to use another debugger, such as console debuggers for automation or Visual Studio. For more information, see Debugging environments.
4. Determine how to connect the target and host
Typically, target and host systems are connected by an Ethernet network. If you are doing early bring-up work, or you don't have an Ethernet connection on a device, other network connection options are available. For more information, see these articles:
5. Choose either the 32-bit or 64-bit debugging tools
Which debugging tools to choose—32-bit or 64-bit—depends on the version of Windows that is running on the target and host systems and on whether you are debugging 32-bit or 64-bit code. For more information, see Choosing the 32-Bit or 64-Bit debugging tools.
6. Configure symbols
To use all of the advanced functionality that WinDbg provides, you must load the proper symbols. If you do not have symbols properly configured, you will receive messages indicating that symbols are not available when you attempt to use functionality that is dependent on symbols. For more information, see Symbols for Windows debugging (WinDbg, KD, CDB, NTSD).
7. Configure source code
If your goal is to debug your own source code, you will need to configure a path to your source code. For more information, see Source path.
8. Become familiar with debugger operation
The Debugger operation section of this documentation describes debugger operation for various tasks. For example, Loading debugger extension DLLs explains how to load debugger extensions. To learn more about working with WinDbg, see Debugging using WinDbg.
9. Become familiar with debugging techniques
Standard debugging techniques apply to most debugging scenarios, and examples include setting breakpoints, inspecting the call stack, and finding a memory leak. Specialized debugging techniques apply to particular technologies or types of code. Examples include Plug and Play debugging, KMDF debugging, and RPC debugging.
10. Use the debugger reference commands
Over time, you will use different debugging commands as you work in the debugger. Use the .hh (open HTML help file) command in the debugger to display help information about any debugging command. For more information about the available commands, see Debugger reference.
11. Use debugging extensions for specific technologies
There are multiple debugging extensions that provide parsing of domain-specific data structures. For more information, see Specialized extensions.
12. Learn about related Windows internals
This documentation assumes a knowledge of Windows internals. To learn more about Windows internals (including memory usage, context, threads, and processes), review additional resources, such as Windows Internals by Mark Russinovich, David Solomon, and Alex Ionescu.
13. Review additional debugging resources
Additional resources include the following books and videos:
- Inside Windows Debugging: Practical Debugging and Tracing Strategies by Tarik Soulami
- Advanced Windows Debugging by Mario Hewardt and Daniel Pravat
- Defrag Tools, episodes 13 through 29, about WinDbg
See also
Are you getting error messages 'Setup could not detect your product', TV Tuner not available' or 'Unable to locate capture filter' after Windows 10 installed an update?
This is a known 'feature' of the new release of Windows 10, related to video cameras but also affecting TV tuners and video recorders.
The latest versions of WinTV v10, v8.5, WinTV v8 and Hauppauge Capture automatically update the Windows 10 drivers to fix this error message. If you need to manually fix this, click here.
Questions or problems? Please contact Hauppauge support at: techsupport@hauppauge.com
Prodinfo: get information on your Hauppauge TV tuner
Prodinfo.exe is a program you can run which will extract information about the WinTV product you have installed such as model and serial number, MAC address, revision, and features which can be used to identify the exact model of your product. The driver for the device must be installed in order to run Prodinfo.exe
HCWClear: remove the Hauppauge driver and applications from your PC
HCWCLEAR.exe is a program you run to remove all driver and files that were installed with the installation of the WinTV program.
Digital Signal Monitor: displays the relative strength of the digital signal on the channel you are tuned to
The Signal Monitor is a handy tool which can be used to either adjust your digital TV antenna, or when used with digital cable TV, to know if your digital signal is too weak to receive a signal without distortion.
Rescan for TV channels: How to re-scan for channels in the WinTV application
If your TV channel line up has changed due to a change in transmission frequencies, we recommend that you erase the WinTV channel database before you re-scan for channels.
IR Blaster setup
The IR Blaster is suppored on some model HD PVR 2's and the Colossus 2. Learn how to setup the IR Blaster to control your cable or satellite set top box in WinTV v10.
Windows 10 requires special drivers to avoid errors during the Hauppauge product installation.
The latest versions of WinTV v10, 8.5 and WinTV v8 and Hauppauge Capture include these drivers. But if you are looking just for the Windows 10 driver, these are updated drivers which can be used with Windows 10.
North America products
- WinTV-dualHD
- WinTV-quadHD USB
- ImpactVCB-e
- HD PVR 2 (all models)
- Colossus2
European products
- WinTV-dualHD, WinTV-soloHD
How to find the product code of your Hauppauge product:
Drivers ACER Composite Debug Mode
Hauppauge product codes on WinTV internal boards are normally found on the TV tuner. This is a five digit number normally followed by a revision (REV). You need to look at the first two numbers to determine the product type. The other numbers are related to the accessories which are on the product.
On the MediaMVP, WinTV-USB and other 'boxes', the product code is normally on a label on the bottom of the case.
165xxx WinTV-quadHD PCIe
204xxx WinTV-dualHD
111401, 72001 WinTV-HVR-955Q, WinTV-HVR-950Q
72301, 65301 111XXX WinTV-HVR-850
65XXX WinTV-HVR-950
1111XX WinTV-HVR-850, WinTV-Analog Stick
122XXX USB-Live2
131201 Colossus
67XXX WinTV-HVR-1150
22XXX, 79XXX, 118xxx WinTV-HVR-1250, -1260, -1265
723x WinTV-HVR-1260 (HP)
88XXX WinTV-HVR-2250
75XXX WinTV-HVR-1950
74XXX WinTV-HVR-1600
78XXX WinTV-HVR-1800
85XXX WinTV-HVR-1850
77XXX WinTV-HVR-1500
150xxx WinTV-HVR-55xx
69xxx, 121xxx WinTV-HVR-4xxx
23XXX WinTV-PVR-500
26XXX, 25XXX WinTV-PVR-150
28XXX WinTV-PVR-160
29XXX, 24XXX WinTV-PVR-USB2
48XXX WinTV-PVR-250/350
32XXX WinTV-PVR-250
30XXX WinTV-PVR-250
37XXX
38XXX
44XXX
56XXX
Drivers Acer Composite Debug Mode Windows 10
58XXX
60XXX
61XXX
62XXX
64XXX
34XXX 88X based WinTV boards
86XXX MediaMVP
110XXX MediaMVP-HD
Drivers Acer Composite Debug Mode Download
49XXX HD PVR
Drivers Acer Composite Debug Modem
Hauppauge has a new SDK available for .NET applications. The SDK simplifies the development of TV applications in .NET. The SDK makes it easy for applications to perform functions like querying the available channels, start watching a channel in an application supplied window, pause/play, adjust volume, display OSD graphics, record live tv to a file, etc.
Drivers Acer Composite Debug Model
The SDK is provided under NDA and can be requested at techsupport@hauppauge.com or sdk@hauppauge.co.uk