MemoryAccessMonitor.enable(ranges, callbacks): 监控一个或多个内存块的访问,在触发到内存访问的时候发出通知。ranges 要么是一个单独的内存块,要么是一个内存块数组,每个内存块包含如下属性:
- base: 触发内存访问的NativePointer地址
- size: 被触发访问的内存块的大小
- callbacks: 回调对象结构:
- onAccess: function(details): 发生访问的时候同步调用这个函数,details对象包含如下属性:
- operation: 触发内存访问的操作类型,取值范围是 read, write 或者 execute
- from: 触发内存访问的指令地址,NativePointer
- address: 被访问的内存地址
- rangeIndex: 被访问的内存块的索引,就是调用MemoryAccessMonitor.enable()的时候指定的内存块序号
- pageIndex: 在被监控内存块范围内的页面序号
- pagesCompleted: 到目前为止已经发生过内存访问的页面的个数(已经发生过内存访问的页面将不再进行监控)
- pagesTotal: 初始指定的需要监控的内存页面总数