Just a small note about the debugger plugins and events. Many users who try to develop a plugin for the debugger notice that IDA behaves slightly differently in the notification callbacks than anywhere else.
For example, IDA might claim that EIP points to an address without a segment,or none of exported names of a loaded DLL are available.