|
|
1.1 root 1: Sample: Creating a WinDbg Extension
2:
3:
4: Summary:
5:
6: The purpose of the WDBGEXTS sample is to demonstrate how to create a WinDbg
7: extension. This is a port of a sample demonstrating how to create an NTSD
8: extension.
9:
10: Extensions are DLL entry points. The arguments passed to an extension are:
11:
12: HANDLE hCurrentProcess - Supplies a handle to the current process (at
13: the time the extension is called).
14:
15: HANDLE hCurrentThread - Supplies a handle to the current thread (at
16: the time the extension is called).
17:
18: DWORD CurrentPc - Supplies the current pc at the time the extension is
19: called.
20:
21: PWINDBG_EXTENSION_APIS lpExtensionApis - Supplies the address of the
22: functions callable by this extension.
23:
24: LPSTR lpArgumentString - Supplies the command-line arguments for the
25: extension.
26:
27: The type PWINDBG_EXTENSION_APIS is defined in \mstools\h\wdbgexts.h.
28:
29: Note that in the makefile the -Gz option is specified to compiler in order
30: to ensure that __stdcall is used.
31:
32: More Information:
33:
34: The following is a description of the exported functions
35:
36: igrep()
37:
38: Searches the instruction stream for a pattern.
39:
40: str()
41:
42: Given a pointer to a string, it prints out the string, its length,
43: and its location in memory.
44:
45: In order to use the commands contained in WDBGEXTS.DLL, make sure that the
46: DLL is placed in a directory which is on the PATH.
47:
48: The syntax for the commands is as follows
49:
50:
51: !wdbgexts.igrep [pattern [expression] ]
52:
53: !wdbgexts.str [string]
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.