Win32-2.14.1.0: A binding to Windows Win32 API.
Copyright(c) Esa Ilari Vuokko 2006
LicenseBSD-style (see the file LICENSE)
MaintainerEsa Ilari Vuokko <ei@vuokko.info>
Stabilityprovisional
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

System.Win32.DebugApi

Description

A collection of FFI declarations for using Windows DebugApi.

Synopsis

Documentation

type PID = DWORD Source #

type TID = DWORD Source #

type ForeignAddress = Word32 Source #

type PHANDLE = Ptr () Source #

type THANDLE = Ptr () Source #

type ExceptionInfo = (Bool, Bool, ForeignAddress) Source #

Debug events

waitForDebugEvent :: Maybe Int -> IO (Maybe DebugEvent) Source #

Debugging another process

peekProcessMemory :: PHANDLE -> ForeignAddress -> Int -> Ptr a -> IO () Source #

readProcessMemory :: PHANDLE -> ForeignAddress -> Int -> IO (ForeignPtr a) Source #

pokeProcessMemory :: PHANDLE -> ForeignAddress -> Int -> Ptr a -> IO () Source #

withProcessMemory :: PHANDLE -> ForeignAddress -> Int -> (Ptr a -> IO b) -> IO b Source #

peekP :: Storable a => PHANDLE -> ForeignAddress -> IO a Source #

pokeP :: Storable a => PHANDLE -> ForeignAddress -> a -> IO () Source #

Thread control

withSuspendedThread :: THANDLE -> IO a -> IO a Source #

Thread register control

getThreadContext :: THANDLE -> Ptr a -> IO () Source #

setThreadContext :: THANDLE -> Ptr a -> IO () Source #

useAllRegs :: Ptr a -> IO () Source #

withThreadContext :: THANDLE -> (Ptr a -> IO b) -> IO b Source #

rax :: Int Source #

rbx :: Int Source #

rcx :: Int Source #

rdx :: Int Source #

rsi :: Int Source #

rdi :: Int Source #

rbp :: Int Source #

rip :: Int Source #

rsp :: Int Source #

segCs :: Int Source #

segDs :: Int Source #

segEs :: Int Source #

segFs :: Int Source #

segGs :: Int Source #

eFlags :: Int Source #

dr :: Int -> Int Source #

setReg :: Ptr a -> Int -> DWORD -> IO () Source #

getReg :: Ptr a -> Int -> IO DWORD Source #

modReg :: Ptr a -> Int -> (DWORD -> DWORD) -> IO DWORD Source #

makeModThreadContext :: [(Int, DWORD -> DWORD)] -> Ptr a -> IO [DWORD] Source #

modifyThreadContext :: THANDLE -> [(Int, DWORD -> DWORD)] -> IO [DWORD] Source #

Sending debug output to another process

outputDebugString :: String -> IO () Source #