public Block AddBlock(Address addr, Procedure proc, string blockName)
{
Block b = new Block(proc, blockName) { Address = addr };
var lastMem = segmentMap.Segments.Values.Last().MemoryArea;
blocks.Add(addr, new BlockRange(b, addr.ToLinear(), lastMem.BaseAddress.ToLinear() + (uint)lastMem.Length));
blockStarts.Add(b, addr);
proc.ControlGraph.Blocks.Add(b);
imageMap.AddItem(addr, new ImageMapBlock { Block = b });
return b;
}