public void DisplayProcedure(Program program, Procedure proc)
{
this.program = program;
this.proc = proc;
this.showProcedures = true;
ProgramChanged();
if (program != null)
{
var addr = program.GetProcedureAddress(proc);
if (addr == null)
{
addr = program.SegmentMap.Segments.Values
.Where(s => s.MemoryArea != null)
.Select(s => Address.Max(s.Address, s.MemoryArea.BaseAddress))
.FirstOrDefault();
if (addr == null)
{
addr = program.ImageMap.BaseAddress;
}
}
SelectedAddress = addr;
}
}