Jump to content

DBG_N_Watchpoint

From EDM2
Revision as of 23:52, 4 March 2020 by Martini (talk | contribs) (Created page with "Debug Notification -14 - Watchpoint Hit Notification This notification returns: * Cmd= DBG_N_Watchpoint * Addr= Linearized instruction pointer of watchpoint hit * Value= ...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Debug Notification -14 - Watchpoint Hit Notification

This notification returns:

  • Cmd= DBG_N_Watchpoint
  • Addr= Linearized instruction pointer of watchpoint hit
  • Value= Process ID of process that hit the watchpoint
  • Len= Thread ID of thread that hit the watchpoint
  • MTE= Module Table Entry handle of process that hit the watchpoint
  • Index= Watchpoint ID number

A watchpoint has been hit. The Watchpoint ID number identifies the watchpoint that was hit.

Multiple watchpoint hits become pending notifications that are returned on subsequent DBG_C_Stop, DBG_C_Go, or DBG_C_SStep commands. A watchpoint may be hit at any time, and more than one watchpoint may be hit at the same time.

If a watchpoint notification is pending, the resources used by the watchpoint will not be freed until the watchpoint notification is complete, or the watchpoint is cleared.

A watchpoint notification is not always returned by the same thread that caused the hit. A watchpoint may be hit by one thread, but another thread may return the notification. The thread ID of the thread that hit the watchpoint is not necessarily the value passed in the Tid field.

Data Watchpoint hits are treated as faults, rather than as traps, by the 80386 processor. Therefore, the linearized instruction pointer may not point to the exact instruction that caused the fault.

If a watchpoint is hit at interrupt time, the Value, Addr, MTE, and Len fields are all returned as zero.