| Win32-2.1.1.0: A binding to part of the Win32 library | Source code | Contents | Index

System.Win32.DebugApi |

Portability | portable
Stability | provisional
Maintainer | Esa Ilari Vuokko <ei@vuokko.info>

Description
A collection of FFI declarations for using Windows DebugApi.
Documentation

type PID = DWORD | Source

type TID = DWORD | Source

type DebugEventId = (PID, TID) | Source

type ForeignAddress = Word32 | Source

type PHANDLE = Ptr () | Source

type THANDLE = Ptr () | Source

type ThreadInfo = (THANDLE, ForeignAddress, ForeignAddress) | Source

type ImageInfo = (HANDLE, ForeignAddress, DWORD, DWORD, ForeignAddress) | Source

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

data Exception | Source

Constructors

UnknownException |
AccessViolation Bool ForeignAddress |
ArrayBoundsExceeded |
Breakpoint |
DataTypeMisalignment |
FltDenormalOperand |
FltDivideByZero |
FltInexactResult |
FltInvalidOperation |
FltOverflow |
FltStackCheck |
FltUnderflow |
IllegalInstruction |
InPageError |
IntDivideByZero |
IntOverflow |
InvalidDisposition |
NonContinuable |
PrivilegedInstruction |
SingleStep |
StackOverflow |

Instances

Show Exception

data DebugEventInfo | Source

Constructors

UnknownDebugEvent |
Exception ExceptionInfo Exception |
CreateThread ThreadInfo |
CreateProcess PHANDLE ImageInfo ThreadInfo |
ExitThread TID |
ExitProcess PID |
LoadDll ImageInfo |
UnloadDll TID |
DebugString ForeignAddress Bool WORD |

Instances

Show DebugEventInfo

type DebugEvent = (DebugEventId, DebugEventInfo) | Source

peekDebugEvent :: Ptr a -> IO DebugEvent | Source

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

getDebugEvents :: Int -> IO [DebugEvent] | Source

continueDebugEvent :: DebugEventId -> Bool -> IO () | Source

debugActiveProcess :: PID -> IO () | Source

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

suspendThread :: THANDLE -> IO DWORD | Source

resumeThread :: THANDLE -> IO DWORD | Source

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

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

eax :: Int | Source

ebx :: Int | Source

ecx :: Int | Source

edx :: Int | Source

esi :: Int | Source

edi :: Int | Source

ebp :: Int | Source

eip :: Int | Source

esp :: 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

outputDebugString :: String -> IO () | Source

c_SuspendThread :: THANDLE -> IO DWORD | Source

c_ResumeThread :: THANDLE -> IO DWORD | Source

c_WaitForDebugEvent :: Ptr () -> DWORD -> IO BOOL | Source

c_ContinueDebugEvent :: DWORD -> DWORD -> DWORD -> IO BOOL | Source

c_DebugActiveProcess :: DWORD -> IO Bool | Source

c_ReadProcessMemory :: PHANDLE -> Ptr () -> Ptr Word8 -> DWORD -> Ptr DWORD -> IO BOOL | Source

c_WriteProcessMemory :: PHANDLE -> Ptr () -> Ptr Word8 -> DWORD -> Ptr DWORD -> IO BOOL | Source

c_GetThreadContext :: THANDLE -> Ptr () -> IO BOOL | Source

c_SetThreadContext :: THANDLE -> Ptr () -> IO BOOL | Source

c_OutputDebugString :: LPTSTR -> IO () | Source

isDebuggerPresent :: IO BOOL | Source

debugBreak :: IO () | Source

Produced by Haddock version 0.8