Package vtrace :: Module watchpoints :: Class PageWatchpoint
[hide private]
[frames] | no frames]

Class PageWatchpoint

source code

breakpoints.Breakpoint --+    
                         |    
                Watchpoint --+
                             |
                            PageWatchpoint

A special "watchpoint" that uses memory permissions to watch for accesses to whole memory maps. This *requires* OS help and only works on platforms which support: * platformProtectMemory() * signal/exceptions which denote the fault address on SEGV

NOTE: These *must* be added page aligned

Instance Methods [hide private]
 
__init__(self, addr, expression=None, size=4, watchread=False) source code
 
resolvedaddr(self, trace, addr)
An initialization callback which will be executed when the actual address for this breakpoint has been resolved.
source code
 
notify(self, event, trace)
Breakpoints may also extend and implement "notify" which will be called whenever they are hit.
source code
 
getName(self) source code
 
activate(self, trace)
Actually store off and replace memory for this process.
source code
 
deactivate(self, trace)
Repair the process for continued execution.
source code

Inherited from Watchpoint: inittrace

Inherited from breakpoints.Breakpoint: __repr__, getAddress, getBreakpointCode, getId, isEnabled, resolveAddress, setBreakpointCode, setEnabled

Class Variables [hide private]

Inherited from breakpoints.Breakpoint: bpcodeobj

Method Details [hide private]

__init__(self, addr, expression=None, size=4, watchread=False)
(Constructor)

source code 
Overrides: breakpoints.Breakpoint.__init__

resolvedaddr(self, trace, addr)

source code 

An initialization callback which will be executed when the actual address for this breakpoint has been resolved.

Overrides: breakpoints.Breakpoint.resolvedaddr
(inherited documentation)

notify(self, event, trace)

source code 

Breakpoints may also extend and implement "notify" which will be called whenever they are hit. If you want to continue the ability for this breakpoint to have bpcode, you must call this method from your override.

Overrides: breakpoints.Breakpoint.notify
(inherited documentation)

getName(self)

source code 
Overrides: breakpoints.Breakpoint.getName

activate(self, trace)

source code 

Actually store off and replace memory for this process. This is caried out by the trace object itself when it begins running or stops. You probably never need to call this (see isEnabled() setEnabled() for boolean enable/disablle)

Overrides: breakpoints.Breakpoint.activate
(inherited documentation)

deactivate(self, trace)

source code 

Repair the process for continued execution. this does NOT make a breakpoint *inactive*, but removes it's "0xcc" from mem (see isEnabled() setEnabled() for boolean enable/dissable)

Overrides: breakpoints.Breakpoint.deactivate
(inherited documentation)