private int[] BuildMapping(BackwalkDereference deref, int limit) { int[] map = new int[limit]; var addrTableStart = Address.Ptr32((uint)deref.TableOffset); //$BUG: breaks on 64- and 16-bit platforms. var rdr = program.CreateImageReader(addrTableStart); for (int i = 0; i < limit; ++i) { map[i] = rdr.ReadByte(); } return(map); }
private int[] BuildMapping(BackwalkDereference deref, int limit) { int[] map = new int[limit]; var addrTableStart = Address.Ptr32((uint)deref.TableOffset); //$BUG: breaks on 64- and 16-bit platforms. if (!program.SegmentMap.IsValidAddress(addrTableStart)) { return(new int[0]); //$DEBUG: look into this case. } var rdr = program.CreateImageReader(program.Architecture, addrTableStart); for (int i = 0; i < limit; ++i) { map[i] = rdr.ReadByte(); } return(map); }