To the best of my knowledge IDA can't go through and automatically identify
Use DbgHook in the following way:
class DbgHook(DBG_Hooks):
... snip ...
debugger = DbgHook()
debugger.hook()
Using this class will require you to implement the def dbg_bpt(self,tid,ea)
callback. This call back is called when a breakpoint is hit in your code. From there you can set a breakpoint on the instruction where the base address of the structure is moved into a register. You can get the value of that register in your code using the following:
from idc import *
structAddr = idc.GetRegValue('EAX')
In your dbg_bpt callback you can calculate the offset inside the structure and set an access breakpoint on that address using SetBptAttr(address, bptattr, value)
where address is the address of the member (calculated off of the register) and value is BPT_RDWR
.
Here is the IDA Python API documentation and here is a good sample project implementing debugger callbacks.